魏柯 孙旭朝
【摘 要】随着计算机技术的快速发展和互联网的广泛应用。在教育领域里,网上考试系统利用学校现有的计算机软、硬件资源和网络资源服务功能,让学生能够不受时间和地域的限制在任何一个终端上进行考试。它可以减轻教师的工作负担,提高工作效率,直接分析考试试卷,有利于教师更好地掌握学生的学习情况。
【关键词】网上考试;ASP.NET ;随机试卷
1 系统总体设计思想
本系统采用B/S结构,它以访问web数据库为中心,HTTP为传输协议,客户端通过浏览器访问web服务器和与其相连接的后台数据库,称之为B/S模式。
2 系统功能模块设计和具体描述
系统功能模块划分如图2所示。
2.1 题库管理
教师可以对题库进行管理。该权限包括:题库相关的管理,实现试题类别(填空、选择、判断、问答等)的增加、删除、修改和排序功能。实现考试试题和答案的增加、删除、修改功能。
2.2 在线考试
考生考试前先由教师组成试卷,题目由随机函数从题库中随机抽取,抽取的条件(如最大难度、最小难度、数量、总分等)可以由教师确定;对学生考试进行计时,学生可以在考试时间内主动交卷或者在达到考试时间后系统自动收卷。
2.3 系统维护
系统管理员拥有最高权限,可以对系统进行维护。包括对用户进行管理,增加、修改、删除用户及分配用户的角色,可以直接修改数据库。但所有对系统的操作都存在系统日志文件中,可供查看并提高了系统的安全性。
3 数据库设计
建立网上考试系统的数据库netexam,以考试科目为English为例。为系统创建以下几个表:考生信息表StuInfo,教师信息表Teacher,题库表Question,考试试卷表English:存放教师由题库中随机选择的考试试卷,考生成绩表Score和考点标志表Test成。其中Test表由testaddr(考试地点)和testsign(考试标记)组成,testsign的值可以为0或l,1表示该考点可以开始考试,但其它考点的考生不能进入考试系统,0为不允许考试或考试结束。通过设置这个标志,可以控制考试时间,同时也增加了系统的安全性,以免考题提前泄露。
4 网络考试系统的具体实现
4.1 学生模块功能实现
考生登录考试,首先要求输入考生姓名和考号,并选择参加考试的科目及所在考点。考生提交信息后,通过表stuInfo查找,如果查找到该信息,显示后要求考生确认,并判断考生不是重复登录,然后进入考试页面。例如学生参加英语考试,考生编号和临时考试题放入表English中,并从English表中得到该考生的考题显示在页面上。答题过程中,系统会显示考生客观题的答案,学生可以随时检查相应的题目,以修改答案。一旦按下“交卷”按钮,考生答案将写入score表中,系统为考生判卷,不允许考生再次选题或修改答案。
4.2 教师模块功能实现
在教师模块中,首先要求输入登录者的用户名和密码,以进行身份验证。进入教师模块后,教师可以实现以下功能:
4.2.1出题:选择科目并确认选择后,系统要求选择题目类型,输入题目内容及答案或描述,系统把考题送人数据库Question中;
4.2.2改题:选择科目及题目类型,从第1题开始输出题目及答案或文件描述,可以修改显示的内容,系统会相应的修改Question表;
4.2.3选题:选择科目并确认选择后,系统要求输入各类考题的数量.并提示题目总数,选题不能超过题目总数范围。然后,系统会根据输入信息为考生定制一份统一的考卷;
4.2.4查询成绩:选择科目,或者输入考生考号和姓名,系统会在表stuInfo和Score中查询符合条件的考生信息并以表格形式显示:
4.2.5开始(结束)考试:选定1个考点,系统会把Test表中该考点的testsign置为1(0),这样该考点的考生可以进入考试系统或不允许考生交卷或进入考试系统。
5 关键技术的实现
5.1 考生登录
用TextBox控件接受考生输入的考号和姓名,与数据库中保存的信息进行验证,这里要注意的是防止考生重复登录,为了防止重复登录。使用Session对象中的SessionID值来识别考生。当每个考生首次与考试服务器建立连接时,服务器会自动为考生分配1个SessionID,用以标识考生的唯一身份。
在login.aspx中,应使用如下代码:
if(convert.ToInt32(Application[“status”])==1)判断考生已经登录;if(row[“Sessionid”]!=Session.SessionID)报告考生重复登陆;如果考生没有登录,使用Response.cookies[“status”].Value=“1”记录考生登录状态,然后使用SQL语句
String update=“update StuInfo set sessionid=”+Session.sessionid +“where examid=”+name.Text+””修改考生信息表。
上述代码的处理思想是:当一个考生登录后把sessionID保存到数据库,同时利用cookies记录考生登录状态为cookies[“status”]=“1”,如果考生已经登录,则再判断此考生的SessionID是否一样,如果不同就提示禁止重复登录,否则就允许登录。
5.2 随机生成试题
网络考试系统的关键是试题的随机生成,教师从试题库中随机抽取试题。从组卷界面使用Datalist控件,输入试题总分、试题的最小难度系数、试题的最大难度系数、试题的题型以及各类型试题的数量。根据这些参数,应用程序从试题库中随机抽取符合条件的试题。然后组成试卷保存在数据库中。
随机选题的实现过程是:首先在表Question中得到该科目每类试题编号quesid的最大值max(quesid),随机选题时应在1~max(quesid)之间选取。为了保证不取到重复的考题,系统设置1个数组来储存已选择的题号,相同,放弃这个随机值,重新选取;不同,从题库表中取出这条记录,插入到该科目(例如表English)的考题中,题号依次增加,并把随机值放入数组。在此可以使用SQL语句Select topn * from Question order by newid()从题库中随机抽取n条记录,在Test.aspx页面上使用Panel控件,以便动态生成绑定试题的控件,并将从表Question中得到的试题答案写入表English中的answer字段,
使用代码:
sqlCommand.CommandText=“update English set answer=”+anstr+“where ExamId=+Session[“Id”].ToString()+“”,其中的anstr表示存储随机生成试题答案的字符串变量。
6 总结
基于ASP.NET的网络考试系统使用B/S体系结构。克服了原有ASP编程技术的缺点,解决了外语考试中出题判卷繁琐、人工改卷容易出错且耗费时间的问题。使得主考方可以高效的编辑考题、选取试卷,并可远程控制考试开始和结束,满足办公无纸化客观要求,也减轻了教师的负担。
参考文献:
[1]李明伟.基于ASP.NET技术的WEB网站开发与设计[J].数字技术与应用,2014(12).
[2]黄凤玲.使用.NET技术的在线考试系统设计分析[J].中国电子商务,2014(9).