摘要:本文应用ASP.NET技术和C#语言详细介绍了基于web的在线考试系统的设计,基于WEB的在线考试系统主要由后台管理部分和前台考试部分组成。
关键字:后台管理;功能模块;DataGrid;在线考试
基于WEB的在线考试系统主要由后台管理部分和前台考试部分组成。后台管理部分主要由考生信息管理、题库管理、主观题阅卷等组成;前台考试部分主要由考生注册、登录、在线考试、客观题自动阅卷、成绩查询和试题分析等组成。
一、在线考试系统后台管理模块设计
后台管理模块是提供给教师或管理员操作的。在进行考试之前,教师必须首先登录系统后台,维护好试题库以备系统为考生自动组卷时使用,考试完成后,教师需要再次登录系统进行主观试题的阅卷,教师还须时常对考生的个人信息进行维护,以确保考生能够顺利的完成考试并查看自己的历史成绩。
1.1 考生信息管理模块设计
考生信息管理模块包括显示、添加、编辑(修改和删除)考生信息等功能。
1)考生信息显示页面
考生信息显示页面用来显示考生的注册信息。在此页面设计中,将DataGrid控件与数据库中的“考生信息表”绑定在一起,利用Visual Studio.NET开发工具,使用数据源控件和数据显示控件完成数据库连接、数据显示以及对数据库进行添加、删除等操作。考生信息显示页面如图1所示。
图1考生信息显示页面
2)考生信息编辑页面
该页面完成考生信息的编辑功能,是由通过SQL语句来实现对数据库的操作。
1.2 题库管理模块设计
题库管理模块主要负责试题的维护,包括试题添加、修改和删除,是本系统后台管理模块的主要组成部分。题库由客观题和主观题两部分组成,客观题包括单项选择和多项选择,在添加客观题的时候,教师必须同时提供标准答案,以便用于系统的自动阅卷。主观题的答案只能在试题分析时作为参考,不能用于自动阅卷,主观题的阅卷是在任课教师的参与下完成的。
1.3 主观题阅卷模块设计
由于主观题采用的是人工阅卷的形式,因此系统不能自动阅卷评分,此模块用于阅卷教师在后台进行阅卷并给出主观题的分数。教师阅卷后的成绩,由阅卷老师填入系统为该题预留的字段中,并将成绩汇总后传回成绩数据表中。本模块的主要设计任务是将DetailsView控件与后台数据库中包含考生答案的数据表进行绑定。
二、在线考试系统前台主要功能模块设计
2.1考生注册和登录模块设计
考生注册和登录模块是基于考试系统的安全而设计的,它可以防止非法用户登录,并对考生的登录信息进行记录和管理。用户可以从此页面登录到考试页面、学生注册页面和后台管理页面。登录考试页面及后台管理页面要验证用户名、密码和验证码是否正确。登录页面通过Visual Studio.NET工具箱中的“登录”选项卡内的“Login”组件设计而成。
2.2自动组卷模块设计
本系统的试题采用随机算法进行组卷。系统首先通过题库的总题数和本次考试要求出的题目数生成一组互相不重复的随机数,这些随机数代表了题库中题目的编号。系统根据生成的随机数到相关题库中提取试题,组成一套试卷,供考生使用。使用随机数算法进行组卷,可以保证每份试卷的差异性。随机出题的流程示意图如图2所示。
图2随机出题流程示意图
随机组卷的主要程序代码:
{……
int k; //用于暂存生成的随机数
int flag;//用于所生成的随机数是否和已有的随机数重复的标志
int tihao_control = 1; //tihao_control用来表示某种题型中的第几个题目,用它来控制题目的//显示
Session.Add("TIHAO_control", tihao_control);
Random A = new Random();//随机数函数实例化
int[] suijishu_danxuan = new int[count_random_danxuan];
suijishu_danxuan[0] = A.Next(count_tiku_danxuan) + 1;
for (int i = 1; i < count_random_danxuan; i++)
{ flag = 1;……}
用生成的随机数去控制出题的主要代码:
{……
questionDetails.PageIndex = (int)suijishu_danxuan[tihao_control];
tihao_control++;
Session.Add("TIHAO_control", tihao_control);
if (tihao_control == count_random_danxuan)
……}
2.3在线考试和阅卷模块设计
本模块包括客观题和主观题考试两部分。对客观题考试来说,只要考生完成了作答,系统就可以实时地给出考试成绩,这是因为系统可以自动地将考生的答案和题库中的标准答案进行比对,但对于论述题、简答题等这样的主观题,由于无法给出一个标准化的答案,并且同一个题目有可能会有多个正确的答案,所以无法实现自动阅卷。在本系统中,主观题采用教师后台阅卷的方式,其阅卷后的成绩,将由阅卷老师填入系统中为该题预留的字段中,并在阅卷结束后由系统自动将手工阅卷和自动阅卷的成绩进行汇总,并累计到该试卷最终成绩字段加以存储。
2.4成绩查询模块设计
考生登录在线考试系统后,就可进入成绩查询页面进行历次考试成绩的查询,进而可以进入详细信息的查询页面,在本页面的设计中,与GridView控件相绑定的数据表中的数据是在考试时通过SQL语句写进去的,包括了参加考试的考生的名字、考试科目的代号、各个考试题型的得分、考试完成的时间等信息。
2.5 试题分析模块设计
试题分析在考试系统中是非常重要的,它可以让考生及时地了解题目的对错情况,并能给出题目的相关解释,达到巩固知识的目的。此模块的页面主要包括两个控件:GridView控件和DetailsView控件,这两个控件都是数据绑定控件。GridView控件在一页显示多条记录,而DetailsView控件用来在表中显示来自数据源的单条记录,其中记录的每个字段显示在表的一行中,它可与GridView结合使用。试题分析模块运行界面如3所示:
图3试题分析页面
三、总结
本文对在线考试系统的设计进行了详细的介绍,在线考试系统主要由后台管理部分和前台考试部分组成。本系统经完善后可在校内网络运行,对促进信息化教学有直接的意义。本系统在运行的时候,既要对后台数据库进行操作,又要负责和大量的正在考试的考生进行数据交换,所以系统的稳定性和安全性是至关重要的,这也是本系统需要进一步完善的地方。
参考文献:
[1] 刘振岩.基于.NET的Web程序设计-ASP.NET标准教程[M].北京:电子工业出版社.2006.9
[2] 董宇峰.基于.NET的网络辅助教学系统的设计与实现[D].北京邮电大学.2007.3
[3] Eric J. Braude著.李仁发,王岢,任小西等译.Software Design from Programming to Architecture[M].北京:电子工业出版社.2007.6
[4] 殷玉法.基于.NET的辅助教学系统的研究与开发[D].山东科技大学.2006.6
[5]Jeffrey,著.Applied Microsoft.NET Framework Programming [M]. Wintellect, 2003:200-600
[6] 吴晨,孙少波,叶莞,著.ASP.NET数据库项目案例导航[M].北京:清华