基于Java+SpringBoot+Vue在线培训考试系统设计与实现(有文档) 您所在的位置:网站首页 企业管理在线培训 基于Java+SpringBoot+Vue在线培训考试系统设计与实现(有文档)

基于Java+SpringBoot+Vue在线培训考试系统设计与实现(有文档)

2024-06-25 13:27| 来源: 网络整理| 查看: 265

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅uniapp微信小程序🍅面试题软考题免费使用,还可以使用ChatGPT,微信支付,扫码加群

点击这里预览

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》

https://blog.csdn.net/qq_57756904/category_12173599.htmluniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12199600.html

有需求代码永远写不完,而方法才是破解之道,抖音有实战视频课程,某马某千等培训都是2万左右,甚至广东有本科院校单单一年就得3万4年就12万学费,而且还没有包括吃饭的钱。所以很划算了。另外博客左侧有源码阅读专栏,对于求职有很大帮助,当然对于工作也是有指导意义等。在大城市求职,你面试来回一趟多多少少都在12块左右,而且一般不会一次性就通过,还得面试几家。而如果你对源码以及微服务等有深度认识,这无疑给你的面试添砖加瓦更上一层楼。

最后再送一句:最好是学会了,而不是学废了!!!

目录

一、前言

二、系统设计

1、系统运行环境

2、系统架构设计

三、需求分析简介

1、考试学员

2、系统管理员

四、数据库设计

1、用户信息属性

2、考试信息属性

3、试题信息属性

五、功能截图

1、登录/注册样式

2、考试学员

2.1、准备考试界面

2.2、考试答题界面

2.3、我的成绩界面

2.4、个人资料

3、管理员

3.1、试题管理

3.2、考试管理

3.3、系统设置

3.4、部门管理

3.5、角色管理

3.6、用户管理

六、代码实现

1、用户控制器

2、角色控制器

七、获取源码

一、前言

    考试管理系统是一个信息处理的库系统,通过调用编程语言的库函数来进行编写考试管理系统,能够提高编程效率,降低开发成本。计算机的快速发展已经为考试管理系统在社会发展奠定了基础。落后的手工服务也不能够满足广大用户的需求,随着计算机的快速发展,学校开始突破传统的模式,和计算机技术相结合。紧密联系社会的需求,提供的服务是信息化的,能够满足用户的需求,简化了考试管理系统,间接提高了系统的安全性。随着大数据时代来临,信息存储要比以往大得多。在计算机快速发展的今天,有必要采用一套智能化高,操作简单的考试管理系统,这样可以方便管理员和用户,所以开发一个便于操作的管理系统是很有必要的。

    21世纪是大数据时代,在信息管理方面,数据量非常多,因此要对大量数据进行处理,所以人们利用计算机开发大量管理系统。计算机的最大好处在于自动化,因此使用计算机处理数据,大大地提高了效率,还提高了系统的安全性。对于越复杂的数据处理,就越能体现计算机的优势。考试管理系统中数据众多,需要处理很多数据。刚开始,对信息处理方式主要是手工的方式进行管理。由于数据量巨大并且还用人工的方式进行管理,则容易出现问题。而且当数据量多起来的时候,数据容易丢失,查找起来也不容易。这样会导致效率低下。

  CeaM在线学习考试系统应运而生,是一款基于JAVA开发的,使用SpringBoot+Vue开发的一款多角色在线培训考试系统平台,系统集成了用户管理、角色管理、部门管理、题库管理、试题管理、试题导入导出、考试管理、在线考试、错题训练等功能,考试流程完善。

二、系统设计 1、系统运行环境

开发系统:Windows10

架构模式:MVC/前后端分离

JDK版本:Java JDK1.8

开发工具:IDEA

数据库版本: mysql5.7

数据库可视化工具: SQL yog或Navicat for MySQL

服务器:SpringBoot自带 apache tomcat

主要技术:Java、SpringBoot、MyBatis-plus、MySQL、Shiro、Html、Vue、Elementui等

2、系统架构设计

三、需求分析简介 1、考试学员

    考试学员首先要完成注册登录,才可以使用系统功能。登录后可以维护自己的个人信息,可以修改密码等。完善个人信息后,可以参与考试,考生应该认证浏览试题信息按要求答题,交卷后系统将自动评卷并且返回学员考试结果。考试学员可以查看自己的考试结果。

   

2、系统管理员

    系统管理员首先要完成注册登录,才可以使用系统功能。登录后可以维护自己的个人信息,可以修改密码等。系统管理员负责试题管理,包括设置试题题目、设置选项、答案解析等。负责考试的设置,包括考试名称、考试描述、总分数、及格线、考试时长等的设置维护。系统管理员还可以设置系统信息,管理部门、用户以及角色等信息。

四、数据库设计

部分数据库实体E-R图:

1、用户信息属性

2、考试信息属性

3、试题信息属性

五、功能截图 1、登录/注册样式

2、考试学员 2.1、准备考试界面

2.2、考试答题界面

    交卷后系统自动改卷并且显示考试结果

2.3、我的成绩界面

2.4、个人资料

3、管理员 3.1、试题管理

3.2、考试管理

3.3、系统设置

3.4、部门管理

3.5、角色管理

3.6、用户管理

六、代码实现 1、用户控制器 @Api(tags = {"管理用户"}) @RestController @RequestMapping("/exam/api/sys/user") public class SysUserController extends BaseController { @Autowired private SysUserService baseService; /** * 用户登录 * @return */ @CrossOrigin @ApiOperation(value = "用户登录") @RequestMapping(value = "/login", method = {RequestMethod.POST}) public ApiRest login(@RequestBody SysUserLoginReqDTO reqDTO) { SysUserLoginDTO respDTO = baseService.login(reqDTO.getUsername(), reqDTO.getPassword()); return super.success(respDTO); } /** * 用户登录 * @return */ @CrossOrigin @ApiOperation(value = "用户登录") @RequestMapping(value = "/logout", method = {RequestMethod.POST}) public ApiRest logout(HttpServletRequest request) { String token = request.getHeader("token"); System.out.println("+++++当前会话为:"+token); baseService.logout(token); return super.success(); } /** * 获取会话 * @return */ @ApiOperation(value = "获取会话") @RequestMapping(value = "/info", method = {RequestMethod.POST}) public ApiRest info(@RequestParam("token") String token) { SysUserLoginDTO respDTO = baseService.token(token); return success(respDTO); } /** * 修改用户资料 * @return */ @ApiOperation(value = "修改用户资料") @RequestMapping(value = "/update", method = {RequestMethod.POST}) public ApiRest update(@RequestBody SysUserDTO reqDTO) { baseService.update(reqDTO); return success(); } /** * 保存或修改系统用户 * @return */ @ApiOperation(value = "保存或修改") @RequestMapping(value = "/save", method = {RequestMethod.POST}) public ApiRest save(@RequestBody SysUserSaveReqDTO reqDTO) { baseService.save(reqDTO); return success(); } /** * 批量删除 * @param reqDTO * @return */ @ApiOperation(value = "批量删除") @RequestMapping(value = "/delete", method = { RequestMethod.POST}) public ApiRest edit(@RequestBody BaseIdsReqDTO reqDTO) { //根据ID删除 baseService.removeByIds(reqDTO.getIds()); return super.success(); } /** * 分页查找 * @param reqDTO * @return */ @ApiOperation(value = "分页查找") @RequestMapping(value = "/paging", method = { RequestMethod.POST}) public ApiRest paging(@RequestBody PagingReqDTO reqDTO) { //分页查询并转换 IPage page = baseService.paging(reqDTO); return super.success(page); } /** * 修改状态 * @param reqDTO * @return */ @ApiOperation(value = "修改状态") @RequestMapping(value = "/state", method = { RequestMethod.POST}) public ApiRest state(@RequestBody BaseStateReqDTO reqDTO) { // 条件 QueryWrapper wrapper = new QueryWrapper(); wrapper.lambda() .in(SysUser::getId, reqDTO.getIds()) .ne(SysUser::getUserName, "admin"); SysUser record = new SysUser(); record.setState(reqDTO.getState()); baseService.update(record, wrapper); return super.success(); } /** * 保存或修改系统用户 * @return */ @ApiOperation(value = "学员注册") @RequestMapping(value = "/reg", method = {RequestMethod.POST}) public ApiRest reg(@RequestBody SysUserDTO reqDTO) { SysUserLoginDTO respDTO = baseService.reg(reqDTO); return success(respDTO); } /** * 快速注册,如果手机号存在则登录,不存在就注册 * @return */ @ApiOperation(value = "快速注册") @RequestMapping(value = "/quick-reg", method = {RequestMethod.POST}) public ApiRest quick(@RequestBody SysUserDTO reqDTO) { SysUserLoginDTO respDTO = baseService.quickReg(reqDTO); return success(respDTO); } } 2、角色控制器 @Api(tags = {"管理用户"}) @RestController @RequestMapping("/exam/api/sys/role") public class SysRoleController extends BaseController { @Autowired private SysRoleService baseService; /** * 分页查找 * @param reqDTO * @return */ @ApiOperation(value = "分页查找") @RequestMapping(value = "/paging", method = { RequestMethod.POST}) public ApiRest paging(@RequestBody PagingReqDTO reqDTO) { //分页查询并转换 IPage page = baseService.paging(reqDTO); return super.success(page); } /** * 查找列表,每次最多返回200条数据 * @return */ @ApiOperation(value = "查找列表") @RequestMapping(value = "/list", method = { RequestMethod.POST}) public ApiRest list() { //分页查询并转换 QueryWrapper wrapper = new QueryWrapper(); //转换并返回 List list = baseService.list(wrapper); //转换数据 List dtoList = BeanMapper.mapList(list, SysRoleDTO.class); return super.success(dtoList); } } 七、获取源码

 大家点赞、收藏、关注、评论啦 、关注下方公众号获取联系方式👇🏻👇🏻



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有