一、前言
随着信息技术的飞速发展和互联网的广泛普及,传统的考试方式面临着诸多挑战,如组织成本高、效率低下、资源浪费、评分易受主观因素影响等。在线考试系统作为一种新型的考试模式,利用现代信息技术,能够突破时间和空间的限制,实现考试的自动化、智能化和网络化,逐渐成为教育、企业培训等领域进行考核评估的重要方式。
本在线考试系统采用 Spring Boot、HTML 和 MySQL 的技术组合。Spring Boot 作为后端框架,它简化了 Java 开发流程,提供了强大的依赖管理和自动配置功能,使后端逻辑开发高效且易于维护。HTML 用于构建前端页面结构,具有良好的跨平台性和通用性,能为不同设备提供基础的页面展示。MySQL 作为关系型数据库管理系统,可高效存储考试相关数据,如用户信息、试题库、考试成绩等,确保数据的完整性和一致性,为系统的稳定运行提供数据支撑。
二、技术环境
前端:HTML、CSS、JavaScript
后端:SpringBoot、SpringMVC、Mybatis
插件:Maven Helper、Lombok、MybatisLog
工具:IDEA、Postman、Maven、Git、Navicat
环境:Windows10、MySQL
三、功能设计
3.1 管理员用例图如下图所示:
3.2 教师用例图如下图所示:
3.3 用户用例图如下图所示:
3.4 系统总体模块架构如下图所示:
四、数据库设计
数据库的 E-R 图(实体 - 关系图)是一种强大的工具,用于直观地表示数据库中的实体及其之间的关系。在数据库设计中,E-R 图可以帮助我们清晰地理解数据的结构和流向。限于篇幅要求,仅列出关键部分实体属性图,如下所述。
五、部分效果展示
5.1 管理员登录界面有醒目的系统标识。中间区域包含用户名和密码输入框,下方提供注册新用户的链接。
5.2 管理员查看题库界面列表形式展示题库分类,如按学科或题型分类。点击分类后,相应题目呈现,包括题目内容、难度系数等,还设有搜索栏方便快速查找题目。
5.3 管理员组卷界面功能分区明确。左侧为题库分类目录,方便筛选题目类型。中间区域展示题目详情,可勾选加入试卷。右侧是已选题目列表、试卷设置(如总分、考试时长)和保存、预览试卷按钮。
5.4 用户开始考试界面显示考试名称、考试时长、试卷总分、及格分数、考试描述、底部有开始考试功能按钮。
5.5 用户查看我的考试列表界面以列表形式呈现考试相关信息,包括考试名称、科目、考试时间、考试状态(未考、已考)等。设有搜索栏方便快速查找特定考试,还可点击进入考试详情页面。
5.6 用户答题界面顶部显示考试剩余时间、题目序号与总数。中部是题目内容,客观题有清晰的选项框,主观题则有足够的答题空间。底部设有 “上一题”“下一题”“提交试卷” 等功能按钮。
5.7 用户练习题界面表格形式展示,上方方便筛选不同类型题目。中间展示练习题内容、答案(可按需隐藏)及解析。下方设有答题区域,可输入答案,并有提交、查看对错等操作按钮。
5.8 教师添加题目界面顶部为题目类型选择框,如选择题、简答题等。中部是输入区域,用于输入题目内容、答案、解析和所属知识点等信息。底部有 提交按钮,操作便捷直观。
5.9 教师添加考试界面顶部显示考试基本信息填写区,如考试名称、考试时长等。中部为选择参与考试的班级或学生群体的区域。下方是从题库中选择试题的板块,最后设有 确认按钮。
六、部分功能代码
6.1 提交答案
public Result fillAnswer(AnswerVo answer) {
// 未作答
if(CollectionUtils.isEmpty(answer.getAnswers()) && StringUtils.isBlank(answer.getAnswer())){
return ResultGenerator.genFailResult("答案不可为空");
}
//查找答案列表
List<PaperQuAnswer> list = paperQuAnswerService.selectByQuestionsIdAndPaperId(answer.getPaperId(), answer.getQuestionsId());
//是否正确
boolean right = true;
//更新正确答案
for (PaperQuAnswer item : list) {
if (answer.getAnswers().contains(String.valueOf(item.getId()))) {
item.setChecked(true);
} else {
item.setChecked(false);
}
//有一个对不上就是错的
if (item.getIsRight() != null && !item.getIsRight().equals(item.getChecked())) {
right = false;
}
item.setUpdatedAt(new Date());
paperQuAnswerService.update(item);
}
//修改为已回答
PaperQu qu = new PaperQu();
qu.setQuestionsId(answer.getQuestionsId());
qu.setPaperId(answer.getPaperId());
qu.setIsRight(right);
qu.setAnswer(answer.getAnswer());
qu.setAnswered(true);
paperQuService.updatePaperQu(qu);
return ResultGenerator.genSuccessResult();
}
七、答辩可能出现的问题
🌟问题一
答辩老师:描述一下在线考试系统的考试流程?
同学可回答:在线考试系统的考试流程如下:考生登录系统,进入个人考试界面查看考试安排。考试开始,系统加载试卷,试卷可由管理员手动或自动组卷。考生按要求答题,客观题直接作答,主观题可在指定区域输入文字。答题过程中,系统根据设定进行计时。完成答题后提交试卷,若规定时间内未完成,系统自动提交。提交后,客观题自动评分,主观题等待管理员人工评分。
源码及文档获取
大家点赞、收藏、关注、评论啦 、需要源码及文档的可直接私信我即可。