基于JavaEE的考试系统的设计与实现

2015-09-10 07:22王奭陈鸿
考试周刊 2015年101期

王奭 陈鸿

摘 要: 本文主要针对本校考试现状,以提高考试效率、降低考试成本、实现无纸化考试为目标,深入分析在线考试系统的各个环节,设计了一个实用、高效的考试系统。

关键词: 随机抽题算法 考试系统 JavaEE

1.现实背景

随着计算机和互联网技术的迅速发展,各种校园网络逐渐成熟,为计算机化和无纸化教育提供了可能,考试逐步进入网络化时代。相对于传统考试系统,网络化的在线考试系统有着许多突出优点。首先,网络化考试可以突破时间和空间的限制。其次,网络化因为采用计算机答题,可以节省大量纸张。以大学课程C语言为例,考试试卷一个班需要印制30份左右,每份试卷需要使用5页左右的B4纸张。根据教务处2014年45号通知,我院共有在籍人数22917人。按照每门课程需要5页纸,平均需要考试4门课计算,如果采用无纸化考试系统,就会节省45万张考试用纸,间接减少树木砍伐量,保护环境。

2.技术背景

系统设计时考虑到了安全性和各种系统兼容性及相应的及时性等特点,因此采用JavaEE开发平台的相关技术。Java技术有天然的优势和特点,跨平台,系统运行稳定,有许多很好的开放的开发架构,如Struts、Spring、Hibernate等。Struts采用MVC模式,能够很好地帮助java开发者利用J2EE开发Web应用。Struts是面向对象设计,将MVC模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使Java程序员可以随心所欲地使用对象编程思维操纵数据库。Spring是一个轻量级的Java开发框架。它的主要优势之一就是分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成框架。

3.算法介绍

随机抽题算法,首先是建立两个序列组,一个是待抽取的题目组成的序列,一个是已经抽取出来编号的序列组,这里序列组中序列的个数是根据题目类型建立的。然后根据用户设定的每种试题类型的数目,随机抽取试题序号到已选定序列组。当所有选定的类型都已经达到数目设定,即完成组卷。

具体算法如下:

(1)定义不同题型的待选题号数组和已选题号数组,假设单选题对应的待选题号数组为G11,已选择出来的单选题的题号数组为G12;多选题对应的待选提题号数组为G21,已选择出来的多选题的题号数组为G22;依此类推。

(2)对各个题型的数组初始化,预先设定好各个题型的分数值。

(3)使用随机函数在G11数组中抽取一个试题,加入到G12中,然后把G11数组中和该试题同一章节的其他题号删除,目的是保证下次选出的试题题号不再是该章节的试题题号。每次随机选择出一个题号加入到G12之后,都要将G11中该题号所在章节的其他试题题号删除,直至G11为空或者完成单选题的抽题任务。

(4)如果单选题任务没有完成,即没选出足够的试题,而同时G11为空,那么下次抽题之前,将根据G12反向选择出为单选择的试题题号到G11中,再随机选择一个试题题号出来。再重复步骤3。

(5)单选题完成选择之后,再类比完成其他题型的抽题任务,直至组卷完成。

该算法的优点是算法相对简单、高效,组卷的试题的章节分布均匀。

难度系统调整问题。根据用户答题错误率调整难度系数。

4.系统实现

功能模块设计:包括用户(管理员、教师、学生)信息管理,题库与试题管理、试卷管理、考试管理、试卷评阅、成绩分析与评价、信息发布模块等。

考试模式的选择分为所有学生答固定试题的试卷,也就是说所有学生参加考试的试卷的题目是一样的;每个同学都从系统中随机抽题组卷,每个试卷中各种类型的题目的个数一样,难度系数都一样,但是具体题目不一定相同。

数据通信模块,在考试过程中需要根据用户设定,每隔一段时间与服务器交换数据,主要进行时间统一,服务器接受用户考试过程中的答题数据。

试卷评阅部分,主要指由阅卷老师对问答题等部分进行评分。

成绩分析与评价部分,则根据某一次考试情况,以图表形式统计每道题的答题情况,以及整个学生成绩的分布统计等数据,包括平均分,各个分数段人数,以及均方差等数据。便于出题老师对该试卷总体情况进行分析和评价。

信息发布模块主要是发布有关考试信息和考卷情况的内容。

5.运行和测试

实现要点:防止考生作弊。因为系统既可以随机抽题考试和测试,又可以由教师手工组卷进行考试。在第二种情况下,所有考生将对同一套试卷进行测试,相邻同桌之间太容易互相抄袭。可以采用以下方法避免这种情况:

(1)打乱考生试题的题号。试卷中所有试题整体上是一样的,但是试题出现的题号不一样。同一道题,一个同学答的题号是1,另外一个同学的题号可能是10。

(2)打乱试题尤其是选择题的选项顺序。对于同样一道选择题,不仅出现的题号有可能不一样,而且题支中选项也会打乱次序。

6.总结

经过4个班120人的测试,系统满足设计任务要求,运行正常,达到了设计要求。但由于时间紧迫,还需要进一步改进:进一步完善UI界面,提供更人性化、方便操作的界面;优化数据库组织,可供更多用户同时监考;添加试题批量管理、用户批量管理等功能。

参考文献:

[1]欧薇.基于遗传算法的在线考试系统的设计与实现[D].华南理工大学,2012.

[2]吴静霞.基于智能组卷的在线考试系统的设计与实现[D].苏州大学,2008.

[3]刘韶丽.基于智能组卷策略的网上考试系统的设计与实现[D].东南大学,2006.

[4]王添财.基于JavaEE的在线考试系统的设计与实现[D].华南理工大学,2014.

本文是校级科研课题”基于JavaEE的综合考试系统的设计与实现”支持的项目文章。