资源描述
湖北大学本科课程设计
题 目 在线考试系统的设计与开发
姓 名 胡玉琴 学 号2012221104230026 _
专业年级 12级信息安全
指导教师 周双娥 职 称 教授
摘要
随着现代生活的进步,高科技的突飞猛进,计算机科学与技术已经渗透到人类生活的方方面面。现代教育改革也正朝着网络教育的方面不断深入和普及。网上教育以其全新的教学理念和教学手段提供了一种高效的教育方案。其中,网上授课、网络在线考试等全新的教学模式将整个教育界带进了一个新的时代。
网络在线考试系统相对于传统的考试方式,具有自动控制考试时间、系统自动评分、有效防止舞弊行为等优点;实现了考试功能与教育评估和教育管理功能的高度结合;减轻了教务人员的工作负担,提高了工作效率;使考务工作自动化,保证出卷、考试和考生管理各阶段正常有序地进行,使考试更趋于客观、合理和公正。我们给出的以下这个在线考试系统,具有即时阅卷、成绩查询,自动生成试卷,难易程度的选择以及考题和考生信息管理等功能,绝对能够适应现在网络在线考试系统的需要。
关键词
需求分析 数据库 数据库设计 ASP.NET
目 录
摘要 2
关键词 2
1.1 课题研究背景和意义 4
第2章 系统分析概述 4
2.1 引言 4
2.2 系统需求分析 5
2.3 系统概述 6
2.4 Visual Studio 2010的概述 7
2.5 SQL Server 2008数据库的概述 8
第3章 系统方案总体设计 8
3.1 系统设计思想及相关技术介绍 8
3.1.1 系统架构设计 8
3.1.2 系统总体模块功能设计 9
第4章 数据库的设计 9
4.1 引言 9
4.2 数据库需求分析 10
4.3 数据库概念结构设计 10
4.4 数据库逻辑结构设计 10
第5章 界面设计与实现 17
5.1 主页设计 17
5.1.1 实现目标 17
5.1.2 登录窗口 17
5.2 主要界面设计—用户登录信息画面 18
5.2.1 实现目标 18
5.2.2 主界面 18
5.3 主要界面设计 ---试题管理 20
5.3.1 实现目标 20
5.4 主要界面设计 —— 学生考试 21
5.4.1 实现目标 21
5.5 主要界面设计 ——查看试题答案 23
5.5.1 实现目标 23
结 论 -------------------------------------------------------------------24
参 考 文 献 24
附录1 管理员考试信息录入代码------------------------------------------------------------------------25
附录2 学生考试代码---------------------------------------------------------------------------------------28
附录3 试卷答案代码---------------------------------------------------------------------------------------34
绪论
1.1 课题研究背景
近年来,我国的函授教育、网络远程教育、自学教育,以及国内国外的各类认证考试教育,如微软的MCSE、Cisco的CCNA等,迅速发展。在这个日新月异的时代,不学习就意味着落后,所以接受教育不再局限于校园内,职场人员通过各种不同的考试提升自我。
随着Internet的发展,计算机的全面普及,学校的教学、教务管理、行政管理也一改传统模式,借助现代计算机技术及因特网技术,努力朝着信息化建设的方向发展。教育的改革,给人们带来了更多的学习机会。随着学习形式灵活、学生分布广的成人教育及各种的认证培训考试教育的迅猛发展,考试的形式也变得更加多样化。比如,在线考试就已经称为广泛应用的一种考试形式,相应的,对在线考试系统的需求也越来越大。
系统所设计的在线考试系统,是响应教育信息化的体制改革,使Internet技术与计算机技术在教育教学领域的应用得以拓展。在线考试系统的开发与设计适合现代教育教学,也给传统的考试提供了一个很好的解决方案,今后将成为教育教学管理的辅助方式之一,让传统教育中的考试朝网络化的方向发展。
第2章 系统分析概述
2.1 引言
ASP.NET是微软公司最新推出的一种统一Web开发平台,与最新的数据访问技术ADO.NET一起可构建出强大、安全和可靠的企业级Web应用程序。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,用于生成更安全、可伸缩和稳定的应用程序。
采取了ASP.NET技术的系统在性能上有了很大的改善,主要表现在以下几方面:
ü 由于ASP页面每次打开都必须经过先编译后解释的过程,所以页面在反复打开时速度没有任何提升,而ASP.NET页面只需要一次编译后不需要重新编译,直到该页面被修改或Web应用程序重新启动。这使得在多次访问时速度有了极大的提升;
ü 由于ASP没有提供任何输出数据为内容的元件,所以在使用ASP撰写数据库页面时只能借助ADO的RecordSet对象逐笔读取记录,而ASP.NET通过ADO.NET提供的DataGrid等数据库元件可以直接和数据库联系;
ü ASP.NET支持应用程序的实时更新,管理员不必关掉网络服务器或者甚至不用停止应用程序的运行就可以更新应用文件。应用程序文件永远不会被加锁,因此甚至在程序运行时文件就可以被覆盖,当文件更新后,系统会温和地转换到新的版本;
ü ASP.NET采取"CodeBehind(代码分离)技术"方式编写代码使得代码更易于编写,结构更清晰,降低了系统开发与维护的复杂度和费用。
2.2 系统需求分析
随着计算机技术和互联网的快速发展,人类已经进入了信息时代,也有人称为数字化时代。在数字化的网络环境下,学生希望得到个性化的满足,根据自己的情况进行学习,同时也希望能够得到科学的评价;教师希望有效改进现有的考试模式,提高考试的效率;
教育机构也希望给网上的学生提供更全面,跟更灵活的服务,全面准确地对学生进行跟踪和评价。网络考试系统正是迎合这一时代需求而开发的,它旨在探索一种一互联网为基础的考试模式。通过这种新的模式,为学校创造一种新的考试环境,提高考试工作效率和标准化水平,使学校管理者、教师和学生可以随时随地通过网络进行考试。
网络考试系统的开发和应用,避免了以往学校里考试纸张、笔、监考和巡考等各种资源的浪费,并且后台管理员是管理员单一的管理,确保了程序的安全性。网络考试管理员登陆后,对考试内容、专业、科目和考试题目等都作了详细的分类,只要考生通过自己的学生编号和密码进入前台,按步骤依次进行选题和答题,答题完毕后系统会自动判断考卷,并核对出考卷的成绩及分数,解决了在学校考试后等待考卷分数通知的问题。
2.3 系统概述
本系统是一个在线考试系统,在实施过程中主要实现以下目标:
(1)界面友好、美观,体现在线考试系统的特点,而且操作简便。
(2)各功能模块层次清晰,代码高效易懂。
(3)添加和编辑简便、清晰,提高工作效率。
(4)查询方便,数据存储安全可靠。
(5)功能全面,实用性强。
主要功能有:
1.注册用户模块
注册用户主要实现用户的登录功能和注册功能。
2. 在线测试模块
在线测试是本系统的核心模块,不论是管理员还是普通用户都可以进行在线测试。在此页面中,可以选择不同的科目进行科目测试,也可以显示或者隐藏答案提示。
3. 科目管理模块
只有管理员权限的用户登录才可以进入科目管理模块,在科目管理模块中,除了显示已有己。
4. 试题管理模块
只有管理员权限的用户才可以进入试题管理模块。
5. 用户管理模块
在用户管理模块中,管理员可以删除用户和修改用户信息。该页面没有增加用户功能,用户可以自己注册登录。
6. 个人信息修改模块
普通用户登陆后可以进入个人信息修改模块,修改个人密码、身份证号码和E-mail等信息。
7. 开发环境的选择方法
目前,用于开发数据库管理信息系统的编程语言很多,比如Delphi、PowerBuilder、Visual C++、Java、Visual Basic6及VB.NET等等,而用于后台数据库管理的DBMS也有很多,比如有Oracle、MS SQL SERVER、SYBASE、INFORMIX、DB2、VISUAL FOXPRO、ACCESS等等。
采用面向对象的软件开发方法来实现此在线考试软件,系统开发工具我们选择了能够跨平台的开发工具Visual Studio 2010。在前台操作与后台数据库处理的连接上,主要采用ADO.NET技术和SQL Server2008数据库,运用客户机服务器模式(C/S)配合功能强大的SQL查询语言实现预定的功能需求。
2.4 Visual Studio 2010的概述
Visual Studio 2010是一个全面集成的开发环境,用于编写,调试代码,把代码编译为程序集进行发布,实际上,Visual Studio 提供了非常专业的多文档界面应用程序,在该应用程序中可以进行与开发代码相关的任何操作,它提供了:
l 文本编辑器:在文本编辑器中,可以编写C#代码(以及VB 2005,J#和C++代码)。这个文本编辑器相当复杂。
l 代码的设计视图编辑器:它可以在项目中可视化的放置用户界面和数据访问控件。此时Visual Studio会自动在源文件中添加必要的C#代码,在项目中实例化这些控件。
l 支持窗口:它们可以查看修改项目的各个方面。也可以使用这些窗口指定编译选项。
l 在环境中编译:可以只选择一个菜单选项编译项目,而不必在命令行上运行C#编译器。Visual Studio会调用C#编译器。
l 集成的调试程序:编程的本质是代码在第一次运行时,一般不会正确执行。也许在第二次、第三次才能正确运行。Visual Studio无缝的链接到一个调试程序上,可以在该调试环境中设置断点,观察变量。
l 集成的MSDN帮助:Visual Studio可以在IDE中调用MSDN文档说明。
l 访问其他程序:Visual Studio还能调用许多其他工具来查看和修改计算机或网络的一些内容,而无需退出开发环境。
2.5 SQL Server 2008数据库的概述
SQL Sevrer2008是一个C/S体系结构的关系数据库管理系统,它使Transact—SQL语言在客户和SQL Server之间发送处理请求,SQL Server利用C/S体系结构把工作分成两部分:客户端负责逻辑处理把数据呈现给用户,SQL Server管理数据库。SQL Server用Transact—SQL作为它的数据库查询和编程语言,使用Transact—SQL能够方便地存取数据、查询、更新和管理关系数据库。
第3章 系统方案总体设计
3.1 系统设计思想及相关技术介绍
3.1.1 系统架构设计
首先用户登录,如果登陆成功系统检测用户类型,用户类型分为三种:学生、教师和管理员。普通用户登录后只能进行在线答题和个人信息管理,在线答题时可以选择科目,考完后可以查看答案,期峨眉套试题。
管理员
用户管理
试卷管理
成绩管理
科目管理
个人信息
学生
课程学习
考试管理
留言管理
个人信息
退出系统
退出系统
教 师
试题录入
试卷管理
试题管理
学生管理
个人信息
验证
登录成功
管理员身份登录功能较多,除了可以在线答题外,还可以进行科目管理、试题管理和用户管理,科目管理包括增加、删除、修改科目,试题管理同样是增、删、改操作;用户管理中只能删除和修改用户信息,增加用户在注册用户功能中完成。
图3-1在线考试系统主要功能框架
3.1.2 系统总体模块功能设计
经过对整个系统的分析,可以得出以下功能模块,如图3-3所示:
登陆者模块:面向登陆者。可以先进行注册,再实现登录功能,进而进行在线考试。
管理员模块:面向管理员。可以对考题进行添加、删除、修改和更新功能;可以进行答题的测试;科目的管理;题库的管理。
图3-2 功能模块图
第4章 数据库的设计
4.1 引言
数据库是一个应用系统的核心,数据库设计的好坏直接关系到应用系统的执行效率,数据的一致性和完整性,设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求,数据库设计一般包括以下几个步骤:
l 数据库需求分析
l 数据库概念结构设计
l 数据库逻辑结构设计
4.2 数据库需求分析
数据库需求分析就是要了解在这个应用系统中,用户需要查询、更新、删除和保存哪些数据,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
通在线考试系统的数据库管理要进行各种各样的数据输入和导出,提供各类信息的添加、删除、修改和更新等功能。通过上述对系统的设计分析,根据在线考试系统的需求,共需设计以下五种信息:
(1)用户注册信息。
(2)科目管理信息。
(3)试题管理信息。
(4)用户管理信息。
(5)个人信息管理。
4.3 数据库概念结构设计
等到了上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体以及实体之间的关系,为后面的数据库逻辑结构设计打下基础。这些实体包括各种具体信息,通过相互之间的作用形成数据流动。
4.4 数据库逻辑结构设计
通过调查分析各种资料,根据本管理系统用户需要操作和处理的各种数据,对数据表进行了分析。确定在数据库中存储的各种数据之间的关系以及数据类型,列举出部分数据表的关系如下:
1.管理员表(User)包括的数据项有: 用户名、密码、姓名、性别、生日、学院、角色编号、所在省份、所在城市、联系方式。(如表4-1所示)
表4-1管理员表
2. 教师表(Teacher)中的字段有密码、姓名、性别、生日、学院编号、工号、所在省份、所在城市、联系方式、职称。(如表4-2所示)
表4-2 教师表
3. 学生表(Student)中的字段有密码、姓名、性别、生日、学院编号、工号、所在省份、所在城市、联系方式、职称。(如表4-3所示)
表4-3 学生表
4. 课程表(Course)中的字段有课程编号和课程名。(如图4-4所示)
表4-4 课程表
5.学院表(College)中的字段有学院编号和学院名。(如图4-5所示)
表4-5 学院表
6.专业表(Major)中的字段有专业编号和学院编号、专业名。(如图4-6所示)
表4-6 专业表
7.填空题表(Blank)中的字段有题号、课程编号、前半部分、后半部分、正确答案、出题时间。(如表4-7所示)
表4-7填空题表
8.多选题表(Multiselect)中的字段有题号、课程编号、题干、选项A、选项B、选项C、选项D、正确答案、出题时间。(如表4-8所示)
表4-8多选题表
9.单选题表(Singelselect)中的字段有题号、课程编号、题干、选项A、选项B、选项C、选项D、正确答案、出题时间。(如表4-9所示)
表4-9多选题表
10.试卷表(Paper)中的字段有编号、试卷编号、试卷名、课程编号、题目类型、题目编号、分数、考试时间、出题时间、出题人。(如表4-9所示)
表4-10试卷表
11.分数表(Score)中的字段有分数编号、学生学号、课程编号、试卷编号、单选题分数、多选题分数、填空题分数、总分数、提交时间。(如表4-11所示)
表4-11分数表
12.存储过程(PaperDetail)(如下图所示)
13.视图 (如下图所示)
其代码依次如下:
(1)dbo.View_BlankManage 视图
SELECT dbo.Blank.blankid, dbo.Course.coursename, dbo.Blank.blankpro,
dbo.Blank.blankback, dbo.Blank.answer, dbo.Blank.time
FROM dbo.Blank INNER JOIN
dbo.Course ON dbo.Blank.courseid = dbo.Course.courseid
(2)dbo.View_Multiselect 视图
SELECT dbo.Multiselect.multiid, dbo.Course.coursename, dbo.Multiselect.multicontent,
dbo.Multiselect.multiA, dbo.Multiselect.multiB, dbo.Multiselect.multiC,
dbo.Multiselect.multiD, dbo.Multiselect.answer, dbo.Multiselect.time
FROM dbo.Course INNER JOIN
dbo.Multiselect ON dbo.Course.courseid = dbo.Multiselect.courseid
(3)dbo. View_Paper_Course视图
SELECT dbo.Paper.paperid, dbo.Course.coursename, dbo.Paper.papername,
dbo.Paper.type, dbo.Paper.titleid, dbo.Paper.mark, dbo.Paper.papertime,
dbo.Paper.kaoshitime
FROM dbo.Course INNER JOIN
dbo.Paper ON dbo.Course.courseid = dbo.Paper.courseid
(4)dbo. View_Score视图
SELECT DISTINCT dbo.Score.scoreid, dbo.Score.stuid, dbo.Score.paperid,
dbo.Course.coursename, dbo.Score.singlesum, dbo.Score.multisum,
dbo.Score.blanksum,
dbo.Score.sumscore, dbo.Score.tijiaotime
FROM dbo.Course INNER JOIN
dbo.Score ON dbo.Course.courseid = dbo.Score.courseid
(5)dbo. View_SingleManage视图
SELECT dbo.Singelselect.singleid, dbo.Course.coursename,
dbo.Singelselect.singlecontent,dbo.Singelselect.singleA,
dbo.Singelselect.singleB,dbo.Singelselect.singleC,
dbo.Singelselect.singleD,dbo.Singelselect.answer, dbo.Singelselect.time
FROM dbo.Course INNER JOIN
dbo.Singelselect ON dbo.Course.courseid = dbo.Singelselect.courseid
第5章 界面设计与实现
5.1 主页设计
5.1.1 实现目标
程序启动后,进入登陆窗体,用户输入用户名和密码,然后进行登录。同时可以按下取消按钮退出本系统,登录界面模块中主要实现如下功能:
(1)可进行选择用户身份,支持鼠标操作。
(2)用户名和密码验证成功后,进入主界面。
(3)用户名错误或密码错误提醒并返回输入有误。
5.1.2 登录窗口
5-1 登录窗口
如果验证通过,系统会连接数据库,进行数据正确性以及用户权限的检查,以上检查成功的情况下,就会进入本系统的主窗体,如果失败,跳出错误提示框。
若学生尚未入库可注册后在登入:
5.2学生注册窗口
5.2 主要界面设计—用户登录信息画面
5.2.1 实现目标
程序启动后,登录进入在线答题窗体,在管理模块中主要实现如下功能:
(1)检索当前启用的组织结构相关的部门及员工信息。
(2)对登陆者个人信息的管理。
(3)对基本信息进行登录和修改操作。
(4)考试科目即考试内容建立。
(5)对考试信息的查询。
5.2.2 主界面
图5-3 在线考试主界面
本界面为主操作界面。教师通过登录界面的验证后,方能进入此界面。
此画面可以进行考试各类信息的添加,更新和删除,以及用户信息查询等功能。
图5-4 单选题试卷界面
单选题:
for (int i = 0; i < this.GridView_Single.Rows.Count; i++)
{
bool isChecked_single =
((CheckBox)GridView_Single.Rows[i].FindControl("chkSingle")).Checked;
if (isChecked_single
{
string str1 = ((Label)GridView_Single.Rows[i].FindControl("lblSingleid")).Text;
string singlepaper = "insert into
Paper(paperid,papername,courseid,type,titleid,mark,kaoshitime,papertime,paperauthor) values(" + int.Parse(txtPaperid.Text) + ",'" + txtPaperName.Text + "'," + cid + ",'单选题','" + str1 + "'," + int.Parse(ddlSingleScore.SelectedValue) + ",'" + txtKaoshitime.Text + "','" + DateTime.Now.ToShortDateString() + "','" + txtPaperAuthor.Text + "')";
SqlOperate.Insert(singlepaper);
}
}
图5-5 填空题试卷界面
填空题:
for (int i = 0; i < this.GridView_Blank.Rows.Count; i++)
{
bool isChecked_blank =
((CheckBox)GridView_Blank.Rows[i].FindControl("chkBlank")).Checked;
if (isChecked_blank)
{
string str3 = ((Label)GridView_Blank.Rows[i].FindControl("lblBlankid")).Text;
string blankpaper = "insert into Paper(paperid,papername,courseid,type,titleid,mark,kaoshitime,papertime,paperauthor) values(" + int.Parse(txtPaperid.Text) + ",'" + txtPaperName.Text + "'," + cid + ",'填空题','" + str3 + "'," + int.Parse(ddlBlankScore.SelectedValue) + ",'" + txtKaoshitime.Text + "','" + DateTime.Now.ToShortDateString() + "','" + txtPaperAuthor.Text + "')";
SqlOperate.Insert(blankpaper);
}
}
ac.OpenDialogForButton((Button)sender, "数据保存成功!");
Response.Redirect("PaperManage.aspx");
}
}
当管理员登入系统后,进入信息添加页面,需要将相关考试信息录入考试系统中,方便用户进行考试。
5.3 主要界面设计 ---试题管理
5.3.1 实现目标
图5-6 单选题管理
类似的页面还有填空题管理、多选题管理、试卷管理、学生管理、教师管理,就不一一列举了
5.4 主要界面设计 —— 学生考试
5.4.1 实现目标
图5-7 试题选择界面
图5-8 单选题考试界面
单选题代码:
DataSet ds1 = SqlOperate.GetDataSet("PaperDetail", Params1);
GridView_Single.DataSource = ds1;
GridView_Single.DataBind();
((Label)GridView_Single.HeaderRow.FindControl("lblSingleMark")).Text =
((Label)GridView_Single.Rows[0].FindControl("lblSingleMark1")).Text;
将单选题的值保存到数据库
图5-9多选题和填空题考试界面
多选题代码:
DataSet ds2 = SqlOperate.GetDataSet("PaperDetail", Params2);
GridView_Multi.DataSource = ds2;
GridView_Multi.DataBind();
((Label)GridView_Multi.HeaderRow.FindControl("lblMultiMark")).Text =
((Label)GridView_Multi.Rows[0].FindControl("lblMultiMark1")).Text;
将多选题的值保存到数据库
填空题代码:
DataSet ds3 = SqlOperate.GetDataSet("PaperDetail", Params3);
GridView_Blank.DataSource = ds3;
GridView_Blank.DataBind();
((Label)GridView_Blank.HeaderRow.FindControl("lblBlankMark")).Text =
((Label)GridView_Blank.Rows[0].FindControl("lblBlankMark1")).Text;
将填空的值保存到数据库
5.5 主要界面设计 ——查看试题答案
5.5.1 实现目标
图5-10 查看答案界面
实现代码如下:
单选题绑定数据库获取值:
DataSet ds1 = SqlOperate.GetDataSet("PaperDetail", Params1);
GridView_Single.DataSource = ds1;
GridView_Single.DataBind();
多选题绑定数据库获取值:
DataSet ds2 = SqlOperate.GetDataSet("PaperDetail", Params2);
GridView_Multi.DataSource = ds2;
GridView_Multi.DataBind();
填空题绑定数据库获取值:
DataSet ds3 = SqlOperate.GetDataSet("PaperDetail", Params3);
GridView_Blank.DataSource = ds3;
GridView_Blank.DataBind();
结 论
课程设计是大学生学习阶段上的一次非常难得的理论与实际相结合的机会,通过这次比较完整的在线考试系统设计,我们摆脱了单纯的理论知识学习状态,和实际相结合锻炼了我综合运用所学知识的专业基础知识,解决了实际工程能力。
虽然课程设计内容繁多,过程繁琐,但我们的收获却更加丰富。在设计过程中,虽然遇到不少的挫折,至使很多处代码运行起来不协调,常常遇到问题。但是,正因为这样,我们才有克服困难的机会,问题各个击破。从而锻炼了自己对待事情的认真和负责能力,从而也提高了独立思考的能力。
如期顺利的完成本次课程设计给我带来了很大的信心。让我们了解了专业知识同时也对本专业的发展充满了希望。它让我了解到,只有发现问题才能解决问题,不足和遗憾不会给我打击只会更好的鞭策我前行。今后我们回更加关注这方面的知识,掌握新的知识,争取为祖国的信息发展供一份力量。
参 考 文 献
[1] 21世纪高等学校计算机规划教材 SQL Server 2008 《数据库管理与开发教程》
[2] 普通高等教育计算机规划教材 ASP.NET 程序设计教程(C#版)第二版
[3] Ryan K. Stephens著.SQL Serve 2000 study[M].机械工业出版社,2003
[4] 亮剑.NET 图解ASP.NET网站开发实践 .电子工业出版社,2008
[5] 刘滔.数据库通用模块及典型系统开发.北京:人民邮电出版社,2004
[6] 袁松著.数据库系统概论.北京:机械工业出版社,2004
[7] 徐志国,汪孝宜著.数据库开发实例[M].北京:电子工业出版社,2005
[8] 伍俊良著.管理信息系统(MIS)开发与应用[M].北京科学出版社,2006
[9] 李建中,王珊著.数据库系统原理(第2版).北京:电子工业出版社,2006
附录1 管理员考试信息录入代码
prot
展开阅读全文