基于ASP.NET的在线考试系统设计与实现
作者:蒲玄及 杨百龙 杨建飞
来源:《现代电子技术》2008年第22期
作者:蒲玄及 杨百龙 杨建飞
来源:《现代电子技术》2008年第22期
摘 要:随着互联网的普及,越来越多的学校采用在线考试的形式,利用网络进行无软盘、无纸化的在线考试,大大提高了考试的可靠性、有效性、降低了考试成本。在ASP.NET技术和SQL Server 2005数据库系统的基础上,设计和实现基于ASP.NET的四层体系结构的在线考试系统,并实现动态随机组卷和在线阅卷等主要功能,在实际应用中效果良好。
关键词:ASP.NET 2.0;在线考试系统;SQL Server 2005;四层体系结构
中图分类号:TP311文献标识码:B
文章编号:1004-373X(2008)22-059-03
Design and Realization of On-line Exam System Based on ASP.NET
PU Xuanji1,YANG Bailong1,YANG Jianfei2
(1.The Second Artillery Engineering College,Xi′an,710025,China;2.Qingzhou Non-commissioned ofticers School of Second Artillery,Qingzhou,262500,China)
Abstract:Along with the popularization of Internet,more and more schools adopt the on-line exam,using the net non-disk,non-paper can improve the reliability,validity of the exam and it can reduce the cost of the exam.On the basis of the technology of ASP.NET and the database of SQL Server 2005,this Paper designs and realizes the on-line exam system with four tiers,and realizes the function of forming the paper at random and the function of judging the paper on-line,it has worked well in practice.
Keywords:ASP.NET 2.0;on-line exam system;SQL Server 2005;four tiers architecture
1 引 言
从目前的应用来看,一般基于Web的在线考试系统都需大量占用服务器资源。其主要原因:系统在运行的过程中采用动态取数据的方法,这使用户每一次进行测试都要向服务器多次
查询数据,因此一个好的在线系统速度是关键,另一方面,一个系统的好坏应需要对系统的安全性、可维护性进行全面考虑。
本文选择ASP.NET技术实现在线考试系统,采用SQL Server 2005数据库管理系统作为数据库服务器,使用IIS来进行网页的发布,客户端通过IE或者其他的WWW浏览器来对系统进行操作。
2 系统设计
2.1 系统总体功能结构5184广东考试服务网成绩查询入口
在线考试系统主要面向2类用户:考生和管理员。根据实际需求,系统应实现如图1所示的各种功能。
2.2 系统功能模块设计
如图1所示,该系统在功能上分为2个模块,分别是考生模块和管理员模块。其中考生模块属于子系统前台,管理员模块属于子系统后台。
2.2.1 考生模块
考生模块部分的功能主要有:
(1) 考生登录:当考生初次使用系统时必须注册,然后使用用户名和密码才能登录系统;
(2) 在线考试:当考生登录成功后,转入在线考试页面,选择所需参加考试的科目进行在线考试;
(3) 成绩、答案查询:在考试结束后,考生可以查看自己的考试成绩,并查看试卷答案。
2.2.2 管理员模块
管理员模块部分的主要功能有:
(1) 管理员登录:管理员维护系统的入口;
(2) 考试科目管理:用来添加考试科目和对考试科目进行修改和删除;
(3) 考生管理:添加考生,对考生信息的维护等;
(4) 题库管理:题型包括单选题、判断题、填空题和问答题4种,每种题型包括对试题的添加和维护;
(5) 成绩管理:查看考生的成绩,将成绩导出到Excel等;
(6) 试卷管理:设置参数由系统自动组卷,设置试卷是否可用等功能。
2.3 系统数据库设计
数据库中的数据是整个系统的核心,怎样合理地进行信息建模和范式分解将直接影响到整个数据库系统的运行效率。根据系统的安全性要求,在SQL Server 2005中主要建立如下数据表:
(1) 考生信息表:编号,考生用户名,考生密码,考生权限,考生;
(2) 试卷表:编号,科目编号,试卷名称,试卷状态;
(3) 科目表:编号,科目名称;
(4) 试卷详细表:编号,试卷编号,试题类型,试题编号,试题分值;
(5) 成绩表:编号,用户编号,试卷编号,客观题成绩,主观题成绩,考试时间;
(6) 单选题表:编号,科目编号,题目,选项A,选项B,选项C,选项D,答案;
(7) 判断题表:编号,科目编号,题目,答案;
(8) 填空题表:编号,科目编号,题目前描述,题目后描述,答案;
(9) 问答题表:编号,科目编号,题目,答案。
3 系统四层体系结构
对于较大型的系统,往往采用分层的体系结构,这种多层结构在层与层之间相互独立,任何一层的改变不会影响其他层的功能。本系统采用四层体系结构来实现,如图2所示,主要包括以下各层:
(1) 页面显示层:将业务功能在浏览器上显示出来,如考生登录页面,考试页面等;
(2) 业务逻辑层:实现业务的具体逻辑功能,如试卷管理、考生管理、题库管理等;
(3) 数据访问接口层:实现对数据访问层的一些辅助和包装,主要包括2个类:
GetSafeData:包含一系列从DataRow对象中,安全获取数据的静态方法。
SqlStringFormat:包含一个静态方法,该方法能够把字符串转换为带有单引号“‘”的字符串。
(4) 数据访问层:实现对数据的访问功能,只包括一个类Database,完成数据库访问的所有操作,同时记录所有的异常信息。
4 系统实现
4.1 使用ADO.NET链接数据库
为了实现与数据库的连接,需要在fig文件中配置链接字符串,并在配置节<appSettings/>下的子配置节<connectionStrings>添加链接字符串,具体链接字符串的配置如下:
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=(local);Initial Catalog=OnLineExam;User ID=pp;Password=dorient"/>
</connectionStrings>
其中Data Source指定服务器的名称,Initial Catalog属性指定数据库的名称,而ID和Password分别指定链接数据库时使用的用户名和密码。
4.2 身份验证的实现
考生和管理员在登录时分别登录不同页面,进入相应的功能模块。如图3所示为考生登录系统时的流程图,实现过程中根据考生的输入信息对其进行身份验证,验证成功才能进入考试页面,同时使用Session对象保存考生输入信息,由于Session对象被每一个用户所独享,且利用该对象可以实现在网页之间信息的传递,因此减少了考生信息的输入,提高了效率。
4.3 试卷生成功能的实现
管理员可以设置某门课程的试卷,并设置该试卷的名称,设置该试卷中存在的题型,各个题型的数量及每题的分值,设置完毕后单击“确定”按钮,将在页面下方显示自动生成的试卷。以生成单选题为例,主要代码如下所示:
DataBase db=new DataBase();[JY]//创建DataBase类对象
String GridView1str="select top"+ int Parse(txtSingleNum.Text.Trim())+"* from
SingleProblem order by newid()";[JY]//根据参数设置查询单选题的SQL语句
DataSet ds1=db.GetDataSetSql(GridView1);[JY]//调用DataBase类方法GetDataSetSql方法查询数据
GridView1.DataSource=ds1.Tables[0].DefaultView;[JY]//为单选题GridView控件指明数据源
GridView1.DataBind();[JY]//绑定数据
4.4 考生在线考试功能的实现
在线考试页面用于实现让考生根据自己选择的试卷进行在线考试和考试后提交答案,查看自己的客观题分数并查看试卷答案的功能。
Int fillmark=int.Parse(((Label)GridView3.Rows[0].FindControl("Label16")).Text);[JY]//取出填空题每题分值
foreach(GridViewRow dr inGridView3.Rows)
{
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论