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

2024-03-25 01:10

本文主要是介绍【SpringBoot】基于SSM框架的题库系统的设计与实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章结构

  • 课题:
  • 一、项目简介
    • 主要功能
    • 技术选型
  • 二、 模块介绍
    • 学生端
    • 教师端
      • (一)考试管理
      • (二)试题管理
      • (三)学生成绩管理
    • 管理员
    • 三、 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记录用户操作日志

这篇关于【SpringBoot】基于SSM框架的题库系统的设计与实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843397

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu