APP下载

基于SSM框架的题库和试卷管理系统的设计与实现

2018-10-26杨德石李金忠叶晓鑫胡运全

关键词:题库题型试卷

杨德石,李金忠,叶晓鑫,胡运全



基于SSM框架的题库和试卷管理系统的设计与实现

杨德石,*李金忠,叶晓鑫,胡运全

(井冈山大学电子与信息工程学院,江西,吉安 343009)

题库和试卷管理系统是高校信息化建设和计算机辅助教学的重要内容,不仅有利于实现教考分离,而且还能减轻教师考前出卷的工作量,提高工作效率。当前,实现此类系统的技术主要是采用.NET和SSH框架等技术,具有一定的缺陷。本文采用新近的主流先进技术,包括SSM框架、FreeMarker模板引擎、Bootstrap前端框架和MySQL数据库等技术,开发了一套基于B/S模式的题库和试卷管理系统。该系统能实现按知识点创建题库和按模板生成试卷,并可对所生成的试卷进行二次编辑等功能。与其他技术相比,基于SSM框架实现的该系统操作简单、使用方便,开发成本低、开发效率高且易于维护和功能扩充,具有较高的可扩展性和可靠性。

SSM框架; Bootstrap前端框架;FreeMarker模板引擎;题库管理;试卷管理

0 引言

命题出卷是高校教学与考试中的一个重要环节,然而在许多高校,教师仍以传统人工方式在考前命题出卷。此种方式会导致出卷的工作量大、费时费力,试卷质量较难保证,且存在教考不分的弊端,已经难以满足现代教育的需求。在教育部积极推进新工科建设,推动工程教育改革创新的大环境下,如何运用先进的信息技术,建设适应高校教学改革要求并符合实际需求的题库和试卷管理系统,提高命题出卷的效率和质量,保证试卷命题的科学性和客观性,实现教考分离,已成为目前一些高校教育改革的迫切需求。近年来,井冈山大学在新形势下推进教育教学改革的一个切入点就是拟实施“教考分离”,实现以考促教、以考促学、以考促公平和公正的目的,从而形成重教重学的良好氛围,不断提高教学质量。

要实现教考分离,其有效方式是建立题库和试卷管理系统,通过计算机从题库中抽取试题进行组卷,以减小出卷的工作量,提高出卷的效率和质量。本文根据井冈山大学大部分课程考试出卷的应用需求和试卷模板,采用SSM 框架等技术,开发了基于B/S模式的题库和试卷管理系统,实现了题库管理和试卷管理等功能。本系统可涵盖本校大多数课程的题库和试卷的管理,可达到“一个系统,全校使用”的效果。

1 相关工作

当前,有较多的工作采用不同的技术开发了有关题库和试卷管理方面的系统。叶勇等[1]利用LaTeX、Excel和VBA完成题库管理与组卷系统的设计与实现。侯杰[2]以VB 6.0和ASP.NET平台结合SQL Server 2000数据库开发出一套试卷管理系统。莫家庆等[3]运用.NET技术和SQL Server数据库,开发了基于C/S模式的题库管理系统。江军强[4]采用ASP.NET技术开发实现基于B/S模式的题库管理系统,该系统的开发平台使用Windows Server 2003,开发工具使用Visual Studio 2008,开发语言使用C#。冯素梅[5]采用ASP.NET架构、B/S模式,并结合HTML语言、VB.NET语言、ADO.NET、ODBC等技术,数据库采用SQL Server 2005开发了一个通用试题库管理系统。李静梅等[6]采用SSH2框架技术和基于Cos组件的文件上传技术开发了本科生题库管理系统。

不同于上述传统技术,本文采用当前新近的主流的轻量级整合框架Spring、SpringMVC和Mybatis,即SSM框架技术开发了一套基于B/S模式的题库与试卷管理系统。使用SSM框架开发系统具有一定的优势: (1)SSM框架比传统的技术和SSH框架开发效率更高,能降低开发成本,提高开发效率;(2) SSM框架具有更良好的可扩展性、可维护性和可复用性,在开发的过程中各层之间松耦合,便于开发、维护与功能扩充。目前有些管理系统正在使用SSM框架进行开发,如客服管理系统[7]、县城供水管理系统[8]、高校在线考试系统[9]和毕业设计管理系统[10]。但据所调研的情况来看,将SSM框架用于开发题库与试卷管理系统的工作仍较少。

2 开发环境与技术介绍

本文所开发的题库与试卷管理系统采用的Web服务器和数据库服务器分别是Tomcat 7和MySQL 5.5,选择B/S开发模式,在JDK8开发环境下,采用Eclipse mars 2和HBuilder 1.2.0开发工具,Java语言编程实现。本系统采用的关键技术主要有SSM框架技术,版本分别是SpringMVC 4.1.3、Spring 4.1.3和Mybatis 3.2.7,还有Bootstrap框架技术和FreeMarker模板引擎等。

SSM框架[7-10]是一个由Spring、SpringMVC和MyBatis三个开源框架整合而成的基于MVC (模型Model,视图View,控制器Controller)设计模式的框架集,是目前主流的Java EE企业级框架,适用于搭建各种企业级应用系统。其中,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它主要负责管理各层的组件。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,主要负责请求转发和渲染视图。MyBatis是一个支持普通SQL查询、存储过程和高级映射的优秀持久层框架,主要负责控制对象数据持久层的访问,使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs (Plain Old Java Objects)映射成数据库中的记录。SSM框架是当前非常流行的一个轻量级整合框架,它的核心思想是“高内聚低耦合”,使得业务逻辑层、持久层、视图和模型分离。本系统将SSM框架技术用于后端开发。

FreeMarker是一种使用Java语言编写的模板引擎框架技术,是一个基于模板生成文本输出的通用工具,大多采用MVC设计模式的软件架构都使用FreeMarker来实现模板功能。使用FreeMarker技术可构建一种模板样式与模型数据相互分离的word文档动态生成方案,只需有一个试卷模板就能根据模板完美生成doc格式的试卷。本系统将FreeMarker技术作为制作试卷模板工具,应用于生成、导出试卷。

Bootstrap是目前很受欢迎的一种开源的Web前端开发框架,它是一套用于HTML、CSS 和JavaScript 开发的开源工具集,用于开发响应式布局的Web项目。它简洁灵活、直观强悍,使得Web开发更加简单、快捷。本系统将Bootstrap技术用于Web前端开发。

3 系统设计

3.1 系统框架结构设计

本系统基于SSM框架搭建后端,Bootstrap框架设计前端,FreeMarker模板引擎用于导出按模板生成的试卷,MySQL用于存储数据。在MVC模式下,把本系统分为表现层、控制层和持久层,各层之间的通信通过相应的接口编程实现。本系统框架结构如图1所示。

图1 系统框架结构图

3.2 系统功能模块设计

题库和试卷管理系统包括的主要功能有用户管理、题库管理和试卷管理三大模块。用户管理由系统管理员和学院管理员负责,主要是设置用户的基本信息和权限。题库管理主要包括题库的添加、删除、修改、查询功能。在每个题库中,可以添加多个知识点,每个知识点可包括多种题型,题目根据题型进行分类。试卷管理包括试卷的增删改查和组卷以及试卷预览、导出功能。教师角色进入系统之后可以看到自己创建的试卷,学院管理员可以看到学院的所有试卷,系统管理员可以看到全校的试卷。组卷分为自动组卷和手动组卷。对于自动组卷,需要用户去选择题库、知识点、题目数量、总分,然后从题库中根据条件抽取对应数量的题目自动组成一份试卷;而对于手动组卷,则需要用户从题库中查询对应的题目,一题一题进行添加。题库和试卷管理系统的功能模块设计如图2所示。

图2 系统功能设计框图

3.3 数据库设计

根据系统功能设计,确定题库和试卷管理系统包括的基本实体及实体关系,从而确定本系统的物理模型。本系统分为用户管理、题库管理、试卷管理三大子功能模块,相应地包括三大物理模型,分别如图3至图5所示,其中,图3为用户管理模块的物理模型,图4为题库管理模块的物理模型,图5为试卷管理模块的物理模型。

图3 用户管理模块的物理模型

图4 题库管理模块的物理模型

图5 试卷管理模块的物理模型

4 系统主要功能实现

4.1 用户管理

用户管理是管理员对下级用户账号执行相关管理操作的模块。本系统设置了四种用户身份,包括系统管理员、学院管理员、教师和学生。系统管理员给学院管理员分配账号和设置权限,学院管理员给教师和学生分配账号和设置权限,让教师创建题库和试卷,让学生在线练习和考试(备注:后期本系统会增加在线练习和考试模块)。他们都可以修改自身用户的相关信息如密码等,在各自的权限管理范围内,对各自下级用户执行增删改查等操作。用户管理模块的相关界面如图6所示。

图6 用户管理界面

4.2 题库管理

题库管理提供了题库的增删改查和管理知识点、题型和题目等功能。系统管理员可以管理所有题库,学院管理员只可管理自己学院的教师所创建的题库,而教师仅可管理自己所创建的题库。在管理题库时,可以添加知识点,按照知识点选择不同题型,每个知识点都提供了选择题、多选题、填空题和判断题这四种常用题型以及其他题型。其他题型是供用户自己创建的题型以提供更丰富的题型,如简答题、设计题、编程题等等。选中某一题型之后,可以查看该题型下所有题目,对题目进行修改和删除,以及添加新的题目等。查看题目和添加题目界面如图7和图8所示。

图7 查看题目界面

图8 添加题目界面

4.3 试卷管理

试卷管理模块包括试卷的增删改查、手动组卷、自动组卷、预览试卷、导出试卷功能。系统管理员可以管理所有试卷,并且可以依据条件(如学院和题库)查询试卷。学院管理员可以管理该学院所有试卷,并且可以依据题库进行条件查询试卷。教师可以管理自己所创建的试卷,但不能删除试卷。

添加(创建)试卷时需要先输入学年度和学期以及A卷或B卷等信息,并要选中对应题库,然后再选择组卷。本系统提供两种组卷方式:手动组卷和自动组卷。当用户选择手动组卷后,进入手动组卷界面,根据所需要考核的知识点和题目类型等依次选择相关知识点、题型和难度,再点击查询后显示试题列表,如图9所示。在该界面中选择想要的题目,添加到试卷中。如此不断地选择知识点、题型和难度来添加试题到试卷中,待选择好所有试题后,页面会显示每类题型所选择的题目总数,此时,手动组卷已生成一张完整试卷。若要修改试卷,可点击“编辑试卷”按钮,进入试卷编辑界面,如图10所示。在该界面下,用户可以删除不想要的题目,删除完毕,点击“返回组卷”,继续上述方法添加试题进行手动组卷。

图9 手动组卷界面

图10 编辑试卷界面

当用户选择自动组卷后,用户需一次性设置好所需题型以及每类题型所涉及的每个知识点的题目个数和总分值,设置完成后点击“开始组卷”即可进行自动抽题组卷。自动组卷界面如图11所示。在自动组卷中,每一类题型视为一个“试卷配置”,因此后台可接收到多个“试卷配置”。对于每一个“试卷配置”,对其进行相同的自动组卷算法操作。自动组卷算法流程如下:

步骤1 封装题型。获取题型id,封装到“试卷配置”中,表示这个配置存放的是哪类题型;

步骤2 封装知识点。获取每个知识点id的题目数以及总分值,并继续添加封装到“试卷配置”中。这样,一个“试卷配置”包括多个知识点,因此知识点id使用“-”进行拼接,一次性封装到“试卷配置”中。

步骤3 封装题目。根据步骤1和2所封装的题型和知识点的相关信息,分配对应的题目数量并从数据库中随机选择相应数量的题目,将题目id使用“-”拼接后一并添加再封装到“试卷配置”中,最后将该 “试卷配置”插入到数据库中。

步骤4 重复上述3个步骤,将每一类题型都封装到一个“试卷配置”中并插入到数据库中。

步骤5 所有“试卷配置”操作完毕后,将试卷的flag标记修改为2,表示该试卷已经组装题目且自动组卷完毕,则生成完整试卷。

图11 自动组卷界面

组卷完成之后,用户可退回到试卷列表界面,点击“预览”可以进入试卷预览界面,查看试卷的各个题目;点击“导出word”即可通过FreeMarker模板引擎生成word文档格式的试卷,试卷格式是按照井冈山大学试卷模板定制的word文档。导出试卷后也可在生成的word文档试卷中执行修改、删除和重排等编辑操作,以进一步完善试卷。通过FreeMarker模板引擎最终实现试卷文件导出的核心代码如下所示:

public void toWord(Paper paper, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {

ToWordUtils twu = new ToWordUtils("");

twu.setTemplateName("2017-2018试卷样卷.ftl");

Paper p = paperService.selectPaperById(paper);

String filename = p.getPap_name()+".doc";

twu.setFileName(filename);

twu.setFilePath("F:/");

createWord(paper, twu, request);

//至此,文件已经传输到了F盘

}

private void createWord(Paper p, ToWordUtils twu, HttpServletRequest request) throws Exception{

Template t = null;

try {

t = twu.getConfiguration().getTemplate(twu.getTemplateName());

} catch (IOException e) {

e.printStackTrace();

}

File outFile = new File(twu.getFilePath()+twu.getFileName());

Writer out = null;

try {

out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

}

//查询数据库逻辑,将数据库中查询到的数据封装到map集合

try {

t.process(map, out);

out.close();

} catch (TemplateException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

5 总结与展望

为积极响应本校“加强基础设施建设,提高教学信息化水平”的号召,我们开发了一套题库和试卷管理系统,该系统可为学校提供各课程的题库管理和考试试卷的管理,可实现教考分离,并可大大降低教师考前出卷的工作量,使该项工作变得更为简易、规范和科学。

本系统的特色主要体现在:

(1)基于SSM框架技术。

SSM框架是当前正流行的开发Web应用系统的最新技术之一,它不仅能降低系统开发成本和提高系统开发效率,而且能使系统具有较高可扩展性和可靠性。

(2)兼具专用和通用特色。

本系统设计之初主要是针对井冈山大学对题库和试卷管理的需求所设计的,具有一定的专用性。但由于本系统是采用SSM框架技术实现的,只需作少量修改,就可切换成通用的管理系统以给大部分高校提供题库和试卷管理。

本文所开发的基于SSM框架的题库和试卷管理系统,还有待于在本校进行运行测试,以期不断完善该系统。再者,鉴于部分高校推行无纸化考试,将来我们打算在本系统的基础上新增在线练习和考试系统,以期给学生提供一个课程练习和考试的平台。

[1] 叶勇,刘秀华,叶琰,等. 基于LaTeX的题库管理与组卷系统设计[J]. 西南师范大学学报:自然科学版, 2018, 43(3):181-186.

[2] 侯杰. 高校试卷管理系统网络版的设计与实现[J]. 湖南城市学院学报:自然科学版, 2016, 25(6):46-48.

[3] 莫家庆,林瑜华. 基于.NET的题库管理系统设计与实现[J]. 计算机时代, 2014, (10):78-80.

[4] 江军强. 基于ASP.NET的题库管理系统的开发[J]. 宁德师范学院学报:自然科学版, 2013, 25(2): 184-188.

[5] 冯素梅. 通用试题库管理系统的分析与设计[J]. 齐齐哈尔大学学报, 2013, 29(1): 26-30.

[6] 李静梅,金胜男,王彬. 基于SSH2框架的本科生题库管理系统的设计与实现[J]. 应用科技, 2011, 38(8):36-41.

[7] 刘昊,李民. 基于SSM框架的客户管理系统设计与实现[J]. 软件导刊, 2017, 16(7):87-89.

[8] 熊国恺,熊巍滔. 基于SSM框架的县城供水管理系统的设计[J]. 湖南理工学院学报:自然科学版,2017, 30(3):54-57.

[9] 王樱,李锡辉,赵莉. 基于SSM框架的高校在线考试系统研究[J]. 电脑编程技巧与维护,2017,20: 32-34.

[10] 肖祥林. 基于SSM的毕业设计管理系统设计与实现[J].电子科技, 2016, 29(10):115-117.

DESIGN AND IMPLEMENTATION OF TEST QUESTIONS DATABASE AND TEST PAPER MANAGEMENT SYSTEM BASED ON SSM FRAMEWORK

YANG De-shi,*LI Jin-zhong, YE Xiao-xin, HU Yun-quan

(School of Electronics and Information Engineering, Jinggangshan University, Ji’an, Jiangxi 343009, China)

The management system of test questions database and test paper is an important content of information construction and computer-aided teaching in colleges and universities, which is not only conducive to the separation of teaching and examination, but also can reduce the workload of teachers in making test papers before examinations and improve their work efficiency. At present, the technologies for implementing such a system mainly adopts technologies such as .NET and SSH frameworks, which have certain defects. In this paper, a management system of test questions database and test paper based on B/S mode is developed using some recent and mainstream advanced technologies, such as SSM framework, FreeMarker template engine, Bootstrap front-end framework and MySQL database. The management system can create the test questions database according to the knowledge point and generate the test paper according to the template, and can re-edit the generated test paper. Compared to other technologies, the system based on SSM framework is easy to operate, easy to use, low in development cost, high in development efficiency, easy to maintain and expand in functions, and has high scalability and reliability.

SSM Framework; Bootstrap front-end framework; FreeMarker template engine; test questions database management; test paper management

1674-8085(2018)04-0049-11

TP311

A

10.3969/j.issn.1674-8085.2018.04.009

2018-04-15;

2018-05-27

国家自然科学基金项目(61762052); 江西省自然科学基金项目(20171BAB202010);吉安市科技支撑计划项目(吉市科计字[2015]10 号1)

杨德石(1997-),男,安徽蚌埠人,井冈山大学电子与信息工程学院软件工程专业2016级本科生(E-mail: rjsys1579106394@126.com);

*李金忠(1976-),男,江西吉安人,副教授,博士,主要从事大数据、机器学习和信息检索等研究(E-mail: leezhong2005@126.com);

叶晓鑫(1997-),男,广东汕头人,井冈山大学电子与信息工程学院软件工程专业2016级本科生(E-mail: 18370630868@163.com);

胡运全(1976-),男,湖北鄂州人,讲师,硕士,主要从事智能软件、计算机教育等研究(E-mail: huyunquan@jgsu.edu.cn).

猜你喜欢

题库题型试卷
离散型随机变量常考题型及解法
常见数列创新题型归纳
“勾股定理”优题库
巧妙构造函数 破解三类题型
“轴对称”优题库
“轴对称”优题库
“整式的乘法与因式分解”优题库
Module5 A Trip Along the Three Gorges
Module5 Great People and Great Inventions of Ancient China
Module 4 Sandstorms in Asia