基于SpringBoot研究生考试系统的设计与实现

2021-12-19 20:23焦斌斌
电脑知识与技术 2021年32期
关键词:题库

摘要:随着互联网技术的发展和参加研究生考试的人数逐年增加,已经对研究生入学考试和复试的题目的广度、类型、难度和安全提出更高的要求。系统采用前后端分离技术,前端使用基于Vue.js框架的ElementUI组件库;后端使用分层概念进行设计和开发,使用框架为Spring Boot。系统包括完整题库系统和组卷系统两部分,界面友好和操作简单,能够满足试卷的各种要求。使用黑盒和白盒测试技术对系统的各项性能指标进行测试,证明了系统的可用性、可行性和可靠性。

关键词:研究生考试系统;题库;组卷;Spring Boot;Vue.js

中图分类号:TP311.1      文献标识码:A

文章编号:1009-3044(2021)32-0078-03

1  研究现状和发展趋势

1.1 研究现状

以公平公开公正为前提的研究生入学考试是研究生培养过程中的重要环节,在这一过程中选拔出能力突出具有创新能力的高层次人才。目前研究生入学考试分为统一命题和自主命题两种选拔方式。

做好研究生招生考试题库管理系统建设工作,有利于减轻命题教师的负担,有利于减少人为因素的干扰,有利于提高试卷质量、实现自命题标准化,有利于推进招生制度改革,有利于进一步衡量考生的专业素质和创新能力,选拔更加优秀的人才。

1.2 发展趋势

随着云技术、安全技术和教育方式的不断改善,积极探索改进考试方式的新思路。建立研究生考试的自命题题库系统,是对传统研究生考试模式的改革,为了保证考试的公平性出题的全面性,题库的建立势在必行。

2 研究方法与技术方案

2.1 研究方法

为了提高试题的质量和实现命题的标准化,需要建立完善的审核机制。同时也要避免试题装错、错发、泄露、雷同及内容不符等问题的发生;保证试卷数量、分数、答卷用时的准确和合理;保证阅卷参考内容的正确。因此完善研究生的题库系统并根据题库系统自动或手动生成试卷,实现试卷中的试题更具随机性、合理性与严谨性,提高试卷質量。教师可以根据考试科目的章节的知识点进行试题设计和试题导入,也可以完成试卷组卷。

2.2 技术方案

系统使用前后台分离技术实现。前端使用Nodejs、Vue、基于Vue的ElementUI和富文本插件ckeditor5。后端使用Spring Boot框架、Mybatis、MySQL、Redis、MongoDB来实现。

Vue.js:Vue.js是渐进式前端开发框架,将业务代码和视图代码完全分离,提高代码的清晰度,也降低了后期维护的成本,相较于传统JQuery,Vue.js不需要直接操作DOM就能够实现数据的绑定[1]。

Spring Boot框架:Spring Boot继承了Spring框架原有的优秀特性,它简化了Spring大量繁杂的配置工作,使得开发人员在开发过程中注重功能的实现而不需要花费大量的时间和精力在配置上,而且内嵌Tomcat服务器,支持jar/war项目打包方式,可以实现项目快速部署[2]。

Redis:Redis是高性能的键-值数据库并且是基于内存的数据库。Reids的优势有:性能极高、丰富的数据类型、原子和丰富的特性。使用丰富的键值数据类型来满足多种场景下的存储需求[3]。在该系统中,Redis主要存储用户token以及频繁使用键值对的数据。

MongoDB:MongoDB是一个基于分布式,文件存储的非关系型数据库。MongoDB中数据是以文档的形式进行存储,文档为BSON格式,其内部可以包含多种类型的文件、数据,也可以内嵌别的文档,模式十分自由[4-5]。在该系统内,MongoDB主要存储考试科目章节知识点、题目类型、题目、考试大纲信息、试卷信息以及试卷中的文档信息。主要是解决在自动生成试卷时,防止频繁地访问数据库,导致生成试卷速度过慢和防止数据过多的操作。

3 功能需求分析

为了确保试卷的质量以及安全性,以及在用户界面友好便于操作。首先需要根据用户的职责不同,设计不同的权限。权限设计完成后,由管理员维护学院并且为用户分配权限。院部管理人员维护课程、科目并为本院的老师分配权限。老师主要负责维护课程大纲、课程知识点以及知识点对应的题目。制作试卷时,需要出题老师制作试卷大纲。试卷大纲包括试卷的注意事项、试卷题目的类型、题目的难易度、完成试卷需要的时间、题目分数等。然后根据纸卷大纲可以自动生成试卷或者手动生成试卷。在试卷管理页面可以查看试卷的所有题目并且修改题目,调整题目的分数以及布局。试卷审核完成后,则可以选择打印设置,完成试卷的打印。在功能方面,主要设计登录界面管理、用户权限模块、学院模块、学科模块、课程模块、课程大纲及知识点模块、题目模块、试卷大纲模块、组卷模块、试卷模块、打印配置模块几大核心功能。

3.1 系统主功能设计

登录:使用系统必须先登录。登录成功后,系统会给用户发放用户访问凭证并且会自动跳转到首页。登录的用户不同,看到的菜单以及页面的按钮也会不同。比如老师只能负责完成维护课程大纲、课程知识点以及知识点对应的题目。但是组卷过程中,题目是否可用,首先需要学科负责人对题目进行审核,然后才可能被使用。

用户权限模块:该模块包括用户信息管理、菜单管理、权限管理。权限管理负责角色信息的维护以及为角色授权;用户信息管理主要负责用户信息管理和为用户分配角色实现用户的权限管理。

学院模块:维护学校所有的二级学院。

课程模块:维护二级学院开设的课程信息。

科目管理:维护研究生入学需要考试的科目,每个科目可以对应多个课程。

课程大纲及知识点模块:维护每个课程的章节信息,以及每个章节对应的知识点。

题目模块:根据学院、课程配置题目信息。题型包括选择题(单选题和多选题)、判断题、填空题、复合题(阅读理解、完形填空)、简答、计算、论述等;题目的难度包括易、一般和难;题目的知识点可以对应课程的一个知识点或者多个知识点;题目的内容包括图文、数学公式和化学公式等;题目必须提供参考答案;题目需要设置题目使用的间隔年份;配置题目预估完成时间。间隔年份和预估完成时间在组卷时使用。

试卷大纲模块:试卷大纲包括学院、科目、试卷数量、用途(初试和复试)、分数、题目分类数量、题目编号方式以及考试注意事项。在每一类题目中,配置大题包含的小题数量、分数、预估完成时间、难易程度和知识点等信息。

组卷模块:根据学院科目的试卷大纲配信息,自动生成满足试卷大纲要求的试卷数量并且在试卷管理中查看。自动组卷主要是根据课程知识点、大纲要求的难易度、完成时间以及判断试卷近几年是否被用过等条件自动生成。

打印配置模块:打印管理主要是配置不同的试卷要求的纸张大小、页边距、字体大小等。

试卷模块:维护自动生成的试卷和手动生成试卷。手动生成试卷时,首先选择试卷大纲,否则无法手动生成试卷。

3.2 主要业务流程

首先需要完成试题的录入功能。录入试题需要管理员先维护学院信息以及课程信息。教师选择负责的课程维护课程大纲及知识点并由学科负责人对课程大纲及知识点审核,只有审核通过后才能完成该课程试图的录入。录入试题时应选择试题对应的知识点,知识点允许选择多个。流程图如图1所示。

生成试卷时,研究生院负责人首先需要维护考试科目,科目为研究生考试的内容以及科目可以对应多个课程。然后需要教师维护考试大纲以及选择考试大纲对应的知识点。由科目负责人审核通过后,教师根据科目考试大纲进行自动组卷或者手动组卷。试卷生成后,教师维护试卷内容并提交至学科负责人对试卷审核,审核完成后研究生负责人对试卷进行打印并且保存。流程图如图2所示。

4 系统实现与测试

在系统测试前,需要管理员先维护学院信息、用户信息、学科信息和课程信息;教师维护课程大纲及知识点信息。下边主要从试题录入、考试大纲和组卷等核心功能进行测试。

试题录入:

教师登录后,在题目列表页面,点击【添加】按钮,打开题目添加页面。页面加载时,默认加载学院信息,教师从课程列表选择课程。选择完成后,自动加载课程下的所有的知识点并显示。根据选择的题目类型,显示不同题目类型的题目内容,后续的操作以单选题为例子。输入试题的题干、选项个数,自动生成选项内容和答案选项下拉列表,选择内容需要文本和数学、化学公式;输入题目允许使用的年限,如果题目超过年限,可以修改年限;输入题目的难度和预估时间,预估时间以分为单位。点击【保存】按钮,题目信息保存成功后,跳转到题目列表页面;点击【添加下一个题目】按钮,重新打开题目添加页面。

题目列表页面,可以导入题目;可以对题目批量地导出、审核、作废、删除;点击试题列表页面表格中的按钮,可以修改、删除、作废和审核一条试题;

考试大纲:

教师登录后,在试卷大纲列表页面,点击【添加】按钮,打开试卷大纲添加页面。页面加载时,默认加载学院信息。选择考试科目;填写用途(初试和复试)、考试时间、有效期和试卷数量、试卷题目类型数量等信息;根据试卷题目类型数量,自动生成题目大题;选择大题的类型、输入试题的难易数量、试题分数、选择试题的知识点。点击【保存】按钮,考试大纲保存成功后,跳转到试卷大纲列表页面。

试卷大纲列表页面,可以导入大纲;可以选择考试大纲完成大纲批量的导出、审核、作废、删除;点击考试大纲列表页面表格中的按钮,可以修改、查看和审核一条大纲;

组卷:

当考试大纲审核完成后,选择考试大纲点击【组卷】按钮,自动完成组卷并在试卷管理下查看所有的试卷。组卷是由大纲的学院、科目以及科目对应的课程中的知识点自动抽题,需要注意的内容有:1)题目完成的时间应该满足试卷大纲完成的时间要求;2)题目的难易度应该满足试卷大纲的要求;3)如果超出题目年限,则题目不满足要求;4)题目已在历年真题中使用,近几年不可以使用;5)题目的类型必须符合大纲题目的类型要求。

5 结束语

系统使用前后端分离技术,降低了系统前后端的依赖。前端使用Node和Vue框架,减少了DOM操作,提高了浏览器渲染速度和用户体验。后端使用Spring Boot框架和Mybatis技术,也使用了MVC的设计模式。系统后台使用分层管理,減少各层之间的耦合,提高层次内部的内聚。利用Spring的AOP完成事务的统一管理,防止数据不安全和脏数据。保存数据使用关系型数据库(MySQL)和NoSQL(Redis和MongoDB),MySQL负责数据的存储,NoSQL用于保存用户的访问令牌以及用户访问比较频繁的数据。

该系统的设计大大提高了系统的维护性、扩展性、重用性;同时也提高了用户体验和响应速度。实现了各科题库统一管理,提高了试卷安全性和保密性。对研究生入学考试和复试都能起到很好的推动作用。

参考文献:

[1] 李娟,彭剑.基于SpringBoot的高校课程知识库的设计与实现[J].电脑知识与技术,2021,17(6):70-71.

[2] 张峰.应用SpringBoot改变web应用开发模式[J].科技创新与应用,2017(23):193-194.

[3] 宁方美,贺雪梅,牟晋娟.SpringBoot集成Redis缓存技术在企业一卡通系统中的应用[J].电子技术与软件工程,2019(24):133-134.

[4] 王辉,傅康平,侯毅,等.一种面向MongoDB的数据库统一访问接口设计与实现[J].电子技术与软件工程,2021(1):171-173.

[5] 任明飞,李学军,崔蒙蒙,等.基于MongoDB的非关系型数据库的设计与开发[J].电脑知识与技术,2019,15(34):1-2.

【通联编辑:谢媛媛】

收稿日期:2021-06-25

作者简介:焦斌斌(1988—),男,河南三门峡人,硕士,研究方向为多目标优化问题、进化算法。

猜你喜欢
题库
“勾股定理”优题库
“轴对称”优题库
“轴对称”优题库