基于springboot+redis+mysql实现的在线考试系统管理系统

到山东找蓝翔

发布日期: 2021-09-13 09:23:29 浏览量: 152
评分:
star_border star_border star_border star_border star_border star_border star_border star_border star_border star_border
*转载请注明来自write-bug.com

1.项目简介

1.1 背景分析

目前,许多高校绝大多数课程还采用考教统一的模式来完成教学过程,这种传统的考试模式在教学到实施考试的过程带有很大的主观随意性和不规范性。另外随着各高校近年来学生规模的扩大,教学任务日益繁重,教师的工作量相应的不断增加。迫切需要计算机辅助教学系统来打破这种传统的教学模式,减轻教师的工作负担,提高教学质量。因此,本文研究设计了一个试题库管理系统,来解决和缓解高校课程教学中现存的问题,提高教学质量和考试效果,减轻教师工作压力。试题库管理系统可辅助教师对所教科目的各种试题的题型、难度等相关资料进行保存、查询等信息管理;并在需要对学生进行测验、评估的时候,从题库中抽取出相应要求的题目,组成一套试卷。

本文首先简要介绍了开发试题库管理系统的可行性分析,系统的需求分析和总体设计,然后主要针对系统的设计、组成、用户界面设计、程序设计进行了详细分析,并对系统部分关键性代码进行了讲解,同时对一般系统软件设计的基本思想及工作流程给出了方法技巧。首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

1.2 功能模块

1.2.1 在线考试模块

  • 考试倒计时、考试安排表

  • 答题卡、作答区

  • 批改完试卷后查看成绩情况以及参考答案

1.2.2 题库系统模块

  • 课程分类

  • 题目列表、题目难度

  • 题目描述、参考答案等

1.2.3 讨论区模块

  • 发布帖子、回帖、评论

  • 浏览帖子

  • 帖子编辑、删除

1.2.4 个人中心模块

  • 更新个人信息、上传头像等

  • 考试记录

  • 发帖记录

1.2.5 后台管理模块

  • 用户信息及权限管理

  • 考试管理

  • 教学大纲管理

  • 题目管理

  • 课程管理

  • 班级管理

  • 问卷调查管理

  • 成绩管理

  • 帖子管理

  • 评论管理

1.2.6 功能模块图

1.3 用户需求

要设计一个性能良好的管理系统,明确用户的应用环境对系统的要求是首要的和基本的。本系统从以下四个方面对用户需求进行了分析:

  • 用户的需求信息:出题老师可以看到题目所属的类型和题目所考察的内容以及试题的分值和难度等级。当然这个权限也给管理员和系主任

  • 用户的处理要求: 教师可以对试题库进行插入和删除操作,出题老师可以凭借自己自定义的选题要求在试题库中选择自己需求的试题

  • 对系统的适应性、通用性要求: 要求系统不仅能提供一门课程的试题库管理,还要综合多么学科进行管理,建立一个高效的试题库管理系统

  • 对系统的安全性要求:要求进入系统必须口令校验

1.4 技术选型

  • 后台技术选型

    • SpringBoot(Spring、SpringMVC)
    • MyBatis
    • Thymeleaf
  • 前端技术选型

    • Bootstrap
    • jQuery

1.5 开发环境

  • 操作系统:Windows 10

  • 编程语言: Java 8

  • 开发工具: IDEA、Navicat、Git

  • 项目构建: Maven 3.3.9

  • 服务器:Tomcat 9.0

  • 数据库: MySQL、Redis

1.6 部署

  • 用sql目录下的脚本文件初始化数据库并修改配置文件中密码

  • **解压群文件的图片文件到本地文件夹,并修改Const中的文件路径

  • **本地要安装redis,并启动redis服务,不用设置账号密码

2.数据库设计

2.1 表结构

用户表

班级表

帖子表

考试表

成绩表

博客文章表

题目表

调查问卷表

评论表

学科表

课程管理表

2.2 E-R图

3.项目开发

  1. //获取所有题目
  2. @RequestMapping(value = "/api/questionList/{contestId}", method = RequestMethod.GET)
  3. @ResponseBody
  4. public AjaxResult getOtherQuestionList(HttpServletRequest request, @PathVariable int contestId) {
  5. AjaxResult ajaxResult = new AjaxResult();
  6. Account currentAccount = (Account) request.getSession().getAttribute(Const.CURRENT_ACCOUNT);
  7. //TODO::处理
  8. //currentAccount = accountService.getAccountByUsername("admin");
  9. if (currentAccount == null || currentAccount.getLevel() < 1) {
  10. ajaxResult.setMessage("用户尚未登录");
  11. } else {
  12. List<Question> questions = questionService.getOtherQuestionsByContestId(contestId);
  13. ajaxResult.setData(questions);
  14. }
  15. return ajaxResult;
  16. }
  17. //添加考试题目
  18. @RequestMapping(value = "/api/addContestQuestion", method = RequestMethod.POST)
  19. @ResponseBody
  20. public AjaxResult addContestQuestion(@RequestBody Question question) {
  21. boolean res = questionService.addContestQuestion(question);
  22. return new AjaxResult().setData(res);
  23. }
  24. //添加题目
  25. @RequestMapping(value = "/api/addQuestion", method = RequestMethod.POST)
  26. @ResponseBody
  27. public AjaxResult addQuestion(@RequestBody Question question) {
  28. int questionId = questionService.addQuestion(question);
  29. return new AjaxResult().setData(questionId);
  30. }
  31. //更新题目信息
  32. @RequestMapping(value = "/api/updateQuestion", method = RequestMethod.POST)
  33. @ResponseBody
  34. public AjaxResult updateQuestion(@RequestBody Question question) {
  35. boolean result = questionService.updateQuestion(question);
  36. return new AjaxResult().setData(result);
  37. }
  38. //删除题目信息
  39. @DeleteMapping("/api/deleteQuestion/{id}")
  40. public AjaxResult deleteContest(@PathVariable int id) {
  41. boolean result = questionService.deleteQuestion(id);
  42. return new AjaxResult().setData(result);
  43. }
  44. //删除题目信息
  45. @ResponseBody
  46. @RequestMapping(value = "/api/deleteContestQuestion", method = RequestMethod.POST)
  47. public AjaxResult deleteContestQuestion(@RequestBody Question question) {
  48. boolean result = questionService.deleteContestQuestion(question);
  49. return new AjaxResult().setData(result);
  50. }

4.项目展示

4.1 学生用户

首页

在线考试

考试界面

交卷页面

讨论区

4.2 助教

题库中心

个人中心

部分权限

帖子管理

评论管理

4.3 教师用户

考试管理

题目管理

所负责课程管理

所负责考试管理

4.4 超级管理员

所有考试管理

所有课程管理

成绩管理

用户管理

5.总结

经过一周的设计和开发,试题库管理系统基本开发完毕。其功能基本符合学校管理者需求,能够完成各个专业各门学科的试题录入,根据要求自动成卷等多方面的功能。

上传的附件 cloud_download 设计文档.docx ( 5.71mb, 1次下载 ) cloud_download qbms-master.zip ( 8.61mb, 1次下载 )
error_outline 下载需要11点积分

发送私信

会冒泡的可乐

111
文章数
12
评论数
最近文章
eject