IT评测·应用市场-qidao123.com技术社区

标题: 基于SSM的线上考试体系的设计与实现(计算机毕业设计)+万字说明文档 [打印本页]

作者: 我爱普洱茶    时间: 2024-12-10 19:20
标题: 基于SSM的线上考试体系的设计与实现(计算机毕业设计)+万字说明文档
体系合集跳转
源码获取链接
一、体系环境

运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
IDE环境: Eclipse,Myeclipse,IDEA大概Spring Tool Suite都可以
tomcat环境: Tomcat 7.x,8.x,9.x版本均可
操作体系环境: Windows XP/7/8//8.1/10/11大概Linux大概MacOS,2G内存以上,保举4G,4G以上更好
用了技术框架: HTML+CSS+JavaScript+jsp+mysql+Spring+SpringMVC+mybatis+Spring boot
数据库: Mysql数据库,恣意版本均可,也可使用各种数据库工具,比方Navicat等。
二、摘要

2019年新冠疫情席卷全国,对国内线下产业造成了巨大的影响,对于学校这种人口密度巨大的地方来说,影响更大。各大学校纷纷将讲课与考试转移到线上进行,线上考试体系需求量得到了巨大的攀升,国内各个地方的小学到大学都需要一套线上考试管理体系来满足学校的要求,基于这种情形,开发出一款线上考试体系刻不容缓。
本文设计并开发了一款线上考试管理体系,采用Java语言进行开发,基于B/S架构,后端采用SSM(Spring+SpringMVC+Mybatis)框架进行搭建,数据库选取MySql数据库存储信息,体系分为多角色使用,分别是学生角色、西席角色和管理员角色,模块重要分别为线上考试、错题回首、西席管理、试卷管理、学生管理、考试安排等功能。通过对线上考试体系的实现,将考试转移到线上进行,淘汰学生之间的打仗,降低疫情流传的风险,进步学校的管理服从。
关键词: 线上考试;B/S架构;SSM框架;多角色;
三、目次

摘要 i
Abstract i
目次 iii
第一章 绪论 1
1.1 研究配景 1
1.2 研究意义 1
1.3 研究近况 2
1.3.1 国内研究近况 2
1.3.2 国外研究近况 2
1.4 论文结构 2
第二章 相干技术 3
2.1 开发工具 3
2.1.1 Navicat 3
2.1.2 IntelliJ IDEA 3
2.1.3 Tomcat7 3
2.2 开发技术 4
2.2.1 Spring框架 4
2.2.2 MyBatis框架 4
3 可行性分析与需求设计 5
3.1 可行性分析 5
2.1.1 经济可行性 5
2.1.2 技术可行性 5
2.1.3 操作可行性 5
3.2 用例分析 6
3.2.1 学生用户用例 6
3.2.2 管理员用户用例 6
3.2.3 西席用户用例 7
3.3 功能性需求分析 8
3.3.1 前端功能分析 8
3.3.2 后端功能分析 8
3.4 非功能性需求分析 9
4 体系总体设计 10
4.1 体系架构设计 10
4.2 功能模块设计 10
4.2.1 用户登录注册流程 11
4.2.2 在线考试流程 11
4.2.3 修改密码流程 12
4.3体系数据库设计 13
4.3.1 数据库概念设计 13
4.3.2 数据库表设计 13
5 体系功能实现 16
5.1 前台功能实现 16
5.1.1 注册功能实现 16
5.1.2 登录功能实现 17
5.1.3 在线考试 19
5.1.4 试卷回首 20
5.2后台功能模块 21
5.2.1后台首页 21
5.2.2 学生用户管理模块 21
5.2.3 试卷管理模块 25
5.2.4 试题管理模块 27
6运行体系和测试 29
6.1软件测试的根本概念 29
6.2测试计划 29
6.3测试用例 30
6.4测试结果 30
总 结 31
致 谢 32
参考文献 33
四、论文内容

第一章 绪论
1.1 研究配景
现如今,网络已经覆盖到人们生存的方方面面,电子商务得到了巨大的发展,“互联网+”头脑联合电子商务有了非常巨大的空间。网络购物就是在这样的大环境下快速兴起的,而且取得了巨大的成绩,据不完全统计国内网络覆盖率高达92%的程度,网民人数已经突破10亿大关,可以说国内已经进入到全民互联网时代了。互联网给人们生存带来了极大的便利,方便了人们的生存,淘汰了管理人员耗费的时间,进步了管理服从,很多业务在线上进行可以很大程度上省去掉非常多不须要的时间,足不出户就能完成,传统行业联合互联网技术进行创新已经成为时代发展趋势。
教育业一直以来都是国内非常重视的行业之一,几乎每个家庭都会在教育上面投入巨大的精力和金钱,学校教育更是人们关注的重点。但是受到新冠疫情的影响,学校按照要求必须要进行封闭式管理,很多地方不允许进行线下授业,导致大量的学生课程受到影响,但是学生们的学习不能耽误,所以网课渐渐兴起,大多数学校都通过腾讯集会来进行讲课,但是考试成为了一大难题,定期进行考试是每个学校进行检验知识掌握情况的常用方法,一定时间内进行一次考试黑白常有须要的回首知识的本领,基于这种形势,开发出一款线上考试体系就可以很好的解决这个问题。
1.2 研究意义
现如今,人们越来越注意高服从的生存,开发出一款线上考试管理体系可以极大程度上淘汰管理人员的管理服从,方便西席进行在线出题,同时可以方便学生在当下大环境下在家就能完成考试,削弱疫情带来的影响。同时联合互联网技术的线上管理体系可以方便管理人员进行数据管理,便于操作大量的数据信息,进步管理服从。但是在目前的市场观察中,当下的市场上面体系存在着以下问题。
(1)体系管理复杂,针对面太广,体系过于寻求美满性,缺乏针对性管理。
(2)体系采用的框架较为老套,广泛还处于SSH、Servlet等框架,进行二次开发和优化较为繁琐。
为了解决以上问题,本体系进行创新改良:
(1)基于学校区域。由于用户群体是在校学生,用户需求重叠度很高,学生在平台上的使用服从有保证。学校区域保证了用户的范围不会太广,平台只上线某区域内互助的学校。平台使用学校+学号的对用户账号进行绑定,实行一人一号,方便管理。
(2)体系采用SSM框架进行搭建,进步体系的开发服从、让代码逻辑更加清晰,更加容易应对变革不断的需求,更容易维护,综合淘汰开发本钱。
1.3 研究近况
1.3.1 国内研究近况
对于国内来说,近些年来,我国的经济发展敏捷,很多领域都已经开始向世界领先程度迈进。然而要与世界接轨,就需要一套美满的信息技术管理平台。目前国内市面上已经出现了很多优秀的管理体系,国内互联网市场发展十分敏捷。对于线上考试方面来说,据观察,在疫情前国内大多数公立学校是没有引入过这种体系的,大多数是教育机构使用,比方问卷星、优考等在线考试体系,这些体系又大公司进行研发,做了比较充足的需求分析和市场观察,框架稳定,功能齐全,可以作为本体系开发过程中非常良好的参考案例。
国内互联网技术的发展时间也相对较短,管理体系出现也晚于世界领先程度,同时对于管理体系来说,更是在05年才开始得到发展,开发本体系的Spring框架技术在07年才诞生出来,真正在2010年以后才被国内大量的使用起来,而且得到了敏捷的发展。截至目前市面上运用Spring框架开发的体系已经非常多了,但是针对学校使用的线上考试体系仍是处于空缺。
1.3.2 国外研究近况
对于国外来说,互联网技术发展久远,管理体系也有着较长的历史,国外早在1964年就出现了比较成熟的管理体系,而且MVC结构模式在20世纪80年代就被发明出来作为一种设计模式。这种设计模式极大程度上加速了管理体系的进展。美国更是Java技术和各大框架的发源地。拥有深层的技术底蕴,且市面上已经存在大量优秀的管理体系,比方CMS Hub、WordPress、Joomla等CMS管理体系,这些体系拥有稳定的技术框架和较为美满的功能结构,能够为大量用户提供服务,黑白常好的参考范例,但是对于线上考试体系方向来说,由于国内外教育方式的差别较大,国情也不雷同,体系的功能差别较为明显,国外优秀的体系也不能实用于国内,这是一个不小的遗憾。
1.4 论文结构
第一章绪论,重要介绍和分析相干配景和近况,并透过表象探究将来的发展趋势。
第二章相干技术,重要是对开发本体系用到的工具和技术框架进行介绍。
第三章需求分析,重要是对体系进行需求分析和可行性分析,这作为体系开发不可或缺的一部分,同时也对体系开发有着举足轻重的指导作用。
第四章体系概要设计,从体系架构设计进行分析,然后对体系的功能模块进行介绍。
第五章体系详细设计,重要介绍了体系的实体属性,以及数据库的概念结构设计和逻辑结构设计。
第六章体系实现,重要是对体系相干功能形貌,具体介绍相干功能的实现方法。
第二章 相干技术
本体系采用Spring框架联合Mybatis框架进行搭建,工具采用IntelliJ IDEA和Navicat工具,体系部署在Tomcat容器上进行展示。
2.1 开发工具
2.1.1 Navicat
Navicat 能在琳琅满目标数据库管理工具中独树一帜,是由于他的高效、便捷、易于上手、轻便、支持中文等特点[4]。本体系开发选取采用Navicat的缘故原由是由于它是一款轻量级的可视化软件,没有厚重的环境要求,可随时进行变动以及替换版本。其次,它支持多个不同数据库的毗连,除常用的MySql外,还支持Oracle、PostgreSQL以及SQL Server等不同范例的数据库,方便体系更换数据库范例时不需要再替换软件,同时对于国内开发人员来说,Navicat是为数不多支持中文的数据库可视化软件,方便国内开发人员上手开发,末了对于设计表格来说非常便利,提供手动设计表格与修改表字段范例的界面,方便修改数据库表格,基于以上缘故原由,本体系开发选用Navicat软件进行管理数据库。
2.1.2 IntelliJ IDEA
IntelliJ IDEA简称Idea,是Java编程语言开发的集成环境,本体系选取Idea软件进行开发带来了非常大的便利,首先,IntelliJ IDEA软件页面比较精致,开发体验良好,支持多语言多种颜色选择,十分人性化。其次,IntelliJ IDEA可以集成多个插件,好比Mybatis的Plus插件,支持自动生成增删改查配置文件,支持lombok插件,免除生成实体类Get、Set方法,为开发体系提供了极大的便利。末了,IntelliJ IDEA软件支持编码辅助和智能编辑等告急功能,可以在代码输入过程中,自动增补方法或类,极大程度上淘汰开发人员重复工作,非常实用于本体系的开发。基于以上缘故原由,本体系代码的开发采用IntelliJ IDEA软件进行。
2.1.3 Tomcat7
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型体系和并发访问用户不是很多的场合下被广泛使用,是开发和调试JSP 步调的首选。本体系开发就是部署在Tomcat服务器上,本体系选取Tomcat作为部署容器是由于它具有非常便捷的部署操作,而且架构属于轻量级,不需要占用大量的内存空间,这样确保了项目标快速部署和启动。而且Tomcat属于开源的项目,不需要额外支付费用。基于以上缘故原由,本体系部署容器选择Tomcat服务器上。
2.2 开发技术
2.2.1 Spring框架
后端选取Spring框架进行搭建,Spring就像是一个管家,它将体系管理的井井有条,你可以将每个功能模块定义成一个实例,重要的一块功能控制反转和依赖注入,线上考试体系中依赖注入部分就是利用到该特性,后台之间模块关联的调用就是靠依赖注入直接引用,不需要每次都进行新建对象,好比在用户管理中,只需要在服务层注入一个用户对象,每个方法都可以调用,不需要每个方法重新新建一遍,可以释放体系内存,而且Spring框架会对该Bean的生命周期进行管理,在不使用的时间还会自动Kill掉,释放内存。
别的,SpringAOP也是该框架的核心,SpringAOP为面向切面编程,将维度分别为切面和点,采用该模块可以对日志和事件进行很好的集成,非常方便进行日志管理,本体系日志管理就是基于SpringAOP的基础上实现的。Spring框架拥有这些良好的框架和特性,为本体系的开发提供了诸多的便利,这也是本体系后端开发采用Spring框架的缘故原由之一。
2.2.2 MyBatis框架
MyBatis 本是apache的一个开源项目iBatis,Mybatis框架重要是用于体系和数据库之间交互使用,Mybatis框架同Spring框架进行集成,重要原理是采用了ORM的头脑,将数据库字段和实体类字段进行逐一映射,体系操作实体类数据,然后通过映射来传入到数据库中进行修改,金海城美食菜品管理体系中在resource目次下配置好Mapper.xml映射,将实体类和体系的持久层代码联合起来,这样体系可以通过改变实体类的赋值来通报到数据库中,完成数据库的读写查操作。
Mybatis框架解决了Hibernate框架全局映射的问题,采用单独编写Sql语句进行控制,这样改变字段只需要对改动的Sql进行修改,不需要再进行全局修改。在本体系中利用Mybatis框架的特性将字段拆分开来,这样做的好处是,既可以方便字段的变动操作带来的代码改动,又可以进步数据库的查询速率。
3 可行性分析与需求设计
可行性分析是项目启动前必须要进行的步骤,假如一个项目不颠末可行性分析就着手开发,大概会造成非常严重的后果,甚至大概需要颠覆重做等风险。需求设计又是体系开发前须要的操作,通过需求设计才气确立体系的功能模块。
3.1 可行性分析
2.1.1 经济可行性
经济可行性是指体系开发本钱和预计收益之间的关系,假如开发本钱远大于预计收益时,就需要认真考虑该体系是否要进行立项开发,反之同样要客观对收益情况进行评估。对应到本体系的中就是,首先考虑本体系的开发本钱,体系开发环境较为简易,不需要占用大量硬件设备,同时采用SSM框架来进行搭建,极大程度上简化了搭建步骤,这样可以最大程度上淘汰开发本钱。从预估收益上来说,本体系可以极大程度上弥补市场当前的空缺,吸引商家入驻,下发广告来获取利润,在巨大的市场环境下可以获取很大的收益。综合考虑来看,体系的经济可行性分析结果是可行的。
2.1.2 技术可行性
技术可行性是指决议的技术和决议方案的技术不能突破组织所拥有的或有关人员所掌握的技术资源条件的边界[5]。体系开发人员具备Java基础,而且对SSM框架知识有着深入的研究,数据库方面也学习过MySql基础知识和集成Spring框架知识,对于技术可行性来说,本体系开发采用Java语言,Java语言已经有30年的发展历史,趋于稳定且拥有跨平台的特性,面向对象进行编程,非常实用于本体系的开发,后台框架采用Spring框架进行搭建,Spring框架可以极大的简化体系配置,可以简化部署问题。且对于初学者较为友好,上手难度较低。数据库采用MySql数据库,关系型数据库可以共同着Mybatis框架进行映射,解决了Hibernate框架的弊端。
综上所述,对于技术可行性来说是可行的。
2.1.3 操作可行性
从开发者的角度来说,本体系编写完成后只需将体系项目打包并部署在tomcat上运行即可。目前市面上大多数的项目都采取的这种方式,部署到tomcat上也较为简朴,只需在服务器上搭建好tomcat环境。而搭建服务器环境如今都是一键式搭建,并有配套的详细教程。仅需短短几分钟便可搭建完成。因此从开发者的角度来说,本体系完全具备操作可行性。
从使用者的角度来说,本体系采用的是B/S架构,用户只需打开网页即可使用,不必进行下载App等操作同时体系的页面整洁,有提示栏和导航栏,用户体验十分友好。因此,从用户角度考虑,本体系依然具备操作可行性。
综上,本体系完全具备操作可行性。
3.2 用例分析
本体系重要分为三个角色使用,分别是管理员角色和学生角色和西席角色,管理员角色是本体系的后台使用者,重要操作和信息管理有关,学生用户是本体系的前台使用者,重要功能是进行在线考试和错题回首,西席角色重要是对试卷和考试安排进行管理。
3.2.1 学生用户用例
学生角色用例图如下图所示。

图3-1 学生用户用例图
学生用户角色操作:
1、登录注册:注册账户获取登录账户,登录获取权限。
2、个人中心:登录后可以对个人信息进行查察。
3、在线考试:进行在线考试。
4、试卷回首:对考完的卷子进行错题回首。
5、成绩查询:可以对考完的分数进行查询。
3.2.2 管理员用户用例
管理员用户用例图如下图所示。

图3-2 管理员用例图
管理员用户操作:
1、学生管理:对学生信息进行管理。
2、西席管理:对西席信息进行增删改查操作。
3、数据统计:统计数据信息。
4、班级管理:对班级信息进行管理。
5、科目管理:对学科信息进行管理。
3.2.3 西席用户用例
西席用户用例图如下图所示。

图3-3 西席用户用例图
西席用户操作:
1、登录注册:注册账户获取登录账户,登录获取权限。
2、试卷管理:对试卷信息进行管理。
3、试题管理:对试题进行管理。
4、考试安排:给学生安排考试。
5、试卷历史查察:查询历史试卷信息。
3.3 功能性需求分析
在线考试体系功能重要从两个方面介绍,分别是前台和后台两个界面,前台是学生角色使用,重要功能跟在线考试有关。后台是管理使用,重要功能是对体系的信息进行管理和维护。
3.3.1 前端功能分析
前端功能结构如下图所示。

图3-4 前台功能结构图
3.3.2 后端功能分析
后端功能重要和体系信息管理有关,具体结构如下图所示。

图3-5 后台功能结构图
3.4 非功能性需求分析
非功能需求不仅与软件体系自己有关,还与体系的开发过程有关。非功能性需求重要是从体系的正确性、结实性、性能、安全性、兼容性等方面进行分析和考虑。
正确性:正确性要求体系不允许出现业务上的错误,而且在数据发生多次变动后扔保持数据不发生实质上的错误,确保体系的正确运行。在本体系中,体系集成事件管理,在数据因意外断开时可以发生回滚操作,同时Mybatis框架确保了数据多次变动后的前后次序,确保数据正确性。
结实性:健全性要求体系具有一定的应对错误的能力,结实性强的体系可以应对突发的错误情况,比方突然的断电、断网以及人为的进行错误数据攻击等情形扔保持步调不会突然的瓦解,拥有正确的处理和得当的回避机制。
安全性:安全性要求体系必须严酷控制访问权限,确保用户必须通过认证后才气获取对应的权限,阻拦计划绕开安全防线破坏体系的操作。本体系在前端登录中对密码进行了防护,确保数据的安全性,同时Session设置失效时间,避免时间过长导致密码泄露。
4 体系总体设计
4.1 体系架构设计
在线考试体系采用MVC的设计头脑,采用Spring+SpringMVC+Mybatis的框架进行搭建,采用B/S架构,将体系分为控制层、业务层和持久层结构,体系的架构图如下图所示。

图4-1 体系架构图
在线考试体系采用MVC的设计头脑进行开发,重要分为控制层、服务层和持久层,控制层向上毗连Client端,重要由JSP页面构成,通过From表单的情势进行通报信息,向下毗连业务层进行业务逻辑的处理,服务层起承上启下的作用,毗连控制层和持久层的数据处理与通报,持久层重要是毗连数据库,进行读写数据库和数据同步的作用。
4.2体系数据库设计
4.2.1 数据库概念设计
E-R图,即实体属性图,常被用作展现数据库概念设计是由于,一个好的ER图能充分展现实体与实体之间的接洽。本体系的总体ER图如下图4-2所示:

图4-2 体系总体E-R图
五、体系实现












五、代码片段

  1. if(comment == null){
  2.                         ret.put("type", "error");
  3.                         ret.put("msg", "请填写正确的评论信息");
  4.                         return ret;
  5.                 }
  6.                 if(StringUtils.isEmpty(comment.getContent())){
  7.                         ret.put("type", "error");
  8.                         ret.put("msg", "请填写评论内容");
  9.                         return ret;
  10.                 }
  11.                 if(commentService.edit(comment) <= 0){
  12.                         ret.put("type", "error");
  13.                         ret.put("msg", "编辑失败,请联系管理员!");
  14.                         return ret;
  15.                 }
  16. if(!StringUtils.isEmpty(username)){
  17.                         Account account = accountService.findByName(username);
  18.                         if(account != null){
  19.                                 queryMap.put("userId", account.getId());
  20.                         }
  21.                 }
  22. if(moneyMin != null){
  23.                         queryMap.put("moneyMin", moneyMin);
  24.                 }
  25.                 if(moneyMax != null){
  26.                         queryMap.put("moneyMax", moneyMax);
  27.                 }
  28.                 if(status != null){
  29.                         queryMap.put("status", status);
  30.                 }
  31.                 queryMap.put("offset", page.getOffset());
  32.                 queryMap.put("pageSize", page.getRows());
  33.                 ret.put("rows", orderService.findList(queryMap));
  34.                 ret.put("total", orderService.getTotal(queryMap));
  35. /**
  36.          * 查询订单列表
  37.          * @param sn
  38.          * @param page
  39. */
  40. @RequestMapping(value="/list",method=RequestMethod.GET)
  41.         public ModelAndView list(ModelAndView model){
  42.                 model.setViewName("order/list");
  43.                 model.addObject("accountList",
  44. JSONArray.fromObject(accountService.findList(new HashMap<String, Object>())));
  45.                 return model;
  46.         }
复制代码
六、源码获取方式

一键三连+关注+批评留下你的邮箱 获取源码,主动获取 看主页置顶
一键三连+关注+批评留下你的邮箱 获取源码,主动获取 看主页置顶
一键三连+关注+批评留下你的邮箱 获取源码,主动获取 看主页置顶


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4