题库系统的设计与实现
简介:主要分为三个端,学生端,教师端、管理员端。学生端可以进行考试和练习题查看,教师端负责导入题库数据,更改试题等;管理员负责日志维护、人员管理、题库维护等工作。
系统集成了学生考试、题库系统维护的功能;题库按照学院-专业-课程来划分,支持对试题的批量添加,以及试题的CRUD.对试卷具有人工组卷、自动组卷两种方式,同时系统会在后台自动统计试卷总分。
(1)系统管理 主要实现对用户及登录权限进行管理,教师权限包括增加、删除、修改、查询试题和试卷。学生权限为登录考试及其答案;采用系统日志,记录用户敏感操作,例如 删除试卷、删除试题、删除试卷等。基于Spring 的AOP 日志 维护日志,试题的删除进行重复验证(使用邮箱发送验证码形式)。
(2)用户管理:管理员要为每个老师、学生建立账户,,对这些用户进行CRUD.
(3)试题库管理:老师可以按照大学专业下的课程进行题库维护,包括对试题的输入与维护( 包括增加试题,删除试题,修改试题,查询试题)。试题录入:支持Excel文件批量导入试题,前端直接解析本地上传的Excel文件,以表格形式展示,并且使用Mybatis-plus 批量插入数据库.支持Excel文件批量导入试题
(4)试卷管理:试卷管理主要包括:组卷(人工组卷和自动组卷)、编辑试卷信息、重置试卷、试卷预览;教师能够查询每一个学生的考试成绩,也支持试卷进行成绩分段查询
(5)智能组卷管理按照要求(难易程度等)实现自动组卷和人工组卷。
框架:SSM(Spring、SpringBoot、Mybatis-plus)
技术栈:Springboot、Mybatis-plus
前端:Vue.js、Vuex、Echarts、axios 、ElementUI
数据库:MySQL 8.0
开发工具:IDEA 2023.1
用户数据存储:Cookies
如图所示,用户输入账号和密码后进入系统。系统会根据账号密码识别其权限,进入不同的界面。
学生端主要功能有:试卷查看,在线考试、试题练习、成绩统计等功能。如下图所示,用户在“我的试卷”栏目下,可以看到各个科目的试卷以及相关考试信息。也可以在右侧上方的输入框内搜索相应的试卷。
用户点击试卷后,就会开始考试。考试期间,右侧上方显示剩余时间,左侧可以进行题号切换,同时可以显示题目完成情况。答题完毕后,用户点击“结束考试”后即可交卷,系统自动批改。
结束交卷后,系统自动批阅,学生可以查看自己的分数,本次考试其他信息也会记录在系统中。
在首页的“我的成绩”模块中,用户可以看到所有的考试分数记录。同时用简洁的提示显示该科目是否已经及格。
教师端主要有考试管理,题库管理、学生管理、成绩查询等功能。
在考试管理模块中,教师可以看到相关的试卷信息。主要展示的试卷信息有:试卷名称、试卷编号、所属学院、所属专业、所属课程、年级、考试日期、时长、总分、试卷类型、组卷状态、试题总数以及相关操作。教师可以点击表格左上角“试卷试题信息更新”来更新试卷的信息内容。同时,试卷信息支持根据年级、组卷状态进行排序。方便教师快速查阅。
在操作栏中,教师可以对试卷信息进行编辑,例如对考试时间、时长进行修改。教师点击“编辑”按钮后,可以对考试安排信息进行更新
在线组卷功能:教师有人工组卷和自动组卷两种方式生成试卷的试题。人工组卷中,教师选择试题类型、分值、所属科目等信息,提交后系统会更新到试卷中;自动组卷中,教师可以选择试题难度,根据需要设定选择题、判断题或填空题的数量。
试卷删除功能,该功能会在删除前进行安全验证,系统将会发送邮件给教师,教师输入邮件中的验证码才可以进行删除。提升系统数据安全性。
预览试卷功能:教师点击“预览”按钮后,将会展示改试卷的试题、解析、选项、答案等信息。
试卷重置功能:教师可以根据需要重置该试卷的试题内容。同时该试卷重置后,所有试题将被清空,试题总数变为0,组卷状态会变更为“未组卷”。
教师可以发布新的考试,并填写考试安排信息,点击“立即创建”后发布考试内容,学生端可以查看到考试信息。
试题导入功能:教师可以导入本地的Excel形式的试题文件,实体导入功能支持选择题、判断题、填空题三种题型。教师点击“导入数据”后,选择上传本地Excel 文件,教师上传的本地Excel文件将被自动解析成表格数据,并分页展示。点击“全部添加”按钮后,系统将会把上传试题批量传入到数据库中;教师点击“导出试题”,也可以将页面中的试题导出成Excel文件格式。
如图所示,该模块用于管理专业题库信息。在表格上方,教师根据学院、专业、课程这三个条件快速找到相应的专业题库。表格信息展示的是所有专业的题库信息,具体显示题库编号、题库名称、创建时间、选择题数量、判断题数量、填空题数量、试题总量、以及相关的操作。同时表格支持根据“题库编号”和“创建时间”进行题库的排序。提升查询效率。对于每一个题库,教师可以进行查看、删除、导入、手动录入功能。
教师根据学院、专业、课程进行检索题库,结果以表格展示。(下拉单从数据库获取)
教师点击对应题库右侧的“查看”按钮后,系统将会展示对应题库下所有的试题信息。
教师可在对应试题库中,输入试题名称,进行模糊查询。点击“查询”后展示条件搜索结果。
题库删除功能,该功能将会把对应题库中的所有试题进行删除,为了保证数据安全,该功能会在删除前进行安全验证,系统将会发送邮件给教师,教师输入邮件中的验证码才可以进行删除。题库删除后,系统将自动更新题库数据,选择、判断、填空题以及总题量都会被置位0.
教师可以选择导入试题,和手动录入新增试题。其中导入试题方式为选择本地Excel文件上传试题。
学生成绩查询:教师端显示出所有的学生信息,查询成绩。成绩结果使用Echarts可视化图表来展示。清晰直观。教师可以根据历次的考试成绩来分析学生成绩的趋向。
成绩分段查询:教师以试卷为单位,查询本次考试的学生成绩分段。成绩分段按照百分比显示。如下图所示。
管理员主要就是对教职工进行CRUD,具体不细介绍了。界面如下:
学生信息也支持Excel本地解析并导入到数据库中。
这里是基于Spring AOP机制 实现的日志记录,管理员端负责管理这些用户操作记录。
B站项目演示地址
有需要的伙伴欢迎私信。
【SpringBoot实用功能开发】发送QQ邮件以及邮件验证码对话框
【SpringBoot】基于AOP机制的前置通知以及Cookies记录用户操作日志