基于MVC模式的在线考试系统设计与实现

2018-04-02 09:13郭子文刘平
电脑知识与技术 2018年5期
关键词:在线考试

郭子文 刘平

摘要:在线考试系统中比较突出的问题是如何高质量且高效地组卷。文中通过收集、分析和整理目前常用的在线考试系统的功能以及优缺点,提出了一个带有智能组卷功能的在线考试系统。该系统采用基于UML的面向对象分析与设计方法对在线考试系统的需求、逻辑结构、业务流程及整个系统的体系结构进行了分析与设计,形成了系统的用例模型、逻辑模型、动态模型和部署模型;并基于MVC模式,使用JavaEE技术,对系统进行了实现。

关键词:在线考试;智能组卷;UML建模;JavaEE技术;MVC模式

考试是教学过程中的一个重要环节,纸质考试的方式往往使人们受到时间和空间等各种各样的限制,造成很多不利。在IT技术和因特网快速发展的今天,考试网络化是今后的发展趋势,让教师出卷、学生考试,阅卷及成绩查询等都能在网络上完成,不但解决了传统考试中大量繁琐的工作,同时也为学生学习和老师教学管理创造了有利条件,实现真正的“无纸化”考试。

在国外,许多部门和资格认证机构都有自己的题库和考试系统;在国内,也有包括:腾讯课堂,网易云课堂,百度传课等考试系统,这些系统通常包括以下功能:用户管理、题库管理、试题管理、试卷管理、手动出卷、在线考试、统计分析、公告管理、留言管理等功能,不仅能够在线学习,也提供了在线考试,但是在组卷方面通常只支持手工组卷,这种方式费时费力,试卷的质量往往因人而异,很难得到控制。为了解决这一问题,本文基于MVC模式,采用JavaEE技术,设计开发了一个支持智能组卷的在线考试系统,提高了试卷的质量和组卷的效率。

1系统采用的开发技术

本系统采用Java语言,基于Windows平台,Tomcat8中间件和Mysq15.7数据库开发,浏览器端采用Bootstrap、JQueryEasyUI、Html、Css等技术,服务器端采用实现了MVC模式的Struts2和Hibernate4框架。下面将系统使用的开发技术做个简单的介绍。

Java语言功能强大,易学易用,使用量在所有开发语言中稳居榜首。MVC是一种流行的软件设计思想,将业务逻辑、数据、显示分离,优势是架构清晰严谨,效率高。Struts2是一个最基础的MVC开发框架,采用Struts2开发的优势在于结构清晰,簡单易用,开发效率高。Hibernate是一个全自动的ORM框架,使得开发人员可以使用面向对象的编程思想来操纵数据库,采用Hibernate的优点是可以用很少的代码来执行更多的数据库操作。Bootstrap是基于CSS、HTML、JAVASCRIPT的前端快速开发框架,优点是开源、免费、页面显示效果好,开发迅速。JQueryEasyUI是基于JQuery的轻量级开发框架,开发组者无需写太多的Javascript代码即可开发出功能强大的界面。

2系统分析

系统由考试子系统和管理员子系统构成,每个子系统分别完成不同的功能。

考试子系统的主要功能是学生在登录系统后可进行在线考试、在线练习、成绩查询、给管理员留言以及个人信息维护等。

管理员子系统的主要功能是给管理员和老师提供人工组卷、智能组卷、题库管理、题目管理、试卷管理、成绩管理、学生管理、留言管理、公告管理和个人信息维护等功能。

另外,要求用户的每个操作都需要验证,用户在未登录状态下或直接输入地址不能使用系统提供的功能。

3系统设计

3.1系统总体设计

系统包括以下模块:

3.2详细设计

本节中将总体设计进行细化,主要从数据库设计和类设计两方面进行细化。

3.2.1数据库设计

系统数据库结构如图所示:

3.2.2系统类设计

1)Model类设计

Model类用于存储系统中的数据,包括:学生类(Student),作用是存储学生信息。试题类(Question),作用是存储试题的基本信息。考试类(Exanl),作用是存储考试的基本信息。试卷类(Paper),作用是存储试卷信息。

2)DAO类设计

DAO类负责与数据库交互,其主要作用是对数据进行添加、修改、删除、查询等一系列操作,本系统涉及的DAO类包括:ExamDao类用于保存考试信息,获取考试列表,获取考试列表总数。PaperDao类用于得到试卷列表,获取试卷下的题目,删除试卷,保存试卷。QuestionDao类用于获取试题信息,判断试卷下面是否有题目,根据查询条件得到题目列表和分页,根据查询条件得到题目总记录数,删除题目,保存试题。StudentDao类用于登录系统,获取学生信息,获取学生列表。

3)Action类设计

Action类包括以下类:ExamAction用于处理考试请求。JfreeChartAction用于统计题库信息。ManagerAction用于处理管理员请求。MessageAction用于处理留言请求。NoticeAction用于处理公告请求。PaperAcfion用于处理试卷请求。QuestionAcfion用于处理试题请求。StudentAction用于处理学生请求。TikuAction用于处理题库请求、试卷请求、考试请求。

4)Util类设计

ExcelUtil用于导入学生信息,PageBean用于数据分页,PageUtil用于显示分页导航条,ResponseUtil用于返回处理结果,DateUtil用于格式化日期和格式化字符串。

4系统实现

系统实现后的效果如下:

5系统测试

在测试阶段,根据系统需求,使用等价类划分和边界值分析方法设计了大量的测试用例来对系统进行测试,下面给出一个核心的测试用例,如表1所示:

另外,由于目前B/S模式系统使用环境比较复杂,主要体现在目前主流的浏览器较多,而且同一种浏览器还存在多个版本,所以还做了兼容性测试。针对兼容性,对Firefox、Google、360浏览器进行了兼容性测试,经测试,系统可以在所测试的浏览器上正常使用。

6结论

经过严格的系统测试,测试结果表明系统的设计和实现完整、准确地表达了系统的需求,但是系统还存在一些不足的地方,例如界面不够美观,智能组卷的条件和灵活性还不够,系统还需要持续地完善和改进。

猜你喜欢
在线考试
大学物理在线考试与分析系统
效率观下高校课程考试形式的改革探索
大数据背景下在线评教与在线考试融合的思路探讨
基于MVC模式的在线考试测评系统的设计与实现