基于Java的智慧校园考试系统设计与实现_第1页
基于Java的智慧校园考试系统设计与实现_第2页
基于Java的智慧校园考试系统设计与实现_第3页
基于Java的智慧校园考试系统设计与实现_第4页
基于Java的智慧校园考试系统设计与实现_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章绪论1.1研究目的和意义随着科技的飞速发展,传统的纸质考试和上机考试已经无法满足当今教育的需求,而网络化考试则拥有更快的处理速度和更高的准确性,为教育提供了更多的可能性。当下学生和大多数年轻人都被互联网所吸引,为了迎合现在更受学生欢迎的学习和生活方式。推出这样新颖的在线考试平台可以极大的调动学生的学习热情,也会让家长同志们更加放心。考试也会随着计算机自动阅卷这种方式,减少人的主观性的干预而变得更加公平公正,为我们广大的教育工作者提供了便利,更是建设智慧校园的有力保障。在一定程度上推动我国教育事业的发展,为我国培养出更加优秀的人才。而且通过线上考试的方式可以节省纸质成本,符合习总书记所提出的新发展理念当中绿色发展的概念,顺应了社会和科技发展趋势。1.2国内外研究现状在当下国内的教学工作中,大多数是以纸面考试为主。其流程较多且较为复杂,主要是以人工的方式实现。由于其中过多的受到人的主观能动性干扰,无法保证考试的客观性和公正性,致使在我们平时的教学工作中效率不能提高。2020年张旭东,杨鹏斐在《数据库原理在线考试系统核心功能研究与设计》中研究并设计了以数据库原理,SQL语句、关系代数、函数依赖、实体关系图四种题型的在线考试功能,其在线上结课测验和大规模的学期结束考试的应用中起到了重大的作用REF_Ref136975539\r\h[1]。2021年魏晓艳在《基于JavaWeb的在线考试系统的设计与实现》中通过Hibernate核心配置文件,业务逻辑与数据访问被分离开来,简化了SQL语句,改变了其雍容复杂的特性,设计出了一个更加快速、高效的在线考试系统REF_Ref#6rm\r\h[11]。2020年崔健等人在《基于SpringBoot的在线考试系统的设计与开发》中提出了一种基于SpringBoot和JPA的在线考试系统的设计和实现方法,系统采用SpringBoot作为后端框架,使用了SpringDataJPA技术简化应用程序的数据访问层的开发,采用MySQL数据库作为数据存储设计出了一个在线考试系统REF_Ref#6sc\r\h[14]。由于现在计算机网络的蓬勃发展,在某一些发达国家尤为明显,一些成本较低、性能不断提高的互联网在线考试系统从之前的概念不断地成为了现实。目前线上考试已经成为许多学校常用的教学方式之一,教师和学生在这个平台上把选课、考试以及在线的知识点学习的流程更加简化和方便使用。可以让使用者随时随地的工作学习,极大的提高了老师的工作效率和学生的学习热情。2021年,Pooja;YuldashevNodirbek等人在《Theroleandutilizingofwebbasedonlineexaminationsysteminalleducationalareas》研究并开发了一个提供公平的安全和准确性的检查基于Web的考试系统,该系统对考生普遍公平的电子评估提供全校范围的服务,以及改进即时反馈,来解决困扰传统(纸本)考试系统的问题。该方法允许考试成绩在记录时间内发布,无误差。并且它具有一些纸质系统所不具备的创新特性,如实时数据采集、管理和分析,以及分布式和交互式的评估以鼓励远程教育REF_Ref136980508\r\h[23]。2022年SadayapillaiBanupriya等人在《ABlockchain-BasedFrameworkforTransparent,Secure,andVerifiableOnlineExaminationSystem》中提出了一种基于区块链的在线考试系统框架,使用密码学技术收集、注册和维护越来越多的记录列表。该模型结合了时间锁定和多重签名技术,并确保加密的问题锁定到考试开始,候选人的答案不会改变,记分卡也不会被操纵REF_Ref136981050\r\h[28]。REF_Ref136981050\r\h2022年AshokVerghese等人在《ENVIRONMENTALIMPACTOFPAPERCONSUMPTIONINTHEEDUCATIONALSECTORANDDIGITALLEARNING–EXAMINATIONSYSTEMPOSTCOVID-19》中强调了数字化学习和考试系统比传统的纸REF_Ref136980607\r\h质化的线下系统有很多优势,由于在数字化的在线教育和考试中,纸张的消耗量非常少,因此这种方法对于节省树木和减少环境风险是理想的。此外,数字化学习和考试系统在当前的新冠肺炎疫情中可能更加方便和安全,并描述了传统教育和考试系统的环境影响REF_Ref136980607\r\h[24]。1.3论文组织架构本文的结构安排如下:第一章:绪论。主要介绍本研究的目的和实现价值、国内外相关问题的研究现状和本文的结构。第二章:相关理论和技术。本系统所采用的程序开发环境和一些必要的技术工具。第三章:系统分析。对智慧校园考试系统进行了可行性分析和需求分析。第四章:系统设计。阐述了功能模块设计和数据库设计方案的设计。第五章:系统实现。根据之前所做的分析和设计把各个功能模块从理念变成现实。第六章:系统测试。作为产品上线的关键环节把该系统的各种性能和功能进行测试,如:各个主要工作模块。第七章:总结与展望。对本考试系统的开发过程进行总结,并对未来系统的发展进行展望。

第2章相关理论和技术2.1Java简介Java是一种广泛使用的编程语言,因其具有跨平台性、动态性和可移植性等优势而受到了广泛的应用。这些优势使得Java成为了互联网从业人员和编程爱好者们的首选语言之一,并不断推动着Java技术的发展壮大。从Java的应用发展方向角度划分,Java平台可以分为三个发展体系,即J2SE(java2PlatformStandardEdition)标准版、J2EE(java2PlatformEnterpriseEdition)企业版、J2ME(java2PlatformStandardEdition)微型版。众所周知,Java作为当下最为大众欢迎的编程语言,其发展的历史也是一波三折。该语言最早是由詹姆斯·高斯林等人开发。由于最开始时,该创作团队的开发目的并不是将其作为网络编程语言,而是将目标设置在家用电器等小型系统的编程语言。也就是Oak,正是Java语言的雏形。正所谓有心插花花不开,无心栽柳柳成荫。由于这些智能化家电的市场需求没有预期的高,当时Java语言面临着夭折的危险。随即转机就来了,二十世纪九十年代初互联网迅猛发展,太阳微系统公司发现并改造了Oak,由此Java语言便展示在世人面前。现有的许多编程语言当中,Java语言和C++语言作为现有比较流行的面向对象的编程语言,二者有很多相似之处。Java语言继承了C++语言面向对象的核心思想,但在之前的学习中发现C++语言难度较高,由于C++语言中有许多理解困难的技术概念,如指针、多重继承等。尤其是指针,它可以直接控制计算机的内存。虽然其对设计的性能可以在一定程度上提高,但是对于开发者来说在相同的时间和成本之下Java语言有更大的优势。讲到这里,就不得不提到垃圾自动回收机制。这也正是C++被广大程序员群体诟病的原因之一。Java语言的设计者针对该问题进行了处理,减少了用户在开发上的难度。在使用Java语言时,我们可以直接调用Java的基础运行环境中基础的类和库函数。对于一些使用率高的,开发复杂的基础函数可以直接使用,不需要二次开发。这个特点在Java企业级应用程序开发当中尤为明显,当中提供了丰富的类库可以直接调用。除此之外,Java语言还有很广泛的应用,尤其是在使用该语言进行开发的软件在后期维护的过程中也更加方便。由此可见,Java语言是设计该系统的最优选择。2.2MySQL特点 MySQL是一种流行的开源关系型数据库管理系统,它使用SQL语言来管理和操作数据库。MySQL具有许多优点,例如易于安装和使用,支持多个操作系统,可以处理大量数据,具有良好的性能和可靠性。MySQL还提供了许多高级功能,例如事务处理、存储过程和触发器等。此外,MySQL社区也非常活跃,提供了大量的文档、示例和支持资源,以帮助用户更好地使用MySQL。因此,MySQL被广泛应用于各种类型的应用程序,包括Web应用程序、企业应用程序、移动应用程序等。2.3B/S模式B/S架构(Browser/ServerArchitecture)是一种基于浏览器和服务器的分层架构。它的核心思想是将应用程序的逻辑层和数据层都放在服务器上,而将用户界面放在浏览器上,通过浏览器向服务器发送请求来实现交互和数据传输。这种架构不仅可以大大减轻客户端的负担,同时也能够提高数据的安全性和可靠性。B/S架构具有很多优点,例如可以轻松实现跨平台和跨浏览器的兼容性,用户只需要打开浏览器就能访问应用程序,无需安装任何软件,同时也可以通过浏览器更新应用程序,节省了用户的时间和精力。而且,由于应用程序的逻辑层和数据层都集中在服务器上,可以实现数据的统一管理和安全性保障,减少了数据丢失和泄露的风险。但是B/S架构也存在一些缺点,例如依赖于网络连接,当网络不稳定时可能会影响用户的体验;同时由于数据传输需要依靠网络,可能会影响应用程序的响应速度,特别是对于一些大型应用程序来说。第3章系统分析3.1可行性分析3.1.1技术可行性本次智慧校园考试系统的开发使用的是Java语言。Java语言经过多年来的发展不断推陈出新技术上已经十分的成熟。Idea作为现如今做的最好的一款多语言集成开发环境,经受住了时间和开发人员群体的考验,是一款可靠的开发环境。MySQL做为时下流行的关系型数据库。在技术成熟的角度上,已经没有多少值得的担心的地方了。在硬件上,本产品使用的事Windows7以上的操作系统。通过对本次开发将使用到的技术和平台的分析,其中大多都有已经发展多年,并结合自身系统开发的特点分析,在技术上是可行的。3.1.2经济可行性在开发任何项目之前,对其经济可行性进行评估非常重要。这有助于确保项目开发过程中的费用符合预算,并且在项目完成后能够产生足够的经济价值。对于智慧校园考试系统这样的项目,其经济可行性非常重要。在设计和开发过程中,需要考虑到开发成本、维护成本和市场前景等因素。确保开发成本符合预算,并且在系统完成后能够产生足够的经济价值,这是实现项目成功的关键。通过在系统开发之前考虑到经济可行性,并且在整个开发过程中严格控制成本,可以最大限度地提高项目的成功概率。3.1.3操作可行性系统主要针对的用户群体为教师和学生,故为保证用户在使用本系统的过程中不会遇到操作上的问题,所以在用户图形界面的设计上要简洁明了。把所有的功能都清晰的展现出来。该系统在今后的主要用途是考试和测验,为保证其严谨性,数据输入的设计应该灵活完整,避免歧义。此外,为了该系统的安全性,我们要对不同身份的用户进行严格的使用权限管理。经过以上种种考虑,本次开发在操作上是可行的。3.1.4社会可行性Java系统的法律可行性一般而言是存在的。Java语言本身并没有涉及到违法的内容,因此开发基于Java语言的系统是合法的。然而,在具体实现Java系统时需要考虑一些法律问题,例如用户隐私保护、版权保护等。为了避免侵犯用户隐私和版权,开发者需要在系统设计和实现时遵守相关的法律法规和标准。此外,Java系统开发者还需要确保其系统的安全性,保障用户信息不被非法获取或利用。因此,在Java系统的开发过程中,开发者需要充分了解和遵守相关的法律法规,以确保系统的合法性和安全性。3.2需求分析对于软件系统的功能需求分析,可以进一步了解需要和不需要实现的功能,这有助于在软件开发过程中实现功能需求。明确地了解用户需求是软件开发工作获得成功的前提条件,只有经过这关键一步,我们的开发人员才可以对产品有一个更为客观的认识。在日后的开发工作中才会找对路子,更加的得心应手。把一个真正符合用户期望的系统提供给使用者。无论做什么样的工作,首先就是要明确我们的方向,如果在错误的方向上越走越远,那么任何的努力和辛劳都是没有价值的。3.2.1功能需求分析在基于Java的智慧校园考试系统当中,老师通过管理员身份登录系统,可以在系统中进行学生管理,试卷管理,试题管理,考试管理。学生需要注册完善自己的身份信息进入老师所在班级,在系统中进行考试。考试中学生的错题会自动归入学生的错题本系统中。3.2.2非功能需求分析基于Java的智慧校园考试系统采用了用户身份鉴别与权限控制机制,并设置了响应时间要求,以及完备的错误处理机制。这些措施都是为了保障系统运行的数据安全性、高效稳定性和长期可靠性。用户身份鉴别与权限控制机制能够对访问系统的用户进行身份确认和权限分配,确保只有经过认证的用户才能够访问系统并执行相应的操作。这种机制可以有效地避免非法用户恶意破坏系统数据的风险。响应时间要求则可以提高系统的工作效率,满足用户在不同时间段内的需求。通过设置响应时间要求,系统可以保证在高峰时间段内和非高峰时间段内都能够快速地响应用户请求,提升用户体验和满意度。完备的错误处理机制能够及时提示和解决系统异常情况,防止系统在出现故障时停止服务,从而确保系统的长期可靠运行。这些措施共同构成了一套完整的安全机制,使得基于Java的智慧校园考试系统在数据安全性、高效稳定性和长期可靠性等方面表现出色。在系统设计中,用户身份鉴别与权限控制机制是其中一个非常重要的模块。该模块对访问系统的用户进行身份鉴别和验证,以确定用户的身份并根据其身份分配相应的权限。这样做可以有效地避免用户非法操作系统数据,并保障系统的安全性。此外,在系统设计过程中,为确保系统的高效稳定运行,也设置了响应时间要求。高峰时间段内系统响应时间低于5秒,非高峰时间段内系统响应时间低于3秒。这保证了用户能够快速地完成操作,提高了用户体验,提升了系统的工作效率。最后,在系统设计中还建立了完备的错误处理机制,确保在系统出现异常状况时,能够及时得到解决。这不仅有助于保障系统的长期可靠运行,更减少了用户的误操作所造成的数据丢失和安全问题。综上所述,基于Java的智慧校园考试系统通过采用用户身份鉴别与权限控制机制、严格的响应时间要求和完备的错误处理机制,确保了系统的数据安全性、高效稳定的运行,并能够在长期使用中保持其可靠性和稳定性。3.3业务流程图业务流程图如下图所示:图3.1业务流程图第4章系统设计4.1功能模块设计根据对系统的功能进行分析智慧校园考试系统的具体功能模块包括下面的几个主要的功能模块:学生管理,考试管理,试题管理,试卷管理。老师在试卷管理中设置题目答案与考试时长后,通过试卷管理与考试管理发布考试试卷;学生答题之后,系统自动判卷,学生在考试中出错的题目会自动整理到考试管理的错题本中,方便学生整理习题,也能帮助老师及时发现学生对哪些知识掌握的不牢靠。系统的功能模块如图4.1所示:图4.1系统功能模块图4.2数据库概念设计1.管理员实体图图4.2管理员实体图2.学生实体图图4.3学生实体图3.考试记录实体图图4.4考试记录实体图4.试题实体图图4.5试题实体图5.试卷实体图图4.6试卷实体图6.智慧校园考试系统E-R图图4.7智慧校园考试系统E-R图4.3数据库设计数据库设计是信息系统开发和建设的核心技术之一,它涉及到对数据库存储数据对象、数据结构以及相关的操作和管理规则等方面的决策。在进行数据库设计时,应该考虑到以下几点:1.数据库的可扩展性:当数据量增长时,数据库仍然应该能够正常运行,并且支持快速扩展。2.数据库的安全性:需要确保只有经过授权的用户可以访问数据库,并且采取相应的安全措施来保护数据安全。3.数据库的性能:需要针对具体情况进行优化和调整,确保数据库具有高效稳定的性能。4.数据库的易用性和易维护性:数据库需要采用易于理解、易于操作的设计方式,同时需要考虑到数据库运维人员的实际工作需求。综上所述,数据库设计是一个复杂的过程,需要在不断地试错和改进中逐步求精,才能够为应用系统提供强大而可靠的数据支持。智慧校园考试系统具体表设计如下:(1)配置表config“config”用来配置文件。config的结构如表4.1所示:表4.1config表字段名称类型长度字段说明主键默认值idbigint主键主键namevarchar100配置参数名称valuevarchar100配置参数值(2)学生表xuesheng“学生表xuesheng”是用来记录学生的个人信息。xuesheng的结构如表4.2所示:表4.2xuesheng表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPxuehaovarchar20学号mimavarchar20密码xueshengxingmingvarchar20学生姓名xingbievarchar2性别banjivarchar100班级touxianglongtext4294967295头像(3)用户表users“用户表users”是用来记录管理员的账号信息。users的结构如表4.3所示:表4.3users表字段名称类型长度字段说明主键默认值Idbigint主键主键usernamevarchar10用户名passwordvarchar20密码rolevarchar20角色管理员addtimetimestamp新增时间CURRENT_TIMESTAMP(4)token表表4.4token表字段名称类型长度字段说明主键默认值idbigint主键主键useridbigint用户idusernamevarchar10用户名tablenamevarchar10表名rolevarchar10角色tokenvarchar20密码addtimetimestamp新增时间CURRENT_TIMESTAMPexpiratedtimetimestamp过期时间CURRENT_TIMESTAMP(5)考试记录表examrecord“考试记录表examrecord”是用来记录考试的信息。examrecord的结构如表4.5所示:表4.5examrecord表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPuseridbigint用户idusernamevarchar20用户名paperidbigint试卷id(外键)papernamevarchar20试卷名称questionidbigint试题id(外键)questionnamevarchar20试题名称optionslongtext4294967295选项,json字符串(6)试题表examquestion“试题表examquestion”是用来记录试题的信息。examquestion的结构如表4.6所示:表4.6examquestion字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPpaperidbigint所属试卷id(外键)papernamevarchar20试卷名称questionnamevarchar20试题名称续表4.6examquestion字段名称类型长度字段说明主键默认值optionslongtext429496729选项,json字符串scorebigint分值0answervarchar20正确答案analysislongtext429496729答案解析typebigint试题类型,0:单选题1:多选题2:判断题3:填空题(暂不考虑多项填空)0sequencebigint试题排序,值越大排越前面100(7)试卷表exampaper“试卷exampaper”是用来记录试卷的信息。exampaper的结构如表4.7所示:表4.7exampaper字段名称类型长度字段说明主键默认值idbigint主键主键Addtimetimestamp创建时间CURRENT_TIMESTAMPnamevarchar20试卷名称timeint考试时长(分钟)statusint试卷状态0第5章系统实现5.1登录注册学生初次使用系统,若没有账号,要在首页点击注册账号,选择学生身份。输入的所需信息有:学号、密码、确认密码、学生姓名、性别、班级和头像信息,用户注册界面如图5.1所示;使用者在使用该平台之前,先要在首页出登录,其次输入学号和密码并选择学生身份的选项,最后单击“登录”按钮。如果没有输入所需要的信息或者漏填一些关键信息,界面会有明确的提示。用户登录界面如图5.2所示;当以管理员身份使用后台管理系统时,需要输入正确的必要信息,选择管理员身份并继续点击登录按钮。会从登录页面跳转到智慧校园考试系统的主页。如图5.3所示:图5.1用户注册界面图5.2学生登录界面图5.3管理员登录界面使用者在注册时填完所需的必要信息,比如:学号、密码、姓名等关键信息后,继续点击“注册”按钮,如果信息的格式或内容满足系统的要求,则在界面上会有“注册成功”的字样提示。若其不满足要求,则会“注册失败”的字样来提示用户。用户注册成功界面如图5.4所示。图5.4用户注册成功界面使用本平台的人员要在登录界面上输入必要信息如:用户名、密码,在输入正确的信息后选择自己的身份,然后,点击“登录”按钮。系统会从登录界面跳转到考试系统的首页。管理员与学生完成登录界面如图5.5所示。图5.5用户登录成功界面实现该功能的关键代码如下。 @IgnoreAuth @PostMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username)); if(user==null||!user.getPassword().equals(password)){ returnR.error(“账号或密码不正确”); } Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole()); returnR.ok().put("token",token); } 5.2学生管理该系统的使用人员在成功登录并进入考试系统的首页后,需要使用鼠标选择“学生管理”功能,系统会从首页转到学生管理的页面。在这个功能界面中主要有两个功能“添加学生”和“删除学生”。在输入学生的个人信息后可以添加本班的学生,若有学生转学可以点击删除键来删除该学生在班级的信息,方便管理人员管理。界面如图5.6所示:图5.6学生信息管理界面教师作为管理员在登录系统后,点击“新增”按钮,并输入学生的个人信息后,完成操作后会弹出“操作成功”提示。添加学生成功后的界面如图5.7所示。图5.7添加学生成功界面实现该功能的关键代码如下。@RequestMapping("/update")publicRupdate(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){//ValidatorUtils.validateEntity(yonghu);yonghuService.updateById(yonghu);//全部更新returnR.ok();}5.3试卷管理以管理员身份登录系统后,点击试卷管理进入相关页面,可以浏览试卷详细信息、修改试卷内容、删除试卷以及查找试卷等操作。试卷管理界面如图5.8所示:图5.8试卷管理界面当使用者进入试卷管理界面并点击“新增”按钮时,便可进行考试或测验的试卷的增添,同时还可设定每一个考试的时间范围和试卷的状态。点击提交按钮,弹出操作成功。试卷添加成功界面如图5.9所示:图5.9试卷添加成功界面用户进入试题管理界面后,点击“修改”按钮后,可以通过选择试卷来实现组建试卷,让教师更加有针对性的去测验学生。组卷操作界面如图5.10所示:图5.10试题组卷操作界面实现该功能的关键代码如下。@RequestMapping("/query")publicRquery(ExampaperEntityexampaper){EntityWrapper<ExampaperEntity>ew=newEntityWrapper<ExampaperEntity>(); ew.allEq(MPUtil.allEQMapPre(exampaper,"exampaper")); ExampaperViewexampaperView=exampaperService.selectView(ew); returnR.ok("查询试卷表成功").put("data",exampaperView);}5.4试题管理当使用者以管理员身份登录系统后,进入“试题管理”的页面。在本界面中,点击“新增”按钮,设置试题类型、试题题目、试题选项、试题分数、试题排列顺序及答案分析等试题相关信息。若需要删除已经失效或不再使用的试题,可以点击“删除”按钮进行操作。完成所有试题的设置后,点击“提交”按钮即可,操作成功后会弹出相应提示。试题管理界面如图5.11所示,删除试题界面如图5.12所示,设置试题完成提交界面如图5.13所示:图5.11试题管理界面图5.12试题管理界面图5.13试题提交界面实现该功能的关键代码如下。@RequestMapping("/remind/{columnName}/{type}") publicRremindCount(@PathVariable("columnName")StringcolumnName,HttpServletRequestrequest, @PathVariable("type")Stringtype,@RequestParamMap<String,Object>map){ map.put("column",columnName); map.put("type",type); if(type.equals("2")){ SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); Calendarc=Calendar.getInstance(); DateremindStartDate=null; DateremindEndDate=null; if(map.get("remindstart")!=null){ IntegerremindStart=Integer.parseInt(map.get("remindstart").toString()); c.setTime(newDate()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate=c.getTime(); map.put("remindstart",sdf.format(remindStartDate)); } if(map.get("remindend")!=null){ IntegerremindEnd=Integer.parseInt(map.get("remindend").toString()); c.setTime(newDate()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate=c.getTime(); map.put("remindend",sdf.format(remindEndDate)); } } Wrapper<ExamrecordEntity>wrapper=newEntityWrapper<ExamrecordEntity>(); if(map.get("remindstart")!=null){ wrapper.ge(columnName,map.get("remindstart")); } if(map.get("remindend")!=null){ wrapper.le(columnName,map.get("remindend")); } if(!request.getSession().getAttribute("role").toString().equals("管理员")){ wrapper.eq("userid",(Long)request.getSession().getAttribute("userId")); } intcount=examrecordService.selectCount(wrapper); returnR.ok().put("count",count);}5.5学生个人中心以学生身份登录到智慧校园考试系统,点击个人中心,点击修改密码,输入原密码后,可以更新自己的密码。点击个人中心下的“个人信息”按钮,可以修改自己的学号、学生姓名、性别、班级和头像信息。修改密码界面如图5.14所示,个人信息界面如图5.15所示:图5.14修改密码界面图5.15个人信息界面实现该功能的关键代码如下。@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyXueshengEntityxuesheng,HttpServletRequestrequest){//ValidatorUtils.validateEntity(xuesheng);xueshengService.updateById(xuesheng);//全部更新returnR.ok();}5.6学生端考试系统学生可以使用自己的身份登录到校园智慧考试系统,然后点击考试管理,参加老师布置的考试。考试开始后,学生可以在考试界面中回答试题。当学生完成试题后,系统会自动判卷,并核算学生的考试成绩。其中自动判卷也是该智慧校园考试系统智慧的集中体现。这项功能可以在一定程度上减轻老师的工作量,提高工作效率。学生考试界面如图5.16所示,计算成绩界面如图5.17所示:图5.16学生考试界面图5.17计算成绩界面考试完成后会自动生成考试记录,学生在考试中做错的题目会自动归入错题本系统中。错题本系统会同步到老师的错题本系统考试记录界面如图5.18所示,错题本系统如图5.19所示:图5.18考试记录界面图5.19错题本界面通过管理员身份登录本系统,学生的考试成绩会自动记录在管理员的考试记录中。成绩统计界面如图5.20所示:图5.20成绩统计界面实现该功能的关键代码如下。@RequestMapping("/remind/{columnName}/{type}") publicRremindCount(@PathVariable("columnName")StringcolumnName,HttpServletRequestrequest, @PathVariable("type")Stringtype,@RequestParamMap<String,Object>map){ map.put("column",columnName); map.put("type",type); if(type.equals("2")){ SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); Calendarc=Calendar.getInstance(); DateremindStartDate=null; DateremindEndDate=null; if(map.get("remindstart")!=null){ IntegerremindStart=Integer.parseInt(map.get("remindstart").toString()); c.setTime(newDate()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate=c.getTime(); map.put("remindstart",sdf.format(remindStartDate)); } if(map.get("remindend")!=null){ IntegerremindEnd=Integer.parseInt(map.get("remindend").toString()); c.setTime(newDate()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate=c.getTime(); map.put("remindend",sdf.format(remindEndDate)); } } Wrapper<ExamrecordEntity>wrapper=newEntityWrapper<ExamrecordEntity>(); if(map.get("remindstart")!=null){ wrapper.ge(columnName,map.get("remindstart")); } if(map.get("remindend")!=null){ wrapper.le(columnName,map.get("remindend")); } if(!request.getSession().getAttribute("role").toString().equals("管理员")){ wrapper.eq("userid",(Long)request.getSession().getAttribute("userId")); } intcount=examrecordService.selectCount(wrapper); returnR.ok().put("count",count); } 第6章系统测试每一个功能模块和前端运行界面设计后,为保证系统的可靠性,在正式使用前都需要一系列功能和性能测试,以便于正式使用前对系统进行校正和改进。黑盒测试是一种常用测试的方法,它是一种只看结果而不重视过程的测试方法。具体来说该测试只是分析每一次的输入和输出结果。对它内部的一些实现过程和实现的顺序方式都不做分析。从结果出发,来测试系统是否稳定可靠。在黑盒测试中,测试人员不需要了解系统的内部实现,而是通过输入一系列的测试数据和操作来验证系统的功能。测试人员可以通过位移分析和阈值分析等技术来进行黑盒测试。位移分析是一种基于输入和输出之间的变化来进行测试的方法。测试人员可以通过改变输入数据来验证系统对于不同数据的处理能力,并检查输出是否符合预期。阈值分析是一种基于输入和输出的阈值来进行测试的方法。测试人员可以确定输入和输出的范围,然后选择操作系统的阈值来测试系统的稳定性和可靠性。在黑盒测试中,测试人员可以使用各种测试用例来测试系统的各种功能,并帮助识别系统中存在的问题。通过黑盒测试,测试人员可以检查系统是否符合用户需求和设计规范,并提高软件质量和稳定性。6.1测试步骤分阶段实施是一种常见的软件开发方法,它将整个开发过程分成多个阶段,每个阶段完成一部分功能或任务,经过测试和验证后才进入下一个阶段。这样可以有效地控制开发过程中的风险和成本,并提高软件质量和可靠性。在分阶段实施中,每个阶段都需要进行测试,以确保阶段完成的功能或任务满足要求,并且与之前阶段的结果协调一致。测试可以包括单元测试、集成测试、系统测试、验收测试等。每个测试阶段都需要制定相应的测试计划和测试用例,进行测试执行和缺陷管理。在大程序的开发中,常常需要划分为多个子程序和模块,每个子程序和模块都需要进行单独的测试和集成测试,确保各个子程序和模块之间的接口协调一致,最终形成整个程序的完整功能。因此,分阶段实施对于大程序的开发尤为重要。因此,大规模软件程序的测试基本上包括以下步骤:1.模块的测试是找出程序中的编码和详细的设计错误。2.下一步是程序测试并发现设计中存在错误。3.规范发现错误验收测试方案的要求。6.2测试用例6.2.1登录测试用例用户端测试用例依据用户要求进行设计,采用黑盒测试的技术,由于篇幅问题,这里只给出具有代表性的部分测试用例表,如表6.1所示。表6.1登录测试用例表测试编号测试目的操作步骤预期结果实际结果001登录测试输入正确的用户名和密码登录成功登录成功002登录测试输入错误的用户名登录失败登录失败003登录测试输入错误的密码登录失败登录失败6.2.2考试管理测试用例管理端在运行时要满足浏览器的运行需求,比如添加考试信息测试、修改考试信息测试、删除考试信息测试等。本节根据管理端各模块进行测试,因考虑到本文篇幅有限,这里代表性的部分测试用例,如表6.2所示。表6.2考试测试用例表测试编号测试目的操作步骤预期结果实际结果001添加试题信息测试在添加页面输入试题信息,点击确认按钮添加成功添加成功002修改考试信息测试在修改页面修改考试信息,点击确认按钮修改成功修改成功003删除考试信息测试在管理考试信息页面,点击某一试卷的删除按钮删除成功删除成功004查询考试信息测试在管理考试信息页面查询输入框输入要查询的试卷名字,点击查询按钮查询成功查询成功6.3测试结论通过对该系统的全面细致的测试,各类丰富的测试用例,获得了更加客观,准确的结论。其结果表明,在使用过程当中,系统可以快速准确的把数据呈现给用户。在功能方面,基本满足了当初的预期。使用时,也十分的方便。总的来说,本次测试的效果符合我们对此系统期望。结论这次的研究已经到达了尾声,回首看来,收获颇丰。将Java作为基础开发语言,实现这一套智慧校园考试系统,意义非凡。在开篇之处已经详细的说明了此次开发的目的和当前这项研究在国内外的现状,正是在这个目标的驱使下我对这项研究所用到的各项技术有了更加深入的认识,并在文中也做了介绍,尤其是开发语言和与开发相关技术的使用。调查分析是谋事之基,成事之要。在设计方面,我着重在此花费了大篇幅对其展开了介绍,从系统的总体设计,数据库分析与实现和其他的设计进行了全面的总结,并把成果在此展示,尤其是一些主要的功能界面。在开发流程上,我对本系统实现的关键代码进行了展示。在这个研究当中每一个环节都至关重要。通过不懈的努力本系统可以给使用者带来优质的用户体验,其简单的操作、美观简洁的页面会极大的调动学生的学习热情。对当下社会和教育行业的快速发展起到积极作用。然而,本次研究还有一些不足之处:学生的许多重要信息未在数据库中保存,功能菜单和信息不完善,学生与老师无法在系统中进行沟通,整体界面效果不够人性化等。在接下来的工作中,我们将对以上不足进行改进,努力让该智慧校园考试系统逐步完善。参考文献张旭东,杨鹏斐.数据库原理在线考试系统核心功能研究与设计[J].甘肃科技,2020,36(18):5-9.陈敏,汤慧仪.面向Java程序设计的在线考试与练习系统[J].吉首大学学报(自然科学版),2020,41(05):14-18.赵英萍,毛玉萃.基于JavaWeb的在线考试管理系统的设计与实现[J].电脑知识与技术,2020,16(19):47-48+51.顾亚文.基于JSP随机组卷考试系统的设计[J].电子技术与软件工程,2020(07):195-197.伍四军.一种基于WEB的在线考试系统设计[J].科技广场,2017(11):47-50.龙万顺,姜学军.基于Web角度下的在线考试系统研究[J].黑龙江科技信息,2019(01):178.杨静.基于Web的在线考试系统的设计与开发[J].西安文理学院学报(自然科学版),2019,22(04):55-59.杨伟凡.基于Java技术平台的在线考试系统的设计与实现[J].卫星电视与宽带多媒体,2020(03):99-100.王晖.基于.NET语言在线考试系统的设计与实现[J].电子技术与软件工程,2021(05):154-155.管小卫.基于Andriod平台的在线考试系统设计——以“专转本”计算机基础统考为例[J].科学技术创新,2019(36):93-94.叶惠

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论