文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue.js 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:Java jdk8

Maven:apache-maven 3.8.1-bin

目录

一、前言介绍

二、功能需求分析

2.1考生需求

2.2管理员和教师需求

三、系统前台模块

3.1系统前台登录页面

3.2图书信息列表

3.3在线测试页面

3.4查看分数页面

3.5个人资料页面

四、管理员功能模块

4.1站点管理模块

4.2用户管理模块

4.3系统内容管理模块

4.4系统管理模块

4.5图书信息管理模块

五、教师功能模块

5.1在线测试管理模块

5.2课程管理管理模块

六、学生功能模块

6.1课程成绩管理模块

七、部分核心代码

7.1课程信息关键代码

7.2在线测试关键代码

7.3用户管理关键代码

7.4成绩管理关键代码

7.5试题信息关键代码


一、前言介绍

在线考试系统主要功能模块包括登录、管理员:首页、公共管理(轮播图、公告栏)用户管理(管理员、教师、学生)系统内容(课程资讯、资讯分类、在线测试)系统模块(图书分类、图书信息、课程管理、课程成绩)账号维护,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对在线考试系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现在线考试系统和部署运行使用它。

二、功能需求分析

本系统使用的角色分为考生、教师和管理员。

2.1考生需求

考生登陆系统主要进行两类操作:在线考试,成绩查询与个人信息管理.

(1)在线考试

系统能自动给考生选题,考题必须是随机分配的,以保证考试的公平性。考生在考试过程中页面将提供考试时间倒计时功能,使考生随时了解考试剩余时间。在考试时间到时,系统将自动地将考生考试试卷提交,将提醒考生离开考场。当考试试卷提交时,系统自动为选择题、判断题、多选等客观题评分。

(2)成绩查询与个人信息维护

考生可以登陆系统查询各科成绩,其中成绩信息包括每种题型的得分,如单选题,判断题等。别外考生还可以查询自己的做错的题目,了解自己的考试情况。

除此之外,考生登陆系统可以查看和修改个人的基本信息,如修改密码等。

2.2管理员和教师需求

系统管理员登陆系统后主要进行四类操作:

(1)考题维护,考试信息维护,用户维护和个人信息维护管理员可以往题中添加考题,修改错误试题和删除无用试题,考题维护包括单选题管理(单选题添加、删除、修改)、判断题管理(判断题添加、删除、修改)、多选题管理(多选题添加、删除、修改)。

(2)考试信息的维护

考试信息的维护主要是对于考试设置信息进行维护,这些信息主要是考试总时间,试题数量,各试题分值的分布等。

(3)用户维护

系统管理员可以对用户信息(包括考生信息)进行增,删,改查操作。

(4)个人信息维护

管理员也可以对自己的基本信息的维护。

(5)课程信息维护

管理员管理、课程信息,方便后面为每门科目开设考试。

(6)试卷维护

随机生成试卷,并能按需求修改试卷中的题目数量和题目。

(7)考试成绩维护

考试结束后,考生提交试卷后,客观题由系统自动打分,然后总成绩由客观题加主观题得分。

三、系统前台模块

3.1系统前台登录页面

3.2图书信息列表

3.3在线测试页面

3.4查看分数页面

3.5个人资料页面

四、管理员功能模块

4.1站点管理模块

4.2用户管理模块

4.3系统内容管理模块

4.4系统管理模块

4.5图书信息管理模块

五、教师功能模块

5.1在线测试管理模块

5.2课程管理管理模块

六、学生功能模块

6.1课程成绩管理模块

七、部分核心代码

7.1课程信息关键代码

@RestController@RequestMapping("auth")public class AuthController extends BaseController<Auth, AuthService> {/*** 服务对象*/@Autowiredpublic AuthController(AuthService service) {setService(service);}}

7.2在线测试关键代码

public class FindConfig {public static String PAGE = "page";public static String SIZE = "size";public static String LIKE = "like";public static String ORDER_BY = "orderby";public static String FIELD = "field";public static String GROUP_BY = "groupby";public static String MIN_ = "_min";public static String MAX_ = "_max";}

7.3用户管理关键代码

@RequestMapping("/get_obj")public Map<String, Object> obj(HttpServletRequest request) {Query select = service.select(service.readQuery(request), service.readConfig(request));List resultList = select.getResultList();if (resultList.size() > 0) {JSONObject jsonObject = new JSONObject();jsonObject.put("obj",resultList.get(0));return success(jsonObject);} else {return success(null);}}public Query select(Map<String,String> query,Map<String,String> config){StringBuffer sql = new StringBuffer("select ");sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");}if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");}if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);}log.info("[{}] - 查询操作,sql: {}",table,sql);return runEntitySql(sql.toString());}

7.4成绩管理关键代码

@RequestMapping(value = {"/count_group", "/count"})public Map<String, Object> count(HttpServletRequest request) {Query count = service.count(service.readQuery(request), service.readConfig(request));return success(count.getResultList());}

7.5试题信息关键代码

@RequestMapping(value = {"/sum_group", "/sum"})public Map<String, Object> sum(HttpServletRequest request) {Query count = service.sum(service.readQuery(request), service.readConfig(request));return success(count.getResultList());}

SpringBoot+Vue实现前后端分离的小而学在线考试系统相关推荐

  1. 视频教程-springboot+Vue整合前后端分离权限后台管理系统-Java

    springboot+Vue整合前后端分离权限后台管理系统 拥有八年的Java项目开发经验,擅长Java.vue.SpringBoot.springCloud.spring.springmvc.myb ...

  2. 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统

    运行视频 基于SSM+SpringBoot+Vue+ElementUI前后端分离的校园岗位招聘就业管理系统 项目运行截图 学生管理 添加学生 学生信息 教师管理 教师信息 实习基地 公告信息 公司管理 ...

  3. (附源码)基于SpringBoot小而学在线考试系统 毕业设计141507

    基于springboot小而学在线考试系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最 ...

  4. mysql基于SpringBoot小而学在线考试系统毕业设计源码141507

    基于springboot小而学在线考试系统   摘  要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是 ...

  5. shiro+php,一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器

    一.前言 最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成 止步传统CRUD,进阶代码优化: 该项目可根据数据库字段动态生成 c ...

  6. 基于springboot+vue的前后端分离商城系统

    springboot前后端分离商城 介绍 springboot前后端分离商城 本项目由本人根据教程实现的一个springboot项目,基本已实现项目,但是本人希望加入自己的小功能, 请期待下一次的更新 ...

  7. SpringBoot+Vue搭建前后端分离的轻博客

    之前用SpringBoot+Thymeleaf写了个人博客,这次又来炒冷饭,用新的技术来重构个人博客,并把它变成开放式的,目前水平有限,欢迎大家一起讨论提建议 2020-04-07:因为期间在找工作, ...

  8. springboot+vue的前后端分离与合并方案

    pringboot和vue结合的方案网络上的主要有以下两种: 1. [不推荐]在html中直接使用script标签引入vue和一些常用的组件,这种方式和以前传统的开发是一样的,只是可以很爽的使用vue ...

  9. SpringBoot + Vue 开发前后端分离的旅游管理系统

    旅游管理系统 项目简介 项目演示 数据库建表 环境搭建 引入依赖(pom.xml) 配置文件(application.properties) href="javascript:;" ...

最新文章

  1. Halcon初学者知识【19】带paint_的系列算子
  2. [视频]怎样提升asp.net mvc 软件的性能 - 微软免费视频Improving ASP.NET MVC Application Performance...
  3. 使用Spring进行不同开发所需要用到的包
  4. 分布式缓存Redis介绍
  5. 块存储、文件存储、对象存储意义及差异
  6. BBS中父模块缩进,子模块归属父模块的实现方式
  7. 使用python数据分析_如何使用Python提升您的数据分析技能
  8. 国家职业标准职业编码查询_为什么我学会编码而不是从事金融职业
  9. css3+js打造炫酷图片展示
  10. F-Stack KNI配置注意事项
  11. 在Ubuntu 18.04上搭建SonarQube服务
  12. [python] 字典 pop(key)函数:删除字典中key及其值,并返回该值
  13. 静水流深,闻喧享静 空山鸣响,见惯司空
  14. H5弹出是否打开微信APP的方式
  15. 古时候有个【百僧问题】,一百馒头一百僧,大僧三个更无争,小僧三人分一个,大小和尚各几丁? *...
  16. aria2+AriaNg 打造自己的离线下载/云播平台
  17. Jenkins搭建Maven项目集成开发环境(源码库 Gitlab)
  18. Maixpy K210图像识别(仅自学笔记)
  19. 酒店(宾馆)客房管理系统
  20. Py西游攻关之mysqlsqlalchemy

热门文章

  1. 导航栏实现页面的动态切换
  2. 操作系统:模拟售票功能
  3. 安全防御(二)--- 防火墙域间双向NAT、域内双向NAT、基于VRRP的双机热备
  4. Pbootcms自定义分页样式,适用于多种环境
  5. DIN卡轨式安装工业宽温8口百兆工业级以太网交换机
  6. IB学霸分享学习经验(家长如何助孩子一臂之力)
  7. 【问题解决】mybatis 类型不匹配两种解决办法 -Result type not match for select id=“selectUser“ srcType: com.kuang.pojo
  8. 中兴技面+综面+面试技巧
  9. jarvisoj_level1
  10. 雪都阿勒泰滑雪爱好者首选地