在线考试系统

一、前言

    随着信息技术的飞速发展和互联网的广泛普及,传统的考试方式面临着诸多挑战,如组织成本高、效率低下、资源浪费、评分易受主观因素影响等。在线考试系统作为一种新型的考试模式,利用现代信息技术,能够突破时间和空间的限制,实现考试的自动化、智能化和网络化,逐渐成为教育、企业培训等领域进行考核评估的重要方式。

    本在线考试系统采用 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();
    }

七、答辩可能出现的问题

🌟问题一
答辩老师:描述一下在线考试系统的考试流程?
同学可回答:在线考试系统的考试流程如下:考生登录系统,进入个人考试界面查看考试安排。考试开始,系统加载试卷,试卷可由管理员手动或自动组卷。考生按要求答题,客观题直接作答,主观题可在指定区域输入文字。答题过程中,系统根据设定进行计时。完成答题后提交试卷,若规定时间内未完成,系统自动提交。提交后,客观题自动评分,主观题等待管理员人工评分。

源码及文档获取

大家点赞、收藏、关注、评论啦 、需要源码及文档的可直接私信我即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机毕设定制辅导-无忧学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值