主页 > 案例大全 > 论文技巧案例-基于JavaEE的驾校理论考试模拟系统设计与实现

论文技巧案例-基于JavaEE的驾校理论考试模拟系统设计与实现

2021-04-24 13:36:59

  如今,全国经济得到迅猛地发展,人们对生活的质量要求逐渐提高,使得机动车的普及家庭化。流行的“驾考热”使得驾校培训行业发展迅速。驾驶机动车不仅需要掌握熟练的驾驶技术,更需要加强驾驶员的安全知识教育。传统的安全知识教育方式已经难以达到更好的知识提升效果,而随着计算机互联网的快速发展,安全知识教育信息自动化的“互联网+”驾校模式已经获得高度认可。本论文针对目前驾校模式以及驾校学员的实际学习需求,设计并实现了驾校理论考试模拟系统。

  本论文设计的驾校理论考试模拟系统将以软件工程中面向对象的设计思想为指导,采用的是当前流行的B/S架构来开发。前端技术使用LayUI、JQuery等技术来设计页面,后端使用JavaEE来处理业务逻辑以及数据操作,数据库采用MySQL。采用IntelliJ IDEA作为系统开发工具并将项目部署在Tomcat服务器上运行。本系统涵盖了随机练习、章节练习、顺序练习、全真模拟考试、错题集、题目讨论区等前台功能模块以及系统管理员的后台管理模块。

  1.1选题背景

  如今,我国国民经济得到迅猛地发展,人们对生活质量的要求也在不断地提高,使得机动车已普及到每个家庭之中。据交管局的最新公布数据表明,2019年全国机动车总数达到3.48亿辆,3214万辆新注册的机动车,2943万人新执照的驾驶员,全国66个城市汽车总数量超过一百万辆。深圳、上海等十一个市区超过三百万辆,载货汽车总数达到2694万辆。仅2019年上半年新注册的登记量就已是创历年以来的新高,全年新能源汽车总数达到381万辆。由此可见,拥有机动车的人也越来越多,更多的人开始参加驾校的驾驶员培训。随着驾校学员人数的增加,驾校的日常工作也越来越多,考察学员的情况也需要消耗越来越多的人力物力等资源。因此,为适应互联网的迅猛发展,提高每个学员驾驶安全的理论知识,提升每个学员的自信心,开发一款线上驾校理论考试模拟系统是非常有必要的。

  本系统可以让系统管理员快捷方便的更新题库,学员可以按顺序、随机或章节类型来练习,每次练习之后系统为每一个学员整理错题方便学员查漏补缺,还提供了题目的解析以及讨论,方便学员探讨自己对题目的疑问。可以较为准确的反映学员知识的掌握程度,达到更佳的练习效果。将互联网技术与驾驶员培训教育行业相结合有利于提高培训教育的效果,减少人力、财力等资源的浪费,更有助于提高学员考试的通过率,实现安全理论知识的考核和模拟考试的信息化和自动化,保证高质量的提高学员的安全理论知识,从而保证驾校培训质量的提升。对保障我国的交通安全具有很重要的意义。

  1.2研究的目的及意义

  据央视新闻最新报道,2016年全国道路交通事故21.3万起,造成约6.3万人死亡、22.6万人受伤。2018年全国发生交通事故24.5万起,造成约6.3万人死亡、25.9万人受伤。特别是在酒驾、超速、非法占道、违超等违法导致的事故居高。由数据显示看来,我国驾驶员的安全理论意识依然较低。进一步严格规范驾驶员的培训以及考试制度,加强驾驶人员的安全知识教育管理,这已然成为社会的共识。在最新版的《机动车驾驶员培训教学大纲》中明确规范了驾校的培训制度,严格监督驾校提高教学的水平。保证驾驶员安全知识水平的提升,从而在根本上保障我国道路交通的秩序及安全。同时,在当今互联网发达的时代,少数成熟发达地区驾校已采取互联网教学模式,走上了驾校信息化模式。随着科技进步,将信息化技术植入驾校,从而形成传统驾校向“互联网+”驾校的变革。然而,互联网走进驾校模式覆盖率低,利用率低,原因在于互联网驾校技术拓展范围小,在经济相对落后的地区,信息化水平低下,覆盖较慢[1]。在此背景下,拥有易于操作、方便快捷、流程规范化的线上考试模式让传统的纸质模式受到了巨大的冲击。各个教育培训行业正逐渐放弃纸质模式,顺应发展的趋势开始使用线上模式。理论考试是检验学生学习效果的一个重要手段,传统的纸质考试手段落后,题量较少,考题涵盖的知识点有限,需要耗费大量的纸张和油墨,教师阅卷量大,费时费力,还容易出差错[2]。在线考试系统充分利用计算机网络资源,实现了考试的无纸化和网络化管理,打破了传统理论考试方式的限制,其在线网络考试的方式,在一定程度上降低了考试成本[3]。人们的生活水平提升,汽车已经成为人们生活所必需的工具,为了驾驶者安全和道路顺利管理,驾驶员必须先考取驾驶执照才能驾驶汽车。想要考取驾驶执照,必须要经过四个阶段的测试,其中的理论测试占据了两个阶段测试内容。为了让学员们能够更好地学习理论知识,并通过理论测试,需要设计开发驾驶员理论考试模拟系统[4]。由此看来,开发驾驶员理论考试模拟系统,将互联网技术与考试结合走进信息化模式是大势所趋。

  本系统旨在可以让学员根据个人的情况进行理论知识的学习,可以让驾校机构更准确的了解各个学员的安全理论知识掌握情况。将驾校理论模拟考试与互联网相结合创造一种新的模拟环境,不仅提高了模拟的真实性、可行性和效率,还降低了模拟的成本。旨在通过本系统加强驾驶人员安全知识教育,保障我国道路交通行驶的安全,提高互联网走进驾校模式覆盖率和利用率,实现驾校走上信息化,提了驾校培训的质量。

  1.3国内外现状

  1.3.1国外现状

  在国外,一些发达国家的计算机互联网发展相比国内起步更早,技术也相对国内更成熟。特别是美国,早在20世纪70年代已经出现了利用计算机进行考试。1986年,美国心理协会(APA)发布如何开发和使用计算机考试,并对如何定考分做了报告指南,随即成为了有关考试一类开发的标准[5]。90年代,一些发达国家就纷纷采用Web技术实现了各个领域的线上考试系统,诸如GRE考试、TOEFL考试、驾校理论考试等,很早就实现了无纸化的线上考试模式。而驾校线上理论考试模式自动组卷、自动阅卷等功能降低了人力、物力以及财力的成本,学员可以根据个人情况个性化的模拟考试练习,在一定程度上提升了学员学习的效率,提高了驾驶员考核的通过率。

  1.3.2国内现状

  在国内,虽然我国计算机互联网起步较晚,但是由于国家对互联网技术的支持以及软硬件条件比较成熟,越来越多的人致力于“互联网+教育”的研究,各个类型的考试系统、练习平台等在国内如雨后春笋般涌现[6]。其中自然也包括了驾驶员培训行业的驾校理论考试模拟系统。由于起步较晚,国内使用传统的C/S结构的考试系统较少,大多数的考试系统是采用B/S结构实现[7][8]。目前国内驾校理论考试模拟系统现在主要有:车轮驾考通、驾校一点通、元贝驾考等。虽然也获得了广大学员的好评,但由于系统使用的技术相对落后,系统的灵活性不足以及个性化不够完善,用户体验及其不好,所以开放一个技术先进、灵活性高的驾校理论考试模拟系统非常重要。

  1.4论文结构

  本论文共分为八个章节,各章节的内容如下:

  第一章是引言,首先对软件系统的开发背景,以及国内外研究动态与现状做了相应的介绍。在对现有的驾校理论考试模拟系统浏览后,对自己开发的系统的重要性和必要性进行了描述。

  第二章是应用开发相关技术介绍。对驾校理论考试模拟系统所需要的关键技术做了详细介绍。如MySQL数据库、IntelliJ IDEA开发工具、Spring框架、SpringMVC框架、Mybatis框架、Shiro权限框架等。

  第三章是对本系统的需求分析,首先对系统需求进行概述,对于项目中设计的驾校理论考试模拟系统进行分析,分析用户的需求、功能模块和系统运行性能和环境。

  第四章是系统设计,根据对系统的需求分析,制定了系统的设计目标,对系统的总体框架画出了相关流程图、设计了系统的功能模块以及画出系统的相关模块图。

  第五章是数据库设计,根据功能和模块的分析,对本系统用到的数据表进行分析说明。

  第六章是系统实现,进行系统实施和运行,判断该系统是否符合软件需求功能,保证系统的完整性。

  第七章是系统测试,根据完成的模块对每个功能进行测试,保证程序的正确性。

  第八章是小结,总结该系统的优点和需要改进的之处。

  第2章系统开发的技术分析

  2.1 MySQL数据库

  MySQL是Oracle公司目前最流行的关系型数据库管理系统之一。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL数据库以其精巧灵活、运行速度快、经济适用性强、开放源码等优势,作为网站数据库获得许多中小型网站的开发公司的青睐。MySQL性能卓越,可提供良好的软件开发环境,并且已经大量部署到中小型企业和高校的教学平台[9]。它提供数据的安全存储以及有效管理,以下是对MySQL数据库管理系统的特点和优势进行简单的介绍[10]:

  1、MySQL使用的是C、C++进行编写,使用各类型的编译器进行过测试,其性能优越、服务和更新稳定,因此很少会出现异常宕机的去情况。

  2、MySQL是完全开源的并且没有版权的制约,因此其自主性和使用成本低。

  3、MySQL占用空间相对较小,安装过程简易,用户使用便于维护。

  4、MySQL出现的历史悠久,已成为主流数据库之一,有庞大的用户量以及众多的相关论坛,遇到问题可以很方便的寻求帮助。

  5、MySQL支持Linux、Windows和Mas OS等多种操作系统,为多种编程语言提供了相应的API接口,并且它是完全网络化的,只要给用户开放相应的权限,再根据IP地址和端口进行访问就可以远程共享和获取数据库数据。

  2.2 JavaEE技术

  JavaEE是基于JavaSE平台上进行构建的,JavaEE提供相应的API以及运行环境来开发和运行可靠的、可扩展的、多层的、安全的和大规模的网络应用程序。它作为一个部署平台应用于企业之中,具有良好的健壮性及可靠性,提供了强大的Web服务,在实际应用中非常容易部署[11]。通过长期的发展,到现在已经很大程度的简化了以Server为核心的应用程序开发,渐渐成为了企业级开发的通用标准。

  2.2.1 MVC架构模式

  MVC的全称是Model View Controller,是一种设计思想。它将业务逻辑集中起来,使之与视图相分离,通过控制器连接业务逻辑与视图。进而在需要修改视图和用户交互的时候,不需要修改或重写业务逻辑的代码。MVC被广泛的应用于软件开发中,使软件程序的开发更规范化,逐渐成为主流的开发模式之一,不仅提高软件开发的效率,同时也使系统更加的易于扩展。使用这种模式开发通常会把系统拆分为以下三个部分:

  Model(模型):即实体属性对象,可以对数据进行存取。通常通过JAVA POJO或JavaBean实现,是系统中用于处理业务逻辑和数据逻辑的部分。

  View(视图):是系统中各个逻辑的程序数据,依据模型数据创建视图呈现数据。通常是由JSP实现的。

  Controller(控制器):是系统中响应各种请求,连接业务逻辑与视图的控制器,对用户传输的数据进行整合为符合Model的数据格式,最终将数据交给Model处理,Model将业务逻辑处理完毕后将结果返回给Controller,最终返回给View呈现数据给用户。

  2.2.2 SSM框架

  SSM是三个开发框架的集成,分别是指Spring、Spring MC、Mybatis,SSM现在已经成为主流的Web应用程序开发框架[12]。

  Spring是一个通过面向接口编程来实现低耦合开发的免费轻量级容器框架,其主要核心思想为AOP和IOC[13]。AOP是面向切面编程,通过业务逻辑处理过程中的切面进行提取,可以很方便的实现对软件系统进行拦截、监控等功能。IOC即控制反转。它是用来控制和管理对象的生命周期以及对象之间的关系。

  SpringMVC是基于请求为驱动的web层框架,也是Spring的重要模块之一,底层根据Servlet进行设计。核心类是DispatcherServlet前端控制器并且实现了Servlet接口。并且它使用的是MVC开发模式的思想,将请求发给控制器,然后通过模型对象进行数据的交互,最终展示请求和响应数据的结果视图[13]。

  MyBatis是目前主流的持久层框架之一,通常配合Spring一起使用,是半自动的ORM。由于支持自定义SQL语句,因此可以进行更为细致的SQL优化。使用起来灵活,而且支持高级映射,几乎完全简略了全部的JDBC代码、手动设置参数和结果集的获取[14]。MyBatis的配置及映射可以通过XML文件或者注解的方式实现。通过配置可以将实体对象和数据库对象相互建立映射关系。

  2.3 Shiro安全框架

  Shiro是Apache公司提供的一款开源的权限管理框架,其简单、高效。Shiro作为一款强大的Java安全框架,提供了身份认证、授权验证、资源加密等特性,有效解决了系统安全访问控制难题[15]。以下为Shiro主要涉及到的三个主体简介:

  Subject:代表主体,可以理解为当前的用户。是一个抽象的概念,与当前应用程序交互的都可以被认为是一个Subject,即没有具体到某一个用户。它可以完成外部软件程序的认证和授权的抽象。可以把主体当作是一个门面,是所有的操作入口。

  SecurityManager:安全管理器,可以对内部的每个接口实例进行管理。它还负责对所有主体的安全管理,是Shiro安全框架的核心。除此之外,还负责跟其它的组件对象进行交互,相当于SpringMVC中的前端控制器。

  Realm:域,即权限存储位置。shiro不设置权限。而是管理权限。权限的规则需用户提供,也可以把域看作数据源。称之为安全数据源。

  2.4 IntelliJ IDEA开发工具

  开发平台使用的是IntelliJ IDEA,IDEA是目前主流的代码编辑器之一,提供了各种强大的扩展插件以及强大的框架整合能力。还提供了连接各种数据库的图形化方式以及提供了各个强大的插件功能,很大程度上提高代码编辑的效率。

  2.5 JUnit单元测试框架

  JUnit是一种强大的开源的面向Java单元测试的框架,使用JUnit在Java各个开发过程中不断进行单元测试将会大幅度提高程序质量,保证程序结果正确运行[16]。从而提高软件质量,减少BUG的数量。

  第3章需求分析

  3.1可行性分析

  软件系统的设计与实现的首要工作是对软件进行可行性分析,不仅可以保证本系统的可行性,还可以将本系统的开发风险降至能够承受的范围内。每一个软件系统的可行性分析都有它自身的特点。本系统的可行性分析主要包括软件系统的操作可行性、经济可行性、技术可行性以及功能可行性等方面进行分析。同时本系统保证可行性分析的科学性、可靠性和公正性。以下为本系统的可行性分析:

  操作可行性:本文所描述的驾校理论考试模拟系统的开发前对用户期望的界面操作方式进行了相关调查,满足用户在功能界面和操作界面上的方便快捷,具有良好的人机交互设计,用户只需要简单浏览过后便可以在本系统相应的功能上进行操作和使用,满足用户操作的可行性。

  经济可行性:本文所描述的驾校理论考试模拟系统旨在代替传统的纸质练习与考试,实现理论考试与练习的无纸化,大大减少了人力物力和财力等资源,同时提高了理论考试的效率和质量。后期对系统的维护成本也在可承受的范围之内,因此满足软件系统的经济可行性。

  功能可行性:本文所描述的驾校理论考试模拟系统在设计和开发之前对驾校传统的考试过程和国内外现有的在线考试系统的业务进行充分的调查分析,结合现有系统功能的优点和用户所需功能进行详细设计,因此功能上满足广大用户的客观需求,满足软件系统的功能可行性。

  技术可行性:本文所描述的驾校理论考试模拟系统的开发技术采用的当前流行的是B/S架构,使用MySQL数据库管理系统、Java语言以及当前流行的SSM开发框架等技术进行系统的开发,所使用的技术成熟,是当前所流行的企业级开发技术。因此满足软件系统的技术可行性。

  3.2功能需求

  驾校理论考试模拟系统主要是旨在满足用户线上理论模拟考试与练习的需求,提高用户驾考的通过率以及提高用户的安全理论知识水平。本系统的服务对象有系统管理员以及学员,登录注册为公共的功能。其他系统功能会根据用户身份的不同,所能使用的权限也就不同。

  3.2.1系统管理员

  系统管理员可以对学员信息进行增删改查的操作、对车辆类型信息的管理、对科目信息的管理、对章节信息以及题目分类的管理、对题库信息的增删改查操作、对讨论区的留言的审核删除及回复等功能。

  3.2.2学员

  学员登录之后可以修改个人信息、选择车辆类型和科目进行理论知识的练习,分为章节、顺序和随机练习,可以进行全真模拟考试、查看最终得分、自动收集错题查看错题记录、每一题都提供题目解析给学员参考、每一题都有讨论区供学员探讨当前题目的各自看法等功能。

  3.2.3登录注册

  登录功能分为用户名密码登录以及手机验证码登录,登录和注册的短信验证码使用阿里云短信接口进行短信收发功能,使用shiro安全框架进行登录的认证与授权。

  3.3系统需求

  1、本系统界面设计上要简洁美观,各个功能上具有直观性。完备的驾校理论考试模拟系统的核心内容有:全真模拟考试、考试历史记录、章节练习、随机练习、自动改分、错题集以及题目讨论区等。这些基本的学员用户功能不能缺少。

  2、本系统是面向驾校的理论考试模拟系统,用户有可能会修改或增加需求,因此理论考试模拟系统需要具有相应的接口,具备良好的可扩展性。

  3、本系统不是完全开放的系统,用户拥有不同的身份,每个用户都必须进行登录以及进行相应的身份认证和授权后才可以使用相应的系统功能。除此之外,本系统应授予管理员在题目讨论区的审核及删除评论的权限,避免用户发一些敏感信息的评论。

  3.4方案的设计与比较

  B/S结构和C/S结构是当前市面上运行的计算机软件的主要网络结构模式。B/S是Brower/Server的缩写,使用B/S结构开发的应用程序,只需要客户端计算机上安装一个浏览器(Browser)即可。可以实现客户端的零维护,具有良好的可扩展性。只需要客户端计算机可以连接互联网,通过系统管理员分配的账户或者通过注册功能注册系统账户就可以使用应用程序了。C/S即客户/服务器模式。使用C/S结构开发的软件程序的时候,其客户端需要安装与之对应开发的客户端软件。服务器端需要采用高性能的计算机,并且需要性能优越的大型数据库系统,如Oracle等。通过对这两种模式的对比,以及结合本系统特点,最终选择B/S结构模式。

  3.5系统运行环境的需求分析

  3.5.1运行环境

  本系统使用IntelliJ IDEA 2018.3.6开发工具进行开发,使用Java语言实现后台功能,使用MySQL数据库存储数据,使用Tomcat作为Web服务器。可在Windows7及以上版本的计算机上运行。客户端使用Google Chrome、Firefox、360等浏览器。

  3.5.2系统性能

  驾校理论考试模拟系统用于驾校学员理论考试的模拟,除了对系统用户的密码使用MD5进行加密之后再保存到数据库,其他数据的保密性要求并不高。对于用户所运行的计算机系统环境要求也不高,用户只要具备一台Windows 7或以上版本的操作系统并且有浏览器即可满足本系统的运行需求。

  第4章系统设计

  4.1设计目标

  系统设计的工作是根据软件系统功能性的需求分析结果以及软件系统的相关数据库设计的要求。对系统主要的功能模块进行设计,明确功能模块的组成和结构关系。确定系统的整体结构与系统的核心功能,本章节将讨论驾校理论考试模拟系统的功能模块设计以及相关的业务流程设计。

  4.2系统总体框架设计

  4.2.1系统功能

  经过详细的需求分析,最终确定该系统用户主要分为两个角色:系统管理员和学员。该系统实现以下功能:

  一、系统管理员功能

  1、对学员信息进行管理;

  2、对车辆类型信息的管理;

  3、对科目信息的管理;

  4、对章节信息以及题目分类的管理;

  5、对题库信息的管理;

  6、对讨论区的留言的审核删除及回复等功能。

  二、学员功能

  1、登录、注册功能;

  2、查看和修改个人信息功能;

  3、选择车辆类型和科目进行理论知识的练习;

  4、可以按照章节、顺序和随机进行练习;

  5、进行全真模拟考试、查看最终得分;

  6、错题集以及题目收藏功能;

  7、查看全真模拟考试历史记录;

  8、可以查看题目解析以及在题目讨论区进行讨论。

  以上功能为本系统的主要实现功能,其中登录功能分为用户名密码登录以及手机验证码登录,使用阿里云短信接口进行短信收发功能,使用shiro安全框架进行登录的认证与授权。

  4.2.2系统业务流程图

  1、系统管理员登录系统后台可以对科目信息、题目信息、车辆类型、题目讨论区、题型信息以及学员信息等进行管理,系统管理员具体业务流程图如图4-1所示:

  图4-1系统管理员业务流程图

  2、学员登录系统后可以查看及修改个人信息,进行车辆类型的选择、根据科目进行章节练习、顺序练习、随机练习、全真模拟考试以及题目评论等操作。学员业务流程图如图4-2所示:

  图4-2学员业务流程图

  3、系统管理员可以对车辆类别、科目信息、章节信息、题目信息、题目讨论区评论管理、学员信息和题型信息管理。

  (1)车辆类型管理的业务流程图如图4-3所示:

  图4-3车辆类型管理流程图

  (2)科目信息管理的业务流程图如图4-4所示:

  图4-4科目信息管理流程图

  (3)章节信息管理的业务流程图如图4-5所示:

  图4-5章节信息管理流程图

  (4)题目信息管理的业务流程图如图4-6所示:

  图4-6题目信息管理流程图

  (5)题目讨论区评论管理的业务流程图如图4-7所示:

  图4-7题目讨论区评论管理流程图

  (6)学员信息管理的业务流程图如图4-8所示:

  图4-8学员信息管理流程图

  (7)题型信息管理的业务流程图如图4-9所示:

  图4-9题型类别管理流程图

  4.3模块设计

  根据对驾校理论考试模拟系统的各项需求分析,驾校理论考试模拟系统主要由系统总体模块以及各个功能子模块组成。为实现系统整体模块可以对每个功能进行分模块设计,根据以上需求分析对系统进行结构化设计。本系统需要设计的主要功能模块大致分为:系统的总体模块、后台系统管理员功能模块、前台学员功能模块等。

  系统总体模块,系统角色分为两个角色:系统管理员、学员。系统总体模块设计图如图4-10所示:

  图4-10系统总体模块图

  后台系统管理员功能模块,系统管理员可以进行车辆类型信息管理、科目信息管理、学员信息管理、题型信息管理、章节信息管理、题目信息管理以及题目讨论区的评论管理。系统管理员模块设计图如图4-11所示:

  图4-11系统管理员模块图

  学员模块,学员登录前台系统后可以选择要车辆类型、选择科目、章节练习、顺序练习、随机练习、题目讨论区进行留言评论、查看错题集、查看收藏的题目以及查看和修改个人信息。学员模块设计图如图4-12所示:

  图4-12学员模块图

  第5章数据库设计

  5.1数据库E-R图设计

  1、根据系统设计整理出本系统的总体,示:

  图5-1系统总体E-R图

  2、根据总体E-R图分别建立十二个实体对象,各个实体的具体属性信息如下:

  (1)用户实体,包含了用户ID、真实姓名、用户名、密码、邮箱、手机号、性别、头像、角色权限以及注册时间,实体属性图如图5-2所示:

  图5-2用户实体属性图

  (2)车辆类型包括车辆类型ID、车辆类别名称和创建时间,实体属性图如图5-3所示:

  图5-3车辆类型实体属性图

  (3)科目信息包括科目信息ID、科目名称和创建时间,实体属性图如图5-4所示:

  图5-4科目信息实体属性图

  (4)章节信息包括章节信息ID、章节名称、所属车辆类型ID、所属科目ID和创建时间,实体属性图如图5-5所示:

  图5-5章节信息实体属性图

  (5)题型信息包括题型信息ID、题型名称、创建时间,实体属性图如图5-6所示:

  图5-6题型信息实体属性图

  (6)题目信息包括题目ID、题目、正确答案、题目解析、所属章节ID、所属题型ID和创建时间,实体属性图如图5-7所示:

  图5-7题目信息实体属性图

  (7)题目选项包括选项ID、选项名、选项内容、所属题目ID和创建时间,实体属性图如图5-8所示:

  图5-8题目选项实体属性图

  (8)考试记录包括考试记录ID、成绩分数、考试消耗时间、答对数、答错数、考试时间和考试用户ID,实体属性图如图5-9所示:

  图5-9考试记录实体属性图

  (9)题目收藏包括题目收藏ID、收藏的题目ID、收藏所属用户ID和收藏时间,实体属性图如图5-10所示:

  图5-10题目收藏实体属性图

  (10)错题集包括错题集ID、错误题目ID、错题所属用户ID和错题时间,实体属性图如图5-11所示:

  图5-11错题集实体属性图

  (11)题目讨论区评论包括评论ID、评论内容、评论时间、评论回复数、所属楼层、点赞数、父评论ID、所属用户ID和评论所属题目ID,实体属性图如图5-12所示:

  图5-12题目讨论区评论实体属性图

  (12)评论点赞包括点赞ID、点赞时间、点赞的用户ID和被点赞的评论ID,实体属性图如图5-13所示:

  图5-13题目讨论区评论点赞实体属性图

  5.2数据库表设计

  根据对系统的E-R图进行分析和设计,为本系统设计了十二张数据表。分别为题型信息表、题目信息表、题目选项表、车辆类型表、考试记录表、章节信息表、题目收藏表、错题集表、科目信息表、题目评论表、用户表和评论点赞表,具体表设计如下:

  1、用户表,包含了用户ID、真实姓名、用户名、密码、邮箱、手机号、性别、头像、角色权限以及注册时间等。如表5-1所示:

  表5-1用户表

  字段名数据类型主键PK/外键FK/ISNULL描述

  U_ID INT PK用户编号

  REALNAME VARCHAR(60)真实姓名

  USERNAME VARCHAR(50)NOTNULL用户名

  PASSWORD VARCHAR(64)NOTNULL密码

  EMAIL VARCHAR(60)邮箱号

  PHONE VARCHAR(20)NOTNULL手机号

  GENDER INT性别,0为女1为男

  HEADIMAGE VARCHAR(60)头像地址

  ROLE INT NOTNULL角色1为管理员2为学员

  REGISTERTIME DATETIME NOTNULL注册时间

  2、车辆类型表,包括车辆类型ID、车辆类别名称和创建时间。如表5-2所示:

  表5-2车辆类型表

  字段名数据类型主键PK/外键FK/ISNULL描述

  VT_ID INT PK车辆类型编号

  VEHICLETYPENAME VARCHAR(60)NOTNULL车辆类别名称

  VT_CREATETIME DATETIME NOTNULL创建时间

  3、科目信息表,包含了科目信息ID、科目名称和创建时间。如表5-3所示:

  表5-3科目信息表

  字段名数据类型主键PK/外键FK/ISNULL描述

  S_ID INT PK科目编号

  SUBJECTNAME VARCHAR(60)NOTNULL科目名称

  S_CREATETIME DATETIME NOTNULL创建时间

  4、章节信息表,包括章节信息ID、章节名称、所属车辆类型ID、所属科目ID和创建时间。如表5-4所示:

  表5-4章节信息表

  字段名数据类型主键PK/外键FK/ISNULL描述

  C_ID INT PK章节编号

  CHAPTERNAME VARCHAR(60)NOTNULL章节名称

  C_VT_ID INT FK所属车辆类型ID

  C_S_ID INT FK所属科目ID

  C_CREATETIME DATETIME NOTNULL创建时间

  5、题型信息表,包含了题型信息ID、题型名称、创建时间。如表5-5所示:

  表5-5题型信息表

  字段名数据类型主键PK/外键FK/ISNULL描述

  PTYPE_ID INT PK题型编号

  TYPENAME VARCHAR(60)NOTNULL题型名称

  TYPE_CREATETIME DATETIME NOTNULL创建时间

  6、题目信息表,包含了题目ID、题目、正确答案、题目解析、所属章节ID、所属题型ID和创建时间。如表5-6所示:

  表5-6题目信息表

  字段名数据类型主键PK/外键FK/ISNULL描述

  P_ID INT PK题目编号

  PROBLEM VARCHAR(500)NOTNULL题目

  ANSWER VARCHAR(20)NOTNULL正确答案

  ANALYSIS VARCHAR(500)题目解析

  P_C_ID INT FK所属章节ID

  P_PT_ID INT FK所属题型ID

  P_CREATETIME DATETIME NOTNULL创建时间

  7、题目选项表,包含了选项ID、选项名、选项内容、所属题目ID和创建时间。如表5-7所示:

  表5-7题目选项表

  字段名数据类型主键PK/外键FK/ISNULL描述

  SELECT_ID INT PK选项编号

  SELECTnAME VARCHAR(10)NOTNULL选项名

  CONTENT VARCHAR(500)NOTNULL选项内容

  SELECT_P_ID INT FK所属题目id

  SELECT_CREATETIME DATETIME NOTNULL创建时间

  8、题目收藏表,包含了题目收藏ID、收藏的题目ID、收藏所属用户ID和收藏时间。如表5-8所示:

  表5-8题目收藏表

  字段名数据类型主键PK/外键FK/ISNULL描述

  COLLECTION_ID INT PK题目收藏编号

  COLLECTION_P_ID INT FK收藏的题目ID

  COLLECTION_U_ID INT FK收藏所属用户ID

  COLLECTIONTIME DATETIME NOTNULL收藏时间

  9、考试记录表,包括考试记录ID、成绩分数、考试消耗时间、答对数、答错数、考试时间和考试用户ID。如表5-9所示:

  表5-9考试记录表

  字段名数据类型主键PK/外键FK/ISNULL描述

  E_ID INT PK考试记录编号

  SCORE INT NOTNULL成绩分数

  CONSUMETIME VARCHAR(20)NOTNULL考试消耗时间

  TRUE_COUNT INT NOTNULL答对数

  FALSE_COUNT INT NOTNULL答错数

  E_TIME DATETIME NOTNULL考试时间

  E_U_ID INT FK考试用户ID

  E_S_ID INT FK考试科目ID

  10、错题集表,包含了错题集ID、错误题目ID、错题所属用户ID和错题时间。如表5-10所示:

  表5-10错题集表

  字段名数据类型主键PK/外键FK/ISNULL描述

  ERROR_ID INT PK错题集编号

  ERROR_P_ID INT FK错误题目ID

  ERROR_U_ID INT FK错题所属用户ID

  ERROR_TIME DATETIME NOTNULL错题时间

  11、评论点赞表,包含了点赞ID、点赞时间、点赞的用户ID和被点赞的评论ID。如表5-11所示:

  表5-11题目讨论区评论点赞表

  字段名数据类型主键PK/外键FK/ISNULL描述

  PRAISE_ID INT PK点赞编号

  PRAISE_TIME DATETIME NOTNULL点赞时间

  PRAISE_U_ID INT FK点赞的用户ID

  PRAISE_COMMENT_ID INT FK被点赞的评论ID

  12、题目讨论区评论表,包含了评论ID、评论内容、评论时间、评论回复数、所属楼层、点赞数、父评论ID、所属用户ID和评论所属题目ID。如表5-12所示:

  表5-12题目讨论区评论表

  字段名数据类型主键PK/外键FK/ISNULL描述

  COMMENT_ID INT PK评论编号

  COMMENT_CONTENT VARCHAR(2000)NOTNULL评论内容

  COMMENT_TIME DATETIME NOTNULL评论时间

  COMMENT_COUNT INT评论回复数

  STOREY INT NOTNULL所属楼层

  PRAISENUM INT点赞数

  PCOMMENT_ID INT父评论ID

  COMMENT_U_ID INT FK所属用户ID

  COMMENT_P_ID INT FK评论所属题目ID

  上述所有的表均用于存储各用户的评论信息、科目信息和错题信息等本系统相关的信息,并持久化到数据库中。以便对数据进行统一管理。

  第6章系统实现

  驾校理论考试模拟系统的后端采用SSM框架来进行Java代码的编写、数据库采用MySQL,以软件工程理论思想为指导依据,进行界面开发和模块功能实现。在之前的需求分析和数据库设计的基础上,对系统模型作逐步的完善之后,将系统需要完成的功能逐步完成,直至所有的功能完全实现。开发实现过程中,采用边编程边测试的方法,每完成一个功能进行一次测试,确保功能的完整性,达到预期效果后再系统功能进行维护和完善。本章节将介绍部分功能代码的界面及代码实现。

  6.1登录注册功能的实现

  用户进行注册便可以进入登录界面进行登录,登录方式可选择账号密码登录和手机验证码登录。账号密码登录方式:输入账号密码后会通过后台接收到登录信息后,连接数据库,进行登录验证。手机验证码登录方式:用户输入手机号后点击发送短信验证码,后台会调用阿里云短信接口发送随机验证码,用户收到短信验证码后输入进行验证。如果验证登录成功后进入主界面使用功能,如果验证登录不成功,则会提示错误信息。

  1、使用本系统需要注册成为本系统的用户,用户注册界面如图6-1所示:

  图6-1用户注册界面

  2、本系统登录方式有用户名密码登录及手机验证码登录,用户名密码登录界面如图6-2所示:

  图6-2用户名密码登录界面

  3、手机验证码登录如图6-3所示:

  图6-3手机验证码登录界面

  4、系统管理员登录后,可以进入管理员主界面。后台管理主界面如图6-4所示:

  图6-4后台管理主界面

  5、学员登录成功后,进入前台主界面。前台主界面如图6-5所示:

  图6-5前台主界面

  6.2章节信息管理功能的实现

  系统管理员点击章节信息管理。然后可以查看现有的章节信息列表,并且可以增加、修改或删除章节。

  1、章节信息列表界面如图6-6所示:

  图6-6章节信息列表界面

  2、章节信息添加界面如图6-7所示:

  图6-7章节信息添加界面

  3、章节信息的删除界面如图6-8所示:

  图6-8章节信息删除界面

  6.3题目信息管理功能的实现

  系统管理员点击题目信息管理。然后可以查看现有的题目信息列表,并且可以增加、修改或删除题目和选项。

  1、题目信息列表界面如图6-9所示:

  图6-9题目信息列表界面

  2、修改题目信息界面如图6-10所示:

  图6-10修改题目信息界面

  6.4学员信息管理功能的实现

  系统管理员点击学员信息管理。然后就可以查看现有的学员信息列表,并且可以增加、修改或删除学员信息。学员信息管理列表界面如图6-11所示:

  图6-11学员信息管理列表界面

  6.5题目讨论区评论管理功能的实现

  系统管理员点击题目讨论区管理,可以查看现有的评论列表,并且可以回复或删除评论。评论列表界面如图6-12所示:

  图6-12评论列表界面

  6.6学员选择练习考试界面

  学员点击模拟考试,进入练习考试选择界面,学员可以根据车辆类型及科目进行章节练习、顺序练习、随机练习以及全真模拟考试。选择练习考试界面如图6-13所示:

  图6-13选择练习考试界面

  6.7学员练习题目界面

  学员通过选择练习考试界面进行选择练习后进入练习题目界面。练习题目界面如图6-14所示:

  图6-14练习题目界面

  6.8学员全真模拟考试界面

  学员通过选择练习考试界面进行选择全真模拟后进入全真模拟考试界面。全真模拟考试界面如图6-15所示:

  图6-15全真模拟考试界面

  6.9学员题目讨论区评论功能

  学员通过选择练习考试界面进行选择练习后进入练习题目界面,每个题目下方提供当前题目的讨论区,学员可以对当前所在题目进行留言评论。讨论区评论界面如图6-16所示:

  图6-16讨论区评论界面

  6.10学员查看考试记录功能

  学员点击考试记录,进入考试记录界面方可查看全真模拟考试的记录,考试记录可查看全真模拟考试消耗时间、分数、答对数、答错数及考试时间。考试记录界面如图6-17所示:

  图6-17考试记录界面

  6.11学员修改个人信息功能

  学员点击个人信息后,进入个人信息界面。然后学员可以对自己的个人信息进行修改。学员个人信息界面如图6-18所示:

  图6-18学员个人信息界面

  第7章系统测试

  7.1系统测试方法

  1、白盒测试:它是用来测试软件的内部结构是否正确或者软件应用的运作是否正常的测试方法。也可以叫作结构或者逻辑驱动测试。把被测试的软件比作盒子,白盒即为盒子内部是可见的。对于软件,它清楚其内部的构造和运作的情况,根据逻辑的路径进行测试。使用这种测试的优势在于它的效率高并且针对性强,有利于对代码进行彻底的测试。使用它的方法有很多种,其中使用最为广泛的方法是基本路径测试法,除此之外还有逻辑驱动等方法,常用于软件的验证。

  2、黑盒测试:它是用来测试软件的各个功能是否都可以正常运行的测试方法。也可以叫作功能或者数据驱动测试。把被测试的软件比作盒子,黑盒即为盒子内部不可视。它可以不需要去考虑软件内部结构和特性,直接根据软件程序所提供的API进行相应的功能测试。根据需求规格说明书以及从用户的角度来测试软件功能的输入数据以及程序返回的数据是否符合要求。这种测试的优点在于测试人员不需要理解内部的代码,只要根据实现文档一步步进行功能测试即可。其主要的设计方法有场景法等。

  7.2系统测试的过程和结果

  本次系统测试主要针对学员进行全真模拟考试、防止普通学员通过地址栏访问后台管理地址、用户登录功能、系统管理员添加修改或删除题目、用户注册时手机号的查重等功能进行测试,具体的测试过程如下:

  1、学员进行全真模拟考试的功能测试

  (1)功能说明:学员点击全真模拟后进入全真模拟考试界面。

  (2)测试用例

  表7-1学员进行全真模拟考试功能测试用例表

  序号测试子项输入/动作期望输出/响应实际情况

  1系统无题目时进行全真模拟考试学员点击全真模拟考试失败,提示用户题库暂无题目满足要求

  2题库正常时进行全真模拟考试学员点击全真模拟顺利进入全真模考试界面进行考试满足要求

  (3)学员进行全真模拟考试的对应题库无题目时将无法模拟考试并弹出的提示框如图7-1所示:

  图7-1全真模拟考试题库无题目测试结果图

  (4)学员进行全真模拟考试的对应题库有题目时成功进入考试界面,测试结果图如图7-2所示:

  图7-2全真模拟考试题库有题目结果图

  2、防止普通学员通过地址栏访问后台管理地址功能测试

  (1)功能说明:如果用户的角色不是管理员,通过地址栏访问管理员后台时强制用户跳转前台主界面。

  (2)测试用例:

  表7-2防止普通学员通过地址栏访问后台管理地址功能测试用例表

  序号测试子项输入/动作期望输出/响应实际情况

  1学员通过地址栏访问管理员后台在地址栏输入管理员后台地址访问失败,页面跳转至前台主页面满足要求

  2管路员通过地址栏访问管理员后台在地址栏输入管理员后台地址访问成功,页面跳转至管理员后台主页满足要求

  (3)学员通过地址栏输入管理员后台地址测试结果图如图7-3所示:

  图7-3学员通过地址栏访问管理员后台测试结果图

  (4)系统管理员通过地址栏输入管理员后台地址测试结果图如图7-3所示:

  图7-4管路员通过地址栏访问管理员后台测试结果图

  3、用户登录功能测试

  (1)功能说明:用户可以根据用户名密码或者手机验证码实现登录功能。

  (2)测试用例

  表7-3用户登录功能测试用例表

  序号测试子项输入/动作期望输出/响应实际情况

  1用户登录用户名或密码不匹配输入用户名:Hari

  输入密码:233233

  图片验证码:YESO登录失败,提示用户名或密码错误!满足要求

  2用户登录手机号或验证码不匹配输入用户名:18788888888

  输入验证码:448866登录失败,提示手机号或验证码错误!满足要求

  3密码登录时图片验证码不匹配输入用户名:Hari

  输入密码:123456

  图片验证码:ONOA登录失败,提示图片验证码错误!满足要求

  4用户登录用户名、密码及图片验证码匹配输入用户名:Hari

  输入密码:123456

  图片验证码:YSEO登录成功满足要求

  5用户登录手机号及验证码匹配输入用户名:18788888888

  输入验证码:949494登录成功满足要求

  (3)用户登录是用户名或密码不匹配时测试结果图如图7-5所示:

  图7-5用户登录功能测试结果图

  4、系统管理员查询添加修改或删除题目

  (1)功能说明:添加和修改功能未选择题目所属车辆类型、所属科目、所属题型等必填项则不允许添加,在条件筛选框选择条件可进行条件查询,删除时弹出提示框。

  (2)测试用例

  表7-4系统管理员查询添加修改或删除题目测试用例表

  序号测试子项输入/动作期望输出/响应实际情况

  1添加时未填写必填项点击添加添加失败,提示必填项不能为空满足要求

  2修改时把必填项置空点击保存修改修改失败,提示必填项不能为空满足要求

  3删除弹出提示框时点击取消点击取消取消删除满足要求

  4删除弹出提示框时点击,提示用户满足要求

  5条件查询已有题目在条件筛选框选择车辆类型小车查询成功,显示车辆类型为小车的题目满足要求

  (3)系统管理员修改时把必填项置空点击保存修改弹出必填项不能为空警告,测试结果图如图7-6所示:

  图7-6添加或修改必填项为空测试结果图

  (4)系统管理员删除题目弹出提示框点击确定后,测试前后对比图如图7-7、图7-8所示:

  图7-7第52页列表删除序号为208的题目前效果图

  图7-8第52页列表删除序号为208的题目后效果图

  5、用户注册时手机号的查重功能测试

  (1)功能说明:用户在注册时根据用户输入的手机号进行及时查重。

  (2)测试用例:

  表7-5用户注册时手机号的查重功能测试用例表

  序号测试子项输入/动作期望输出/响应实际情况

  1当手机号已被注册时输入已被注册手机号提示手机号已被注册并且无法发送短信验证码满足要求

  2当手机号未被注册时输入未注册手机号可以发送短信验证码满足要求

  (3)用户注册当手机号已被注册时弹出该手机已被注册警告,测试结果图如图7-9所示:

  图7-9当手机号已被注册时测试结果图

  (4)用户注册当手机号未被注册时成功发送短信验证码,测试结果图如图7-9所示:

  图7-10当手机号未被注册时测试结果图

  6、题目讨论区的评论点赞功能测试

  (1)功能说明:用户在浏览题目讨论区时可以对评论进行点赞。同一用户只能对同一评论进行一次点赞,再次点击则取消该用户的点赞状态。

  (2)测试用例:

  表7-6题目讨论区的评论点赞功能测试用例表

  序号测试子项输入/动作期望输出/响应实际情况

  1用户未给评论点过赞时点赞点击点赞按钮按钮变蓝,点赞数加1满足要求

  2用户已给评论点过赞时点赞点击点赞按钮按钮变灰,点赞数减1满足要求

  (3)用户未给评论点过赞时点击点赞按钮,按钮变蓝色并且点赞数加一,测试结果图如图7-11所示:

  图7-11用户未给评论点过赞时点赞测试结果图

  (4)用户已经给评论点过赞时点击点赞按钮,按钮变灰色并且点赞数减一,测试结果图如图7-12所示:

  图7-12用户已给评论点过赞时点赞测试结果图

  7.3系统测试结论

  在驾校理论考试模拟系统编码实现后,本章节介绍了系统测试阶段必要的测试方法。针对系统后台的非法访问、防止同一手机号多次注册等必要性功能进行测试,还设计了合理的测试用例。当用户进行了非本权限范围内的非法数据操作时,本系统将根据操作的类型返回对应的提示警告。对于一些无权限非法地址访问,本系统也进行了相应的拦截跳转,使系统能够满足用户的需求。整个系统的逻辑功能运行正常,查询数据能正常显示,全真模拟考试功能正常运行。软件测试是应用程序开发中的一个重要阶段,软件开发必须进行软件测试,发现程序中的错误。从而修复所存在的错误,保证软件系统的最终质量。

  尽管本次测试结果表明驾校理论考试模拟系统各个功能模块运行正常,并且达到了预期的设计目标,但是并不能表明本系统的完全没有缺陷的。因此需要用户进行长期的使用才能够正确的发现本系统的不足,需要对本系统进行长期的使用不断的测试,使系统能够得到全面的完善。