基于JAVA的在线考试系统的设计与实现
扫描二维码
随时随地手机看文章
(陕西工业职业技术学院,陕西 咸阳 712000)
引 言
在分析了现有考试系统,结合实际情况的基础上,利用Java 语言设计并实现了一个基于 Web 的在线考试系统设计。系统包含了登录、注册、教师和学生信息管理、在线考试、试卷管理、题库管理、学生成绩管理等能功能。
1 采用技术
模型-视图-控制器(MVC)是 Xerox PARC 在八十年代为编程语言Smalltalk - 80 发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun 公司J2EE 平台的设计模式。
Struts 最早是作为Apache Jakarta 项目的组成部分问世运做,Struts 的目的是为了帮助开发者减少在运用MVC 设计模型来开发Web 应用的时间。如果想混合使用Servlet 和JSP 的优点来建立可扩展的应用,Struts 是一个不错的选择。Struts 是MVC 的一种实现,它将Servlet 和JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts 继承了MVC 的各项特性,并根据J2EE 的特点,做了相应的变化与扩展。Struts 的核心是ActionSevlet,ActionSevlet 的核心是Struts-config.xml 配置文件。
2 系统可行性分析
可行性研究(Feasibility Study)是为了弄清所定义的项目是不是可能实现并值得进行。下面从三个方面分析本系统的可行性。
本系统是在Windows XP 操作系统下开发的基于B/S 体系结构的Struts 框架的MVC 模式的系统,采用 MyEclipse 6.5、Tomcat 5.5、DreamWeaver、PLSQL 作为开发工具。本系统后台采用Oracle 10i 数据库,其具有跨平台性、可靠性、易用性。软件运行环境 :终端支持运行 Windows 的计算机、数据库支持各种流行的大型关系数据库,数据库服务器支持Windows等各种操作系统 ;开发本系统的经济成本低,使用 Java 开发维护费用不高、开发的周期短 ;网络化已经成为社会的趋势, 本系统操作简单方便。
3 系统设计模式
基于B/S 的在线Web 考试模式的物理模型 :一方是管理员在一端通过Internet 与服务器进行连接,另一方是学生分别从不同的地方,也通过 Internet 与考试服务器连接,图 1 为系统的网络原理图。
在线考试系统从概念上看,是一个典型的数据库应用Web 系统,采用三层B/S 体系结构。三层体系结构相对较为简单,表示层展现给最终用户UI 界面,中间业务逻辑层处理用户请求并访问数据库,底层为持久层数据库实现 ;而多层体系结构则将业务逻辑层进一步细化,使系统更加灵活。本系统采用了多层体系结构(系统体系结构如图 2 在线考试系统网络部署图)。
4 系统总体设计及部分模块实现
该系统具有用户登录、参加考试、以及教师进行试题维护、成绩查询等功能的ASP 应用程序,应具有开放性、方便性和灵活性。登录用户可以是学生、教师和系统管理员,每类用户有不同的操作权限。考生通过用户验证后进入考试系统, 并在规定的时间内进行答题,考生交卷后,其分数将被存入数据库中以供以后的查阅。为了保证系统运行的效率和可靠性, 系统服务器端应具有较高的软硬件配置,客户端的要求不是很高。
详细设计阶段的任务是在总体设计的基础上进一步确定如何实现目标系统,包括以下内容 :确定每一模块使用的数据结构,确定每个模块实现的功能,确定流程图,为每个模块确定采用的算法,写出模块的详细过程性描述。
下面将系统试题抽取模块实现时的关键技术及代码进行说明。
在进入到该页面之前,所抽取的题目是在题库中随机抽取的,不能有重复的题目,部分代码如下所示 :
publicstatic List<Integer>getRandoms(int size,intnum){ List<Integer>listInt = newArrayList<Integer>(); Random ran = newRandom();
int k = 0 ;// 初始的数据个数为 0 ;
while(true){
// 这里可以有两种方法来处理 :一种是重新遍历数组找出不重复,另一种是直接用Set 集合
if(listInt.size()== 0){
listInt.add(new Integer(ran.nextInt(size))); k++ ;
} else {
int t = ran.nextInt(size); boolean result = false ;
for(int j = 0 ;j <listInt.size();j++){ if(t == listInt.get(j)){
result = true ;
break ;}
}
if(result){
// 不添加 继续循环
} else {
listInt.ad(d new Intege(r t)); k++ ;
if(k == num){
returnlistInt ; } }
}
}
}
其中,size 是传入的集合的个数,num 是需要抽取的题目的个数。
在学生模块中可以实现学生基本信息的修改,对于密码修改,使用String xpwd = request.getParameter(“xpwd”)实现新密码加载, 使用session.setAttribute(“pwd”,xpwd)实现新密覆盖掉以前的旧密码。
5 结 语
本系统是基于Struts1+Spring+Hibernate框架的MVC模式,所以具有数据和表示层分离的特性,这样前台和后台在设计就能互不影响。应用本系统,既减轻了老师的阅卷工作, 同时也使学生对考试产生了浓厚的兴趣,体会到科技给生活带来的乐趣。在线考试系统为高校的老师和学生们提供了极大的方便,降低了考试的成本,提高了考试的公平性、可靠性。
参 考文献
[1]曹凤莲. 网上考试系统的设计与实现[J]. 网络与信息,2010,24(3):
48-50.
[2]aoFeng-lian.Design and implementation of online examination system[J].Network & Information,2010(3):3-7.
[3]明日科技.C# 项目开发案例全程实录 [M]. 北京 :清华大学出版社,
2011.
[4]王淑敏.ASP.NET 动态网站设计 [M]. 北京 :清华大学出版社,
2010.
[5]郑德康. 在线考试系统的设计与实现 [J]. 计算机光盘软件与应用,
2012(8):154-155.
[6]李隘优. 基于B/S 的在线考试系统安全性的设计与实现[J]. 新乡学院学报(自然科学版),2012(4):336-338.
[7]Li Ai-you.Design and implementation of security based on B/S online examination system [J].Journal of Pingyuan University,2012
(4):50-52.
[8]周鹏梅 . 在线考试系统的设计与实现 [D]. 广州 :华南理工大学,
2012.