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

news/2024/11/29 8:48:04/

文末获取源码

开发语言: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());}

 


http://www.ppmy.cn/news/3996.html

相关文章

MicroPython-On-ESP8266——8x8LED点阵模块(5)自制贪吃蛇游戏

MicroPython-On-ESP8266——8x8LED点阵模块&#xff08;5&#xff09;自制贪吃蛇游戏 1. 背景知识 连续折腾了一段时间的8x8点阵屏模块&#xff0c;从基本原理到驱动它显示滚动图案效果&#xff0c;常用的功能都使用到了。系列如下&#xff1a; MicroPython-On-ESP8266——8…

大数据课设

----------------------------------------------------------------------------------------------------------------------------- 由于本人主修嵌入式方向最多使用的就是C语言&#xff0c;由于物联网这个专业的特殊性&#xff0c;javaweb没少 写&#xff0c;所以java也用…

Spring Boot 3.x微服务升级经历

前言 Spring Boot 3.0.0 GA版已经发布&#xff0c;好多人也开始尝试升级&#xff0c;有人测试升级后&#xff0c;启动速度确实快了不少&#xff0c;如下为网络截图&#xff0c;于是我也按捺不住的想尝试下。 历程 首先就是要把Spring Boot、Spring Cloud 相关的依赖升一下 …

复方一枝蒿复合磷脂/IgG二性霉素B/阿糖胞苷修饰载甲氨喋呤/酶促合成半乳糖配体脂质体制备

小编今天为大家分享的科研知识是复方一枝蒿复合磷脂/IgG二性霉素B/阿糖胞苷修饰载甲氨喋呤/酶促合成半乳糖配体脂质体&#xff0c;一起来看&#xff01; 点击输入图片描述&#xff08;最多30字&#xff09; 复方一枝蒿复合磷脂脂质体&#xff1a; 采用硫酸铵梯度法制备复方一枝…

b站黑马的Vue快速入门案例代码——【axios+Vue】天知道(天气信息查询功能)

目录 目标效果&#xff1a; 更换的新接口接口文档&#xff1a; 天知道新的Get请求接口:http://ajax-api.itheima.net/api/weather html文件中注意因为接口更换&#xff0c;要修改原代码为如下红字部分&#xff1a; 重点原理&#xff1a; &#xff08;1&#xff09;v-on可以…

邂逅Vue3和Vue3开发体验

文章目录01-邂逅Vue3和Vue3开发体验Vue3带来的变化如何使用Vue方式一&#xff1a;CDN引入方式二——下载和引入计数器案例原生实现Vue实现MVVMtemplate写法一写法二datamethod其他属性01-邂逅Vue3和Vue3开发体验 Vue3带来的变化 如何使用Vue 方式一&#xff1a;CDN引入 <d…

七分钟教会你如何编写一个合格的测试用例

1、测试用例编写依据 测试用例编写应严格根据PRD&#xff08;产品说明书&#xff09; 没有PRD应根据与客户的沟通和确认结果编写 开发的技术文档和流程图 2、测试用例的组成元素 【用例编号】测试用例的编号。 【用例等级】测试用例的重要级别&#xff0c;一般核心功能的…

HTML人物介绍、个人设计web前端大作业、贝聿铭人物介绍(带报告3000字)

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…