基于java+SpringBoot+Vue的在线考试系统设计与实现

项目运行

环境配置:

Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Springboot+ mybatis + Maven +mysql5.7或8.0等等组成,B/S模式 + Maven管理等等。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可

4.硬件环境:windows 7/8/10 4G内存以上;或者 Mac OS;

5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7/8.0等版本均可;
毕设帮助,指导,本源码分享,调试部署(见文末)

系统介绍:

在线考试系统是一个基于JavaWeb技术的网络应用,旨在提供一个在线测试和评估的平台。该系统通过现代信息技术,实现了考试规则管理、试卷管理、试题管理、考试评分等功能,帮助管理人员高效组织和管理在线考试,同时为考生提供了便捷的考试参与方式。
整体功能包含:

管理员管理:用户管理、考试统计管理、专业列表管理、考试规则管理、忘记密码人员登记管理、考试评分管理、试卷管理、试题管理、系统管理、考试管理等。
用户管理:查看考试规则、试卷列表、考试资讯、参加考试、考试记录、错题本、考试评分等。

前台模块:

用户登录与注册
考试规则浏览
试卷列表查看
参加考试
考试记录查询
错题本管理
考试评分查看

后台模块:

用户信息管理:添加、修改、删除用户信息。
考试统计管理:添加、修改、删除考试统计信息。
专业列表管理:添加、修改、删除专业列表信息。
考试规则管理:添加、修改、删除考试规则信息。
忘记密码人员登记管理:处理忘记密码人员的登记信息。
考试评分管理:管理考试评分信息。
试卷管理:管理试卷信息,包括添加、修改、删除试卷。
试题管理:管理试题信息,包括添加、修改、删除试题。

功能截图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码实现:


package com.controller;import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}

论文参考:

在这里插入图片描述

源码获取:

私信获取

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

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

相关文章

一文详细深入总结服务器选型

1. 题记&#xff1a; 服务器选型工作是项目规划检讨的一项非常重要的工作&#xff0c;本文详细深入总结服务器选型。 2. 服务器基础知识概览 2.1 服务器的定义与功能 2.1 .1 定义 服务器是一种高性能计算机&#xff0c;其设计目的是在网络中提供服务。它可以处理来自多个客…

Linux 入门——基本指令1

目录 一背景知识的简介 二 入门相关指令的使用 一.背景知识的简介 1.认识 Linux &#xff0c;了解Linux 的相关背景 其实Linux 是从 Unix 发展而来的。 Linux&#xff0c;一般指GNU/Linux&#xff08;单独的Linux内核并不可直接使用&#xff0c;一般搭配GNU套件&#xff0…

2024年数维杯国际赛赛题浅析-助攻快速选题

本届数维杯我们将选择 MCM的B题以及ICM的D题进行助攻&#xff0c;具体助攻时间轴如下所示 11.15 12&#xff1a;00 更新赛题翻译、相关文献资料、选题建议、赛题难度 11.15 16&#xff1a;00 更新人工精翻版本赛题、数据预处理代码 11.15 24&#xff1a;00 更新完整解题思路…

w038基于SpringBoot的网上租赁系统设计与实现

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0…

windows 安装Ubuntu 后如何使用

windows 安装Ubuntu 后如何使用 youtube链接 https://www.youtube.com/watch?vPaEcQmgEz78哔哩哔哩视频 https://www.bilibili.com/video/BV1tW42197za/?spm_id_from333.999.0.0两个视频是一样的安装Ubuntu 安装docker的教程&#xff0c;不执行docker的安装即可 安装完毕后…

HashMap面试知识点

一、HashMap实现原理 JDK1.7之前&#xff1a;HashMap由数组链表组成。 JDK1.8之后&#xff1a;HashMap由数组链表、红黑树组成&#xff0c;当链表长度超过8&#xff0c;且 二、HashMap中put()方法的过程 ①首先检查数组table是否为空&#xff0c; 为空的话通过resize()方法进…

OceanBase 闪回查询

前言 在OB中&#xff0c;drop表可以通过 回收站 或者 以往的备份恢复来还原单表。当delete数据时&#xff0c;由于delete操作的对象不会进入回收站&#xff0c;此时需要通过闪回查询功能查看delete的数据&#xff0c;以便后续恢复 本次实验版本为 OceanBase 4.2.1.8&#xff0…

[A-18]ARMv8/ARMv9-Memory-内存空间的属性(Attributes Properties)

ver0.1 [看前序文章有惊喜,关注“浩瀚架构师”,可以解锁全部文章] 前言 在宏伟的ARM的内存世界中VMSA中,属性这个议题算不上最亮的星,就和屏幕前的你和我一样,平凡的活在这个茫茫然的人世间。纵使“丈夫贫践应未足,今日相逢无酒钱。”,也不要灰心面对生活,因为“山重…

【Linux】--环境变量

大家好呀&#xff0c;我是残念&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流哦 本文由&#xff1a;残念ing原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&#xff0c;欢迎各…

vue3中使用 HTML5 Canvas 做一个案例总结笔记

这篇文章记录了在vue3中如何使用HTML5 Canvas做一个时钟的案例, 当然主要是HTML5 Canvas, 如何需要了解更多关于vue的知识前面也已经写过好几篇了,辛苦翻一下的... 开始写代码之前我们先来了解一下关于HTML5 Canvas 的基础知识 目录 一 .基础知识 1.了解canvas 1.1 基本用法…

基于微信小程序的开放实验室预约管理系统的设计与实现,LW+源码+讲解

摘 要 使用旧方法对开放实验室预约管理系统的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在开放实验室预约管理系统的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题…

【汇编语言】更灵活的定位内存地址的方法(二)—— 从 [bx+idata] 到 [bx+si+idata]:让你灵活的访问内存

文章目录 前言1. [bxidata]1.1 更加灵活的访问内存1.2 示例1.3 问题一1.4 问题一的分析与求解 2. 用[bxidata]的方式进行数组的处理2.1 问题引入2.2 原来的解决方案2.3 新的解决方案2.3.1 改进后的程序2.3.2 还可以写成这样2.3.3 用C语言来描述看看 2.4 比较与总结 3. SI和DI3.…

[IP组播]IGMP配置实验

华为ensp拓补图 实验步骤 1.配置IP地址 AR1配置 # interface GigabitEthernet0/0/0ip address 192.168.1.1 255.255.255.0 # interface GigabitEthernet0/0/1ip address 12.1.1.1 255.255.255.0 # interface GigabitEthernet0/0/2ip address 13.1.1.1 255.255.255.0 #AR2…

Vue的局部使用

文章目录 什么是Vue?局部使用Vue快速入门 常用指令v-forv-bindv-if & v-showv-onv-model Vue生命周期 Axios案例 什么是Vue? Vue是一款构建用户界面的渐进式的JavaScript框架. 局部使用Vue 快速入门常用指令声明周期 快速入门 准备: 准备html页面,并引入Vue模块(…

DAHL:利用由跨越 29 个类别的 8,573 个问题组成的基准数据集,评估大型语言模型在生物医学领域长篇回答的事实准确性。

2024-11-14&#xff0c;由首尔国立大学创建的DAHL数据集&#xff0c;为评估大型语言模型&#xff08;LLMs&#xff09;在生物医学领域长文本生成中的幻觉问题提供了一个重要的工具&#xff0c;这对于提高模型的准确性和可靠性具有重要意义。 数据集地址&#xff1a;DAHL|生物医…

递归算法专题

题目&#xff1a; 方法一&#xff1a;不讲武德法&#xff0c;注意&#xff1a;面试不能用&#xff01;&#xff01; 代码&#xff1a; public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {//不讲伍德方法for(int x : A) C.add(x); …

验证双随机矩阵(doubly stochastic matrix) 满足C(P)=C(P^T)

验证双随机矩阵(doubly stochastic matrix) 满足C( P P P)C(P T ^T T) 双随机矩阵&#xff1a; 在数学中&#xff0c;一个双随机矩阵&#xff08;doubly stochastic matrix&#xff09;是一个满足以下条件的矩阵&#xff1a; 非负矩阵&#xff1a;矩阵中的每个元素都是非负的…

海外媒体发稿:中东地区阿拉伯邮报Arab Post新闻媒体宣发

​今天&#xff0c;我们要特别聚焦于中东地区的知名新闻媒体——阿拉伯邮报&#xff08;Arab Post&#xff09;&#xff0c;探讨其在海内外媒体宣发领域的重要性和影响力。 阿拉伯邮报作为一家备受关注的新闻媒体&#xff0c;涵盖了新闻、政治、娱乐和观点等多个领域&#xff…

Mysql-DQL语句

文章目录 DQL 语句简单查询查询表所有数据查询指定列 别名查询清除重复值查询结果参与运算 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Mysql专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月16日11点39分 DQL 语句 DQL 语句数据…

ERP软件市场展望:2025年的规模与趋势深度解析-亿发

随着数字化转型的深入&#xff0c;ERP软件市场正迎来新一轮的增长。预计到2025年&#xff0c;全球ERP软件市场规模将持续扩大&#xff0c;中国市场也将保持强劲的增长势头。 市场规模增长 根据市场研究报告&#xff0c;全球ERP软件市场在2019年已超过3,000亿美元&#xff0c;预…