基于ASP.NET的在线考试系统的设计与研究
2016-12-19徐乐乐尤健
徐乐乐+尤健
摘 要: 针对在线考试系统灵活、方便等特点,分析了基于ASP.NET技术的在线考试系统的系统构成、设计思想和实现过程。系统主要包括学生、教师、管理员三个子模块,重点介绍了管理员模块中的组卷模板、自动组卷算法和随机显示算法。实际应用证明了该系统的可靠性和有效性。
关键词: 在线考试系统; 自动组卷算法; ASP.NET; B/S
中图分类号:TP391.4 文献标志码:A 文章编号:1006-8228(2016)11-32-03
Design and research of online examination system based on ASP.NET
Xu Lele1, You Jian2
(1. Nanjing Audit University, Nanjing, Jiangsu 211815, China; 2. ZTE Corporation)
Abstract: According to the characteristics of the online examination system such as flexibility and convenience, the system structure, design idea and implementation process of online examination system based on ASP.NET technology are analyzed. This system mainly includes three modules: student, teacher and administrator. The test paper auto-generating algorithm and the questions randomizing algorithm in the administrator module are emphatically introduced. The practical application of the system proves its reliability and effectiveness.
Key words: online examination system; test paper auto-generating algorithm; ASP.NET; B/S
0 引言
网络化教育已经成为现代教育一个不可或缺的特征,作为一种全新的教学手段,网络化教育迫使传统教育必须变革。与此同时,考试模式也发生了巨大变化,基于网络的在线考试系统正成为人们的研究热点之一。
与传统考试相比,网上在线考试可以有效地利用校园软硬件资源,实现无纸化考试,节约大量的资源;可以利用网络的强大功能,进行大规模的考试,保证考试的公平、公正性原则;实现完全自动化,自动组卷、阅卷可以减轻教师的工作量,降低教师负担。
采用网络化在线考试方式将是考试发展的趋势,本文介绍基于ASP.NET的在线考试系统的设计思想与实现过程。
1 系统总体设计
为尽可能地减少客户端系统维护的工作量,本系统采用B/S(浏览器/服务器)结构[1-2]作为系统的总体结构,客户端仅由浏览器组成,没有相关软件需要维护或者升级的需求,考试环境既可以是局域网也可以是因特网,用户通过向Web服务器发出请求,在浏览器上接受和显示服务器提供的Web信息(如图1所示),而ASP.NET在数据库访问、与HTML的集成、提高服务器的效率等方面拥有诸多优点。
从功能上本系统可分为三个基本功能模块:
⑴ 学生子系统,为学生考试提供服务,如计时,考试素材下载,查询成绩等;
⑵ 教师子系统,为教师对自己所教班级学生提供管理服务及成绩查询等;
⑶ 管理员子系统,主要面向管理员用以管理整个系统的相关信息,包括人员信息管理、知识点管理、题库管理、组卷系统等。
这三个基本功能模块中,管理员子系统是核心模块,其包含了考试系统必备的题库管理和自动组卷功能,如图1所示。
1.1 题库管理
题库管理操作包括试题的添加、修改、删除,支持单选、多选、判断三种常见的客观题型。
试题的添加需要用到信息管理模块中的课程信息、知识点信息,同时必须设置试题的难易度(分为难、中、易三级)。
1.2 考试管理
考试管理模块主要的功能是组卷,为方便出卷,系统提供了组卷模板功能,通过模板定义了试卷的构成,包括题型、覆盖的知识点、题目的数量、难易度及分数分配。因此通过模板组卷可以避免教师人工出题的主观性,特别是公共课程,因学生较多需要出多套试卷,模板组卷一定程度上保证了多套试卷的知识点覆盖及难易度上的一致性,从而有利于考试公平、公正原则。另外,为了尽可能避免学生作弊,可通过随机显示算法,将每位学生的试题顺序打乱,且每次仅显示一条题目,具体流程如图2所示。
[生成试卷][选择课程][选择组卷模板(若无,先创建新模板)][抽题算法组卷][随机显示算法][设定考试时长、使用时间][完成]
图2 组卷流程
2 系统关键算法
在线考试系统的组卷是根据用户设置的组卷条件,通过一定的抽题算法,从题库中选择满足要求的试题,来组成符合教师要求的试卷。因此,抽题算法是自动组卷能否成功的关键。另外,用计算机产生的随机数将试题显示的顺序打乱,并限制每次仅显示一道题目,则能有效避免学生的作弊。
2.1 抽题算法
为避免每次抽到的试题相同,抽题算法需要实现随机抽题,该算法获得了广泛的研究[3-5],但大多复杂度较高。为提高抽题效率,本文通过.NET的伪随机数生成器实现了一个简单有效的算法,具体算法如下(假设抽取n条单选题):
count:抽取题库所有未被抽取单选题的记录条数
(满足知识点、难易度要求);
flag:抽取标记(0:未抽取,1:已抽取);
算法说明:
初始化抽取标记flag=0;
Random rnd=new Random();
For i=1 to n
抽取题库所有未被抽取选择题(flag=0)的记录集并计算
记录集的条数count;
int r=rnd.Next(count); //生成随机数
按随机数r移动记录指针;
抽取题目并设置抽取标记(flag=1);
next i
2.2 随机显示算法
试题的随机显示,可以通过对试题题号的随机排序实现,以保证每位考生相同题型的题目出现顺序不一样,加大作弊难度,具体算法如下:
假设该试卷有n条单选题
算法说明:
将n条单选题的题号取到数组sc[n]中;
Random rnd=new Random();
For i=0 to n-2
int r=rnd.Next(n-i-1); //生成随机数
交换sc[r]与sc[n-i-1]的值;
next i
3 系统实现
在线考试系统的核心在于网络考试功能的实现,而自动组卷是其核心,围绕自动组卷必不可少的就是组卷模板,实现的组卷模板mb1如图3所示。
为进一步避免作弊,除随机显示试题外,通过设定GridView每行数据的可见性实现每次仅显示一条题目,单击下一题按钮的主要代码如下(以单选题的显示为例):
for (int i=0; i { if (gvsc.Rows[i].Visible==true) { note=@"本题是第"+(i+2)+ " 题,还剩" +(count-i-2)+ " 题。"; if (i==gvsc.Rows.Count-1) { …… } else { if (i==gvsc.Rows.Count-2) if (gvmc.Rows.Count+gvjudge.Rows.Count==0) btnext.Text="交卷"; gvsc.Rows[i].Visible=false; gvsc.Rows[i+1].Visible=true; lnote.Text=note; break; } } } 4 结束语 本系统已基本满足在线考试的实际需要,对学生而言,系统界面简洁、友好,考生能及时查询到考试成绩。对教师而言,该系统降低了工作强度、提高了工作效率、不仅省去了批改、统计分数等繁琐工作,而且避免了手工批改时可能出现的差错。另外,该系统具有较好的通用性和灵活性,有利于题库建设、实现教考分离、改革传统的考试方式及提高教学质量。在接下来的工作中,还可进一步考虑提升系统的安全稳定性,能够及时保存学生的答题结果,以避免当网络不稳定时提交失败导致的结果丢失,同时进一步研究和改进抽题算法。 参考文献(References): [1] 张惠茹.学生网上考试系统的设计与实现[J].微型机与应用, 2013.4. [2] 王忠政.基于B/S架构的网上考试系统的设计与实现[J].软 件导刊(教育技术),2013.2. [3] 杨晓敏.自动组卷及评分系统的设计与实现[J].计算机时代, 2012.3. [4] 袁桂霞.自动组卷的建模和仿真研究[J].计算机仿真, 2011.11. [5] 李永飞,赵巧芳.网上考试系统中随机抽题算法的实现[J].华 北科技学院学报,2009.3.