AJAX在线考试系统的设计与实现
2012-04-29邵长海
邵长海
[摘要] 在线考试系统的开发及应用,避免了传统考试的纸张、笔、监考等资源的浪费,而且减少了人为的作弊因素。本考试系统应用了最新的AJAX技术实现无刷新考试,倒计时自动交卷、随机组卷、自动评阅等功能。
[关键词] AJAX; ASP.net; 在线考试; 自动阅卷
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 18. 062
[中图分类号]TP399[文献标识码]A[文章编号]1673 - 0194(2012)18- 0111- 03
传统考试涉及组织命题、试卷印刷、考场安排、阅卷等诸多环节,考试周期长效率低下。随着网络技术的发展,网络在线考试系统展现了众多的优越性。本系统应用了AJAX无刷新考试环境、随机组卷、自动阅卷、自动交卷、提供多种题型等功能。
1技术基础
1.1ASP.net
ASP.net是微软公司推出的新一代动态Web应用程序开发平台,是.net框架的一部分,可以使用任何.net兼容的语言编写ASP.net应用程序。
优势:高效运行性能、简易性灵活性、可管理性、生产效率高
1.2AJAX
AJAX是Asynchronous JavaScript and XML(异步JavaScript和XML技术)的缩写,是由JavaScript脚本语言、CSS样式表、XMLHttpRequest数据交换对象和DOM文档对象等多种技术组成的。Web应用的传统模型与AJAX模型如图1、图2所示。
2功能设计
(1) 用户信息管理。该模块功能有考生考号导入、用户权限设置(学生、教师、系统管理员)。将考生考号存成Excel格式,可以成批地导入。并可以设置权限,本系统分为三级权限:学生只能考试、查阅成绩、教师可以录入所教科目试题、查阅学生成绩、系统管理员可以增加删除用户、增加删减考试科目等。
(2) 考试科目管理。以教师或者管理员身份登录后可以添加、删除考试科目。
(3) 试卷出题与维护。以教师或者管理员身份登录后可以选择考试科目,增加删减题型、确定不同题型分数、组卷等。
(4) 考生试卷管理。客观题自动评阅、主观题教师评阅,考生成绩导出Excel格式并排序。
(5) 考试试题管理。本考试系统包括5种题型,即单选、多选、判断、填空、简答,该模块用于选择不同的题型,录入试题。
3关键技术
3.1用户权限设置
本在线考试系统包括3种角色:考生、教师、管理员。管理员可以为教师设置权限。教师可以增减考试科目、组卷等。用户权限设置代码:
自定义方法InitData()进行权限设置
private void InitData()
{
// 创建一个DataTable类型的变量存储哈希表中数据
DataTable dt = Rolemr.Query(new Hashtable());
// 将创建的dt作为数据源
GV.DataSource = dt;
// 从数据库中绑定GridView控件中数据
GV.DataBind();
// 循环GridView控件中的CheckBox控件
for (int i = 0; i < dt.Rows.Count; i++)
{
// 部门管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_DepartmentManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkDepartmentManage")).Checked = true;
// 用户管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_UserManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkUserManage")).Checked = true;
// 考試科目管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_CourseManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkCourseManage")).Checked = true;
// 试卷制定维护
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_PaperSetup") == 1)
((CheckBox)GV.Rows[i].FindControl("chkPaperSetup")).Checked = true;
// 用户试卷管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_UserPaperList") == 1)
((CheckBox)GV.Rows[i].FindControl("chkUserPaperList")).Checked = true;
// 试题类别管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_SingleSelectManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkTypeManage")).Checked = true;}}
3.2考试时间倒计时
protected void Timer1_Tick(object sender, EventArgs e)
{
this.index--;
// 考试时间到了
if (this.index == 0)
{
// 设置Timer控件不可见
this.Timer1.Enabled = false;
BindData();
Response.Redirect("Loginout.aspx");
}
else
{
// 显示考试剩余时间
this.lbtime.Text = this.index / 60 + "分" + this.index % 60 + "秒将停止考试,请及时“提交”试卷,否则试卷作废成绩无效!";
}
}
4总结
本在线考试系统设计开发完成后,在一次200多人的考试中成功应用。从学号的导入到随机组卷、考试、自动评阅、成绩导出。随着网络的普及,在线无纸化考试系统必将广泛应用于学校的各级考试中。在随后的研究中本系统陆续会增加一些功能,如:学生的考试记录存入数据库,分析学生常出错的知识点;主观题的智能阅卷功能;机器意外断电保存学生答题记录等。