springboot+vue考试管理系统

基于springboot和vue的考试管理系统

001
springboot vue前后端分离项目
本文设计了一个基于Springboot+vue的前后端分离的在线考试管理系统,采用M(model)V(view)C(controller)三层体系结构,通过 SpringBoot +Vue+Maven+mysql来实现。分为学生,老师,超级管理员三类用户。

技术栈

前端
Vue:Vue 是构建前端界面的核心框架,本系统采用 2.6.14 版本。
后端
Spring Boot:构建系统核心逻辑的后端框架,本系统采用 2.7.0 版本。
MyBatis / MyBatis Plus:后端连接数据库的框架,本系统采用 3.5.2 版本。
数据库
MySQL:本项目的主数据库,本系统采用 8.0.29 版本。
开发环境
VsCode:项目前端的开发工具,使用版本为 1.68.0。
IntelliJ IDEA :项目后端的开发工具,使用版本为 2021.3.2。
Jdk:Java 的开发环境,使用版本为 17.0.3.1。
Maven:后端项目的打包工具,使用版本为 3.6.2。
NodeJs:前端项目的开发环境,使用版本为 16.13.0。

主要功能:

(1)登录模块
系统用户在输入账户和密码登录信息后,服务器对用户信息进行验证,验证正确,根据用户身份进入不同界面。
在这里插入图片描述
(2)发布考试
老师选择对应的班级,试题进行发布,学生可以接收到提醒,进行作答。

(3)考试模块
学生收到考试提醒后,在规定时间内作答,如果超出时间未作答,则失去考生失去考试资格,如果作答但超出考试试卷,自动提交保存的部分。
(4)考试管理模块
选择题,填空题,后台系统可以根据老师设计的答案进行自动批改,老师也可以查看每个同学的答题进行分数的修改。
在这里插入图片描述

(5)成绩管理模块
老师可以查看每个同学的答题,批改完成可以生成该考试的成绩表,老师可以将成绩导出为表格。学生接收到成绩单,可以查看自己的得分情况。
(6)题库管理模块
老师可以添加、删除、修改、题库。发布的考试的题目需从题库中选择。
(7)用户管理模块
管理员可以添加、删除、查询、修改用户信息。

文件展示
在这里插入图片描述
在这里插入图片描述
学生端
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

教师和管理员端
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
部分代码如下:

<!-- 添加考试 -->
<template><section class="add"><el-form ref="form" :model="form" label-width="80px"><el-form-item label="试卷名称"><el-input v-model="form.source"></el-input></el-form-item><el-form-item label="介绍"><el-input v-model="form.description"></el-input></el-form-item><el-form-item label="所属学院"><el-input v-model="form.institute"></el-input></el-form-item><el-form-item label="所属专业"><el-input v-model="form.major"></el-input></el-form-item><el-form-item label="年级"><el-input v-model="form.grade"></el-input></el-form-item><el-form-item label="考试日期"><el-col :span="11"><el-date-picker placeholder="选择日期" v-model="form.examDate" style="width: 100%;"></el-date-picker></el-col></el-form-item><el-form-item label="持续时间"><el-input v-model="form.totalTime"></el-input></el-form-item><el-form-item label="总分"><el-input v-model="form.totalScore"></el-input></el-form-item><el-form-item label="考试类型"><el-input v-model="form.type"></el-input></el-form-item><el-form-item label="考生提示"><el-input type="textarea" v-model="form.tips"></el-input></el-form-item><el-form-item><el-button type="primary" @click="onSubmit()">立即创建</el-button><el-button type="text" @click="cancel()">取消</el-button></el-form-item></el-form></section>
</template><script>
export default {data() {return {form: { //表单数据初始化source: null,description: null,institute: null,major: null,grade: null,examDate: null,totalTime: null,totalScore: null,type: null,tips: null,paperId: null,}};},methods: {formatTime(date) { //日期格式化let year = date.getFullYear()let month= date.getMonth()+ 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;let day=date.getDate() < 10 ? "0" + date.getDate() : date.getDate();let hours=date.getHours() < 10 ? "0" + date.getHours() : date.getHours();let minutes=date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();let seconds=date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();// 拼接return year+"-"+month+"-"+day+" "+hours+":"+minutes+":"+seconds;},onSubmit() {let examDate = this.formatTime(this.form.examDate)this.form.examDate = examDate.substr(0,10)this.$axios(`/api/examManagePaperId`).then(res => {this.form.paperId = res.data.data.paperId + 1 //实现paperId自增1this.$axios({url: '/api/exam',method: 'post',data: {...this.form}}).then(res => {if(res.data.code == 200) {this.$message({message: '数据添加成功',type: 'success'})this.$router.push({path: '/selectExam'})}})})},cancel() { //取消按钮this.form = {}},}
};
</script>
<style lang="scss" scoped>
.add {padding: 0px 40px;width: 400px;
}
</style>
package com.exam.controller;import com.exam.entity.*;
import com.exam.serviceimpl.LoginServiceImpl;
import com.exam.util.ApiResultHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;@RestController
public class LoginController {@Autowiredprivate LoginServiceImpl loginService;@PostMapping("/login")public ApiResult login(@RequestBody Login login) {Integer username = login.getUsername();String password = login.getPassword();Admin adminRes = loginService.adminLogin(username, password);if (adminRes != null) {return ApiResultHandler.buildApiResult(200, "请求成功", adminRes);}Teacher teacherRes = loginService.teacherLogin(username,password);if (teacherRes != null) {return ApiResultHandler.buildApiResult(200, "请求成功", teacherRes);}Student studentRes = loginService.studentLogin(username,password);if (studentRes != null) {return ApiResultHandler.buildApiResult(200, "请求成功", studentRes);}return ApiResultHandler.buildApiResult(400, "请求失败", null);}
}

源码私聊:q1917671527
在这里插入图片描述

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

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

相关文章

【JS】for in可能遇到的问题

问题一&#xff1a;for in 打印属性顺序与定义顺序不一致 先来做一道题&#xff0c;请说出打印结果 const obj {a2: aaa,2: aaa,1: aaaa,a1: aaa, }for(let key in obj){console.log(key) }结果&#xff1a; 1 2 a2 a1 属性的书写顺序不一定就是对象遍历时的顺序。这涉及到…

【2】华为交换机如何修改Web登录密码?

0x01 问题描述 如果忘记了Web登录密码或者希望修改Web登录密码&#xff0c;用户可以通过Console口、STelnet或Tenet等方式登录交换机后设置新的Web登录密码。 使用Telnet协议存在安全风险&#xff0c;建议使用Console囗或STelnet V2登录设备 0x02 问题解决 <HUAWEI> s…

【leetcode热题】打家劫舍

难度&#xff1a; 简单通过率&#xff1a; 40.6%题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防…

前端应用开发实验:条件渲染和循环渲染

目录 实验目的相关知识点实验内容图片的隐藏和显示代码实现效果 电影票房排序代码实现效果 代办事项记录代码实现效果 实验目的 (1)熟练掌握v-on 指令的用法&#xff0c;学会使用v-on 指令监听DOM元素的事件&#xff0c;并通过该事件触发调用事件处理程序。 (2)掌握v-on指令修…

数据分析-Pandas类别的排序和顺序

数据分析-Pandas类别的排序和顺序 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&…

Nebula Graph-05-NebulaGraph nGQL和SQL区别

前言 刚刚我们介绍了nGQL的基本用法: Nebula Graph-04-NebulaGraph nGQL的介绍和使用 现在我们来比较一下nGQL 和我们关系型数据库SQL的区别 nGQL和SQL的概念 对比项SQLnGQL点\点边\边点类型\tag边类型\edge type点 ID主键vid边 ID复合主键起点、终点、rank列列点或边的属性…

C语言TCP通信基础CS模型

模型局限性: 1 不使用 非阻塞 同步异步 信号驱动 多路复用 select poll epoll 事件驱动 等技术 2 意在展示最原始的TCP模型 3 代码命名规整清晰,注释详尽,不官方,使用GPT4做了详细检查 实验流程: 服务器:socket->bind->listen->accept->recv->send->clo…

16 六年级基本概念

打算开始预习六年级上册了&#xff0c;先写一篇文章作为基本概念汇总。 【注意&#xff1a;本篇所提到的重点知识只有课本上提到的重点&#xff0c;并不代表考试范围。】 1 长方体与正方体 第一部分 正方体与长方体的初步认识 两个面相交的线叫做棱&#xff0c;三条棱相交的…

k8s etcdctl 备份

安装 #!/bin/bash # Author: WeiyiGeek # Description: etcd 与 etcdctl 下载安装 ETCD_VERv3.5.5 ETCD_DIRetcd-download DOWNLOAD_URLhttps://github.com/coreos/etcd/releases/download mkdir ${ETCD_DIR} cd ${ETCD_DIR} wget ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_V…

算法---排序

目录 插入排序插入排序的思想代码实现 冒泡排序冒泡排序的思想代码实现 堆排序堆排序的基本思想代码实现 希尔排序希尔排序基本思想代码实现 选择排序选择排序基本思想代码展示 总结 插入排序 插入排序的思想 简单来说&#xff0c;插入排序就时将一个数插入一个数插入一个有序…

docker 容器与本地主机间文件/文件夹的传输

在Docker中&#xff0c;容器与宿主机之间的文件传输主要有两种方式&#xff1a;挂载目录和使用 docker cp 命令。 1、挂载目录 类似共享文件夹&#xff0c;直接在容器中/本地将需要传输的文件/文件夹复制进去即可。限制是在将镜像展开成容器时需要挂载上去&#xff0c;后面再…

使用 ReclaiMe Pro 查找并恢复网络中的 SSH 服务器数据

天津鸿萌科贸发展有限公司是 ReclaiMe Pro 数据恢复软件的授权代理商。ReclaiMe Pro 数据恢复软件专注于恢复几乎所有文件系统及各种类型和复杂程度的 RAID 阵列。 在本文中&#xff0c;我们介绍 ReclaiMe Pro 对于采用 SSH 连接方式的网络服务器中数据的恢复方法。 ReclaiMe…

设计模式及其在项目、框架中的应用

设计模式的作用&#xff1a; 1、类之间关系图&#xff0c;明确的角色及其关系、作用&#xff1b; 2、符合开闭原则&#xff0c;职责明确&#xff0c;并且开放的拓展点可以有效应对后期的变化。 &#xff08;一&#xff09;、责任链模式 适用场景&#xff1a; 在一个流程中&…

AutoTokenizer.from_pretrained 与BertTokenizer.from_pretrained

AutoTokenizer.from_pretrained 和 BertTokenizer.from_pretrained 都是 Hugging Face 的 Transformers 库中用于加载预训练模型的 tokenizer 的方法&#xff0c;但它们之间有一些区别。 灵活性&#xff1a; AutoTokenizer.from_pretrained&#xff1a;这个方法是灵活的&#x…

mysql 锁的知识点简述

1 . mysql 全局锁 mysql 全局锁主要是针对整个数据库的锁,最常用的全局锁是读锁与写锁 读锁 (共享锁) 1.1 读锁 (共享锁) : 他阻止其他用户更新数据,但允许他们读取数据,在你需要的时间内,保持数据的一致性 写锁 (排它锁) 1.2 写锁 (排它锁) : 它阻止其他用户读取和更新数据,…

HWL-41无辅源静态电流继电器 0.5-9.99A 导轨安装 JOSEF约瑟

HWL-40系列无辅源静态电流继电器 HWL-41HWL-42 HWL-43HWL-61 HWL-62HWL-63 HWL-71HWL-72 HWL-73HWL-81 HWL-82HWL-83 产品概述 1、HWL系列集成电路无辅源电流继电器用于发电机、变压器和输电线的过负荷和短路保护装置中作为启动元件。本继电器为集成电路静态型继电器&a…

Token的详解

Token的详解 文章目录 Token的详解前言:简介:使用token&#xff1a; 前言: 为什么会用到Token&#xff0c;因为cookie和session一些自身的缺点&#xff0c;限制了一些功能的实现&#xff0c;比如&#xff1a; cookie&#xff1a;优点是节省服务器空间&#xff0c;缺点不安全。…

启动Vue-demo时引发的一系列问题—解决办法

目录 1.初始遇到的问题&#xff1a;输入npm run dev 1.治标的解决方法 2.治本的解决方法 第一步&#xff1a;检查是否安装了cnpm 第二步&#xff1a;手动找到cnpm目录 第三步&#xff1a;配置系统环境变量 第四步&#xff1a;查看是否安装成功 1.初始遇到的问题&#xf…

memcached面试问题以及答案

文章目录 memcached是什么&#xff1f;Memcached的工作原理Memcached的最大优势Memcached与MySQL的Query Cache比较Memcached与服务器的Local Cache比较Memcached的缓存机制Memcached的冗余机制Memcached的容错处理Memcached中的批量导入导出Memcached中的批量导出导入Memcache…

宝塔面板系列——两种方式安装青龙面板

因为最近旧windows服务器到期了&#xff0c;在搬服务器&#xff0c;新服务器尝试用Linux系统。过程中有很多不懂的地方&#xff0c;只能边搬迁边学边弄&#xff0c;顺带记录下来&#xff0c;哪天又要搬迁了&#xff0c;翻翻自己的文章也就一应俱全了。 非科班出身&#xff0c;选…