【SpringBoot】基于SSM框架的题库系统的设计与实现

news2024/9/22 23:33:05

文章结构

  • 课题:
  • 一、项目简介
    • 主要功能
    • 技术选型
  • 二、 模块介绍
    • 学生端
    • 教师端
      • (一)考试管理
      • (二)试题管理
      • (三)学生成绩管理
    • 管理员
    • 三、 B站项目演示地址
  • 四、本项目其余相关博客

课题:

题库系统的设计与实现

一、项目简介

简介:主要分为三个端,学生端,教师端、管理员端。学生端可以进行考试和练习题查看,教师端负责导入题库数据,更改试题等;管理员负责日志维护、人员管理、题库维护等工作。
系统集成了学生考试、题库系统维护的功能;题库按照学院-专业-课程来划分,支持对试题的批量添加,以及试题的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站项目演示地址

B站项目演示地址

有需要的伙伴欢迎私信。

四、本项目其余相关博客

【SpringBoot实用功能开发】发送QQ邮件以及邮件验证码对话框

【SpringBoot】基于AOP机制的前置通知以及Cookies记录用户操作日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708219.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

总结下 89C52 单片机中 Timer 2 作为定时器(工作在16位自动重装方式)的使用方法

从应用角度来学习,一切从效率(益)出发。 计数功能是指使用计数器的计数脉冲输入端(T0对应P3.4,T1对应P3.5,T2对应P1.0)对外部脉冲信号的计数;定时功能是指对内部晶振驱动时钟进行计…

Unittest初体验

前言 Unittest优点 UnitTest是Python自带的一个单元测试框架,具有以下特点: 1)轻量、简易,易于上手 2)根据自己的要求,定制优化,如httprunner就是基于unittest完成的 3)能够组织多个用例去执行 4)提供丰富的断言…

熔断与降级 Hystrix

一、Hystrix(豪猪)简介 1、Hystrix的设计目的 (1)对依赖服务调用时出现的调用延迟和调用失败进行控制和容错保护。 (2)阻止某一个依赖服务的故障在整个系统中蔓延,服务A->服务B->服务C,服务C故障了…

结构体和数据结构--结构体数组的定义和初始化

目录 一、结构体数组的定义 二、结构体数组的初始化 一、结构体数组的定义 一个结构体变量只能表示学生成绩管理表中的一个学生的记录信息,代表其中的一个实例,而实际数据库中有多个学生的记录,每个记录对应一个学生的信息,如何…

通过Python的tkinter,在滚动条中添加各种控件

在用tkinter设计UI时,需要在有限的空间里面堆叠多行元素,此时就需要用到滚动条的效果。案例效果如图: 框架思路: 通过tkinter中的画布canvas与滚动条scrollbar进行联动,并将所有的控件都塞入到画布canvas中。其中有一步对画布大小的设置也很关键,即canvas.config(width=…

存储过程和存储函数

存储过程没有返回值,存储函数有返回值 存储过程 存储过程的参数类型有这几种: 没有参数(无参数无返回值)带in(有参数无返回值)带out(无参数有返回值)跟着——在查询语句后面加上into看下面的例子即带in又…

“ReferenceError: Dialog is not defined“

“ReferenceError: Dialog is not defined” 解决办法:变成this.$dialog 引入 Dialog 组件后,会自动在 Vue 的 prototype 上挂载 $dialog 方法,在所有组件内部都可以直接调用此方法。

【Java EE】-博客系统一(前后端分离)

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【JavaEE】 分享: 谜一样的 沉默着的 故事你真的在听吗 ——《平凡之路》 主要内容:准备工作:创建maven,引入依赖。设计数据库并编写数据库代码…

“去高精地图”跟“轻高精地图”有啥区别?落地的挑战又是啥? | 九章自动驾驶随笔之一...

交流群 | 进“传感器群/滑板底盘群/汽车基础软件群/域控制器群”请扫描文末二维码,添加九章小助手,务必备注交流群名称 真实姓名 公司 职位(不备注无法通过好友验证) 编辑 | 苏清涛 真正影响Mapless技术路线落地的最大难点在于…

C语言中的switch语句基本用法

导语:switch语句是一个多分支选择语句,并且可以支持嵌套 switch语句的基本格式 switch语句通过将表达式的值与常量值进行比对,如果相等则执行后面的语句,如果不相等则跳到下一个case语句,当表达式和常量值相等&#x…

探索Python条件语句的奇妙世界:解密逻辑与控制流

文章目录 前言if 语句if ... else ...多重判断(if ... elif ... else...)if 嵌套猜数字游戏三目运算符 前言 Python的条件语句用来根据特定的条件决定程序的执行流程。它允许程序根据条件的真假执行不同的代码块,从而实现不同情况下的不同操…

Linux系统Centos7 安装Tomcat详细步骤

必须安装过jdk (1)下载linux版本的tomcat🍉 https://tomcat.apache.org/download-90.cgi (2) 把tomcat软件放到linux中🍉 (3)解压🍉 (4)防火墙放行tomcat端口🍉 firewall-cmd -…

Verilog基础之十二、分频器实现

目录 一、前言 二、工程设计 2.1 工程代码 2.2 测试文件代码 2.3 综合结果 2.4 仿真结果 一、前言 分频器即将高频率的信号转化为更低频率的信号,常用的分频可使用锁相环PLL来实现,也可自己编写RTL代码来实现。根据分频的系数N(假设信号频率为M&am…

linux环境下重置mysql密码

一、my.cnf 首先,需要找到my.cnf这个文件。 Linux 操作系统中 MySQL 的配置文件是 my.cnf,一般会放在 /etc/my.cnf 或 /etc/mysql/my.cnf 目录下。总的来说,my.cnf 类似于 my.ini 配置文件。 如果实在找不到,使用命令&#xff…

C++ 信号处理

信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 CtrlC 产生中断。 有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些…

组合预测模型 | Matlab基于时间卷积神经网络结合门控循环单元的(TCN-GRU)的回归预测预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 基于时间卷积神经网络结合门控循环单元的(TCN-GRU)的回归预测预测,多变量输入模型(Matlab完整源码和数据) 基于时间卷积神经网络结合门控循环单元的(TCN-GRU)的回归预测预测,多变量输入模型(Matlab完整源码和数…

Vite 项目性能分析与优化

性能优化一直是前端工程化中老生常谈的话题,也是前端项目优化的重要的优化点。事实上,随着项目越来越庞大,稍不注意就会产生明显的性能问题。在不同的场景中,我们对于项目性能的关注点是不一样的。在项目开发阶段,我们…

English Learning - L3 作业打卡 Lesson7 Day55 2023.6.30 周五

English Learning - L3 作业打卡 Lesson7 Day55 2023.6.30 周五 引言🍉句1: I could feel the wind against my face and the beat of my racing heart as if it were happening in that very moment.成分划分弱读连读爆破语调 🍉句2: And that is when …

力扣 236. 二叉树的最近公共祖先

题目来源:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/ C题解:弄清思路就好写,理不清思路就唉。。 递归法: 1. 确定函数返回类型和参数:目标是最近公共节点,所以…

debian linux安装配置企业私有网盘

一、适用环境 1、中小型企业的某些部门之间经常要进行数据的交换与共享时,则可使用企业内部专业的服务器,把剩余的硬盘存储容量配置成为共享网盘的形式,供部门之间进行数据交换。 2、可将多个硬盘通过debian Linux系统组成软阵列的1个逻辑盘…