-
探讨基于J2EE技术的在线考试系统构建
资源介绍
基于J2EE的在线考试系统构建探讨
一、高校在线考试系统需求分析
在线考试系统的一般功能是将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,并尽量屏蔽所有人工直接干预考试的可能性。一般应在系统权限、智能组卷功能以及成绩管理等方面进行具体要求。
1.系统权限
由于考试对应的是特定的对象,所以系统需要经过有效的身份验证才可以登陆。系统的权限一般分为两种:管理员和学生。不同的身份使用不同的权限和功能。管理员需要对试题和考生进行有效的管理,负责试题的录入及更新和修改,对试题的分类,每次考试前,需要对试场环境和考生状态进行考前初始化工作。学生权限主要是登记考试、浏览考试信息、进行考试过程以及对成绩进行查询等。
2.智能组卷功能
智能组卷功能一般应包含系统维护、试题录入、试题检索、试卷生成、复习题生成等基本模块。对于每个应试者来说,试卷的题型和题量都应是相同的,但试题并不相同。自动组卷的效率与质量完全取决于抽题算法的设计。如何设计一个算法从题库中既快又好地抽出一组最佳解或是抽出一组非常接近最佳解的实体,涉及到一个全局寻优和收敛速度快慢的问题,具有很高的研究价值。
3.成绩管理
一般考试成绩由两个部分组成:客观题成绩和主观题成绩。对于客观题成绩,在学生提交试卷后应该及时给出;主观题可采用老师批改或者采用一定的算法进行计算机阅卷,可能需要一段时间才能查询到成绩。
4.系统其它功能
对于在线考试,一般系统还需要具有以下功能:
(1)系统需要有可以管理会话的功能。以便在考试过程中全程跟踪考试状态。(2)系统要有一个友善的界面,确保考生考试的顺利进行。(3)系统要有良好的试卷上传和回收功能,确保信息传送的正确性。(4)系统应具有良好的安全性管理,以保证考试的客观公正。
二、基于J2EE的在线考试系统构架
1.系统结构设计
系统结构针对了J2EE的四层架构进行设计,如图:
图1 J2EE架构的在线考试系统构架
客户层负责提供用户界面接口,包括试题的显示和考生答案的输入;Web层负责将得到的考生登陆和题目上传的信息送交给业务层,同时,将从业务层处得到考试的相关信息输出到html页面为考生提供相关服务;业务层负责系统的具体逻辑实现,主要是得到数据池中的数据源,向数据库中提交和获得数据等;信息系统层主要采用了Microsoft SQL 2000数据库对数据进行存贮管理。
2.系统流程
具体流程见下图:
图2 J2EE架构的在线考试系统流程
考生首先进入登陆页面,输入用户名和密码,系统将该用户名和密码与数据库中考生表的用户名密码一一核对,如果存在该考生且未登陆,则弹出一个考试的主页面正常进入考试,并将该考生置为考试状态。否则会跳到出错页面要求考生重新登陆。
进入考试页面后,有许多分类的试题要求考生分别完成,考生点击相应页面的超链接,进入做题,在每个分页面的顶部,都将会有对该部分试题的操作提示和注意事项,考生阅读完相关事项后进行做题,每做完该部分试题都必须保存,系统将收集到的考生做题信息上传到数据库中,考生则继续做其他部分试题。
完成所有考试后,考生点击交卷标记,系统保存考生所有的答题信息后正常他退出,并将考生置于离线状态。
三、系统关键模块设计
在线考试系统的整体结构主要包括四个部分:数据库模块、系统辅助模块、系统管理模块和在线考试模块。其基本模块构成关系描述如下:
图3 J2EE架构的在线考试系统模块设计
1.数据库模块
目前市场上存在有许多的数据库产品,较流行的有oracle,Mssql,Access,等。对于本系统来说,采用Msssql则是一个较为合适的选择,Mssql是微软网络数据库的主打产品,支持网络功能,日志记录等多种方便的服务,并且有着较为稳定的性能和可靠的管理。
数据库表的设计如下:
Students table:
id, char,10,notnull;
password, char,10,null;
number, char,10,notnull;
sex, char,1,null;(1=男,0=女)
chooseans, char,60,null;
wordans, image,16,null;
status, char,1,notnull;(1=在线,0=离线)
choose table:
QNUM,INT,4,notnull;
QCON,TEXT,16,notnull;
QANSA,TEXT,50,notnull;
QANSB,TEXT,50,notnull;
QANSC,TEXT,50,notnull;
QANSD,TEXT,50,notnull;
QANSE,TEXT,50,notnull;
QANS, TEXT, 1,notnull;
Word table:
Topic_Number , nvarchar, 2,notnull;
Question_Title, text, 16,notnull;
Question_Content,image, 16,notnull;
利用tomcat数据库连接池负责分配、管理和释放数据库连接。
2.在线考试模块功能设置
(1)考生登陆模块
在客户层,考生通过主登陆页面输入用户名与密码。
在web层,将从用户输入处得到的用户名和密码与从业务层返回的相应用户名和密码作比较,如果用户存在密码正确且还未登陆就登陆考试主页面,否则跳到出错页面要求重新登陆。
在业务层,获得与mssql数据库的连接,并取出所有的用户名和密码信息。将该信息传入web层。
在EIS层,对应的是mssql数据库中的students表格。
(2)做题模块
① 选择题:
在客户层,浏览器中显示每个考生所对应的考试题目,要求考生输入考试答案。并有一个提交按钮供考生做完题目后上传题目。
在Web层,jsp负责从业务层中获得题目,并将题目组织在一起向客户端显示。
在业务层,获得与数据库的连接,并且取出选择题题目。
在EIS层,对应的是数据库中choose表格。
② word题:
在客户层,在浏览器中applet的textarea区域显示word题的要求,并利用applett数字签名技术,突破访问本地文件系统的限制,打开word做题。
在Web层,利用servlet的文件上传下载技术,将读出的word文件下载到本地磁盘。
在业务层,获得数据库连接,并取出word题目,word题是以二进制流的方式将word文件存贮在数据库。
在EIS层,对应的是数据库中word表格。
由于涉及到需要调用word程序进行word试题的考试,因此需要用到调用java外部程序的功能,java.lang.Runtime类提供了exce()方法来完成对外部可执行程序的调用。具体代码见下:
String path="C:/word.doc";
try
{Runtime.getRuntime().exec("cmd /c start winword \"" + path + "\"");}
catch (IOException e)
{e.printStackTrace();}
(3)答案上传模块
在客户层,在浏览器中单击提交按钮将做完的答案提交制相应页面
在Web层,将用户提交的答案提交给相应的javabean组件,并在客户端显示提示信息。
在业务层,将提交上来的答案存入相应的数据库中。
在EIS层,数据库中students表格,有两个相应字段用来存放该用户所对应的提交答案。
- 上一篇: SQL server习题及答案
- 下一篇: 《数据库设计与应用》复习