张水利+董军堂+冯敏娜
摘 要: 针对传统考试方式的繁琐性,提出并设计实现了一个基于MVC模式的在线考试测评系统,整个系统由登陆模块、考试管理模块及考试业务模块3个模块组成。考生凭借正确的用户名和密码实现正常登陆,进入考试管理模块;在考试管理模块中,考生可以浏览考试规则、进入答题环节、查询考试成绩、退出系统;考试业务主要根据试卷等级的要求,实现从题库中抽取试题,组织考卷,记录考生的答案、翻页、交卷等功能。实践证明,如果将在线考试测评应用于学校考核当中,将会有更广阔的应用前景。
关键词: MVC模式; 在线考试; 测评系统; 考试管理
中图分类号: TN911?34; TP302.1 文献标识码: A 文章编号: 1004?373X(2015)14?0067?04
0 引 言
在线考试系统的开发有2种主流模式, 即C/S(Cliene/Server)模式和B/S(Browser/Server)模式。C/S模式是一种传统的开发模式,适用于用户有限的局域网环境。在这种模式下, 客户端与服务器直接相连,因此响应速度快,开发费用较低,周期也较短, 但是缺少通用性。客户端使用时,也需要专门的客户端安装程序。另外, 它的代码可重用性也较差。B/S模式适用于多用户的广域网环境,系统扩展性好、维护简单,但这种模式的开发费用较高,周期较长。而且因为技术还不够成熟,因此功能弱化,难以实现传统模式下的特殊功能要求[1]。
以校园网为平台的在线考试系统能高效、便捷、实时地评价教学效果和检测学生的学习情况,因此逐渐受到广泛重视。在线考试系统在降低考试成本、提高考卷质量、维护考试公平等方面都起到了重要的作用。目前,在线考试有国外大公司开发应用的资格认证考试如Microsoft在线认证考试系统、Adobe 中国认证考试系统等、国内各类众多高等学校基于校园网开发的在线考试系统和被国内很多政府机关、大型企业和专业教育机构的选择通用考试系统WebExam等[2]。考试测评系统采用计算机阅卷,能够提高阅卷效率,特别是选择题能够直接给出成绩,并将成绩保存在数据库中进行自动统计。实现了组织试卷、考试、控制考试、评分等整个考试过程, 同时可查看考生成绩信息,设定考生考试状态等[3]。本文使用B/S结构,设计并实现了基于MVC模式的考试测评系统,该系统能根据教师对于试卷级别的要求组织考卷,设置考题,并在界面上自动显示考试剩余时间,学生正确登陆系统可以查看考试规则,参加考试及查询考试分数。
1 MVC设计模式
设计模式是指一系列从实践中总结出来的、可重复使用的面向对象的设计方法。MVC设计模式是许多交互和界面系统的构成基础,实现模型与数据、界面设计、控制功能的分离,使得各部分修改时相对独立,代码的可维护性增强;同时也提高了应用程序的重用性,便于扩展,开发速度也有了显著提高[4]。随着网络应用的快速发展,MVC模式已成为Web应用开发先进模式之一,被广泛应用于Java 应用程序中。本系统是基于MVC模式的B/S系统,数据存取时采用3层结构的层次模型[5],其模型图如图1所示。其中,Model(模型)表示业务逻辑层; View(视图)代表表示层;Controller(控制器)代表控制层。
图1 MVC模式结构图
2 模块功能设计
2.1 业务功能分析
本系统主要业务功能是实现考生在线测评,其主要业务包括:
(1) 初始化工作:系统启动;
(2) 考生登录;
(3) 查看考试纪律;
(4) 实现考生在线测评,获得测评分数;
(5) 查询测评分数;
(6) 退出系统。
根据业务需求分析,系统总体可分为3个层次:表现层、业务层、数据层。系统结构如图2所示。
2.2 系统模块分析
根据业务功能及流程分析,系统可分为 3 个模块:登陆模块、考试管理模块及考试业务模块。
2.2.1 登陆模块
登录模块的功能主要是实现考生登录。考生凭借正确账号和密码进行登录。登陆模块流程如图3所示。
图2 系统结构图
图3 登陆模块流程图
2.2.2 考试管理模块
考试管理模块实现对考试业务的管理。考生在登录系统之后,通过该模块,可以查看考试规则、完成考试和成绩查询以及退出系统。考试管理模块流程如图4所示。
图4 考试管理模块流程图
3 图形用户界面设计
系统共包括7个UI界面:欢迎界面、登录考试系统界面、主菜单界面、考试规则界面、在线答题界面、分数查询界面以及退出系统界面。启动系统时,利用闪屏技术呈现欢迎界面,3 s后该界面自动关闭,体现了该系统的友好交互性,欢迎界面如图5所示。
欢迎界面关闭后,系统自动弹出登录界面,界面上包括编号和密码两个编辑框以及登录和取消两个按钮。当输入正确的编号和密码后便可以进入到考试系统,若输入信息错误,则会在界面上进行提示。登录界面如图6所示。
正确登录后,进入系统主菜单界面如图7所示。主菜单包括:考试规则、开始答题、查询分数和退出系统。
在图7所示界面上,点击某个菜单,则进入相应的界面,例如点击开始答题,系统进入考试测评系统如图8所示,考生可以开始进行答题,同时启动定时器按钮。
[图7 主菜单界面 图8 在线测评界面]
在答题过程中,考生通过点击“上一题”或“下一题”按钮,保存当前考题所选答案,并获取上一道或下一道考题呈现在界面上,更新“上一题”、“下一题”按钮状态,刷新考题数量和考生选项;
当考试时间结束或考生点击“交卷”按钮,则保存所选答案,同时处理试卷中的每道题,将每道题的正确答案和考生的答案进行比较,如果相同则加上该试题的分数,否则处理下一题,直至算出考生的得分。实现程序如下:
//初始化分数
score = 0;
for (QuestionInfo info : paper)
{
Question q = info.getQuestion();
//从Question对象中获取正确答案
List
//从QuestionInfo对象中获取考生答案
List
//判断2个List集合中的数值是否相同,相同则添加该题的分数
if (answers.equals(userAnswers))
{
score += q.getScore();
}
}
//标识答题结束并返回分数
finish = true;
return score;
4 主要数据模块配置
Java中的properties文件是一种用于表达配置信息的文件,文件类型为“*.properties”,内容格式为“键=值”,并用“#”进行注释。由于其操作简单,在Java编程中广泛使用,本系统也采用properties配置文件形式存储数据。主要操作方法有:
从输入流中加载文件键值对:
load(InputStream inStream);
根据key查找相应的value:
getProperty(String key);
将键值对写入输出流:
store(OutputStream out, String comments);
清除所有装载的键值对:clear()。
系统中使用配置文件存放与服务器IP、端口号、用户、试题等相关的信息,内容如下:
#client.properties
ServerIP=127.0.0.1
ServerPort=8080
UserFile=user.txt
QuestionFile=corejava.txt
系统启动时,自动调用已有的API、使用文件流的方式加载配置文件,再根据key获取存放有用户信息和试题信息的文件目录,以便执行后续操作。
4.1 用户模块
系统用户User对象共包括5个属性:考生姓名、登录账号、登录密码、联系电话以及电子邮件,并使用user.txt存放所有考生信息,其格式为:
1001:王五:592312:85712340:Jay Zhou@yahoo.com.cn
对应项依次是账号:名称:密码:联系电话:电子邮件。
系统启动时,将user.txt文件中的所有数据读入内存,并利用Map结构进行维护,其中key为登录账号,value为用户对象。考生登录系统时,若输入账号存在且密码正确,则会成功登录,3 s自动关闭登录界面,弹出主菜单界面,并在界面上显示该考生信息;反之登录失败,给出提示错误界面。
4.2 试题模块
系统试题Question对象包括7个属性:试题编号、难易程度、类型、题干、选项、正确答案及分数。其中难易程度分为5个等级,级别越小考题就越难;目前试题类型只支持单项选择和多项选择两种;题干中包括了题目的所有描述信息。系统根据考生的选择与正确答案进行匹配,计算出考生的得分。
系统使用corejava.txt存放考题,试题格式如下:
Java语言中字符串“学Java”所占的内存空间是:
6个字节;
7个字节;
10个字节;
11个字节。
@answer=1,score=5,level=8
其中第一行为题干,中间四行为选项,最后一行表示正确答案、分数和难易程度。系统启动时,将corejava.txt中的所有试题读入内存,并将每道试题解析为Question对象,再用Map结构进行维护,其中key为难易程度,value为同一级别的一组Question试题对象,格式为:Map
4.3 试卷模块
系统试卷为一组QuestionInfo对象集合,即List
5 结 语
本文实现了一种基于MVC模式的考试测评系统,考生通过学号和用户名进入系统,选择课程后,系统根据教师设定考试原则,自动从后台数据库中选择相应难度系数的各类题型的试题,生成试卷,供考生考试, 这种测试主要支持客观题型。设计定时器,考试到时自动提交试卷,未答试卷自动提醒,动态地显示考试剩余时间,并当考试剩余时间用尽时,系统自动把考生的答案提交给应用服务程序进行处理。在数据存储方面,采取时间片存储考试数据的方法,防止意外故障造成考试数据完全丢失的现象。本系统主要以客观试题为主,在试题的类型上缺乏灵活性,同时缺乏对考试的分析与评价,因此在以后的工作中要逐步提高专业技术水平,将主观性试题和分析评价部分引入到测评系统中,以提高该系统的实用性。
参考文献
[1] 陈爱明,董朝霞.用Winsock实现在线考试[J].计算机应用,2005,25(2):490?492.
[2] 廖汗成.智能化在线考试测评系统的设计[J].科技广场,2006(2):60?62.
[3] 张春霞.利用Java 实现在线考试系统[J].电脑编程技巧与维护,2011(19):40?44.
[4] 张原,张昭,刘蕊.基于MVC设计模式的虚拟实验平台模块化设计[J].计算机工程与科学,2013,35(8):125?129.
[5] 杨新艳,苏爱玲.Java设计模式在基于MVC模式系统中的应用研究[J].计算机光盘软件与应用,2014(7):128?129.
[6] 宋荣杰,杨彦荣,胡德福.基于MVC模式的教学质量评测系统的设计与实现[J].现代电子技术,2008,31(10):39?41.