已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学校代码: 10128学 号:040201030 本科毕业设计说明书(题 目:电子交通模拟器的JAVA应用与开发学生姓名:学 院:信息工程学院系 别:计算机系专 业:计算机科学与技术班 级:计算机04-2指导教师: 讲师工程师二 八 年 六 内蒙古工业大学本科毕业设计说明书摘 要随着城市车辆的不断增加,现代社会的交通运行能力面临着越来越大的考验。如何提高城市交通的运行能力也就成为现代社会急待解决的问题之一。电子交通模拟器主要是对现实的交通状况进行模拟,并要及时的将相关车流量信息写入日志,以便日后方便对交通状况进行分析和研究。本系统主要包括以下几个功能模块:配置模块,主要是用来实例化其它模块,以降低系统的耦合度。模拟模块,主要来模拟交通路口的实际情况。备份模块,用来记录一段时间内该路口的车流量的相关信息。同时,为了更好的将系统封装,该系统还增加了登录模块,不仅可以防止恶意访问,也提高了系统的安全性。本系统采用C/S架构进行开发,是一个客户端运行程序。系统主要包括实时交通状况的模拟以及记录日志两个方面。该系统以JAVA技术为基础,涉及到相关的Swing,JDBC等技术。具有良好的可操作性、可维护性、可扩展性和可移植性。同时也具有较友好的界面,使用户使用起来比较方便。关键词:JAVA;Swing;Thread;交通模拟;日志AbstractWith the vehicles of the city increased day by day, the traffic of the modern society runs an ability be confronted with the more and more big ordeal. How to improve the operational ability becomes one of modern society emergency after solve problem also right away.Electronic traffic simulator is the reality to simulate the traffic situation and be going to write relevance vehicle rate of flow information in daily record in time, to be in progress in the future conveniently to traffic situation, analysis and research. This system includes several the following functions module mainly: Configuration module is primarily used for examples of other modules, to reduce the coupling of the system. Simulation module mainly simulates the transportation street intersection the actual situation. Backup module, is used to record the relevance information owing the crossing vehicle rate of flow within a period of time. Meanwhile, in order to better package the system, the system also added the Login module, it can not only prevent malicious access, but also enhance the systems security. The system uses C / S framework for development, is a client operating procedures. The System mainly includes the simulation of real-time traffic conditions and the log records. The system is based on the JAVA technology, involving the relevant Swing, JDBC, and other technology. It has a good operability, maintainability, scalability and portability. And it also has a friendly interface that allows users to use more convenient. Key words:JAVA; Swing; Thread; traffic simulation; log目 录引 言1第一章 概述21.1 电子交通模拟器概述21.1.1 电子交通模拟器的概念21.1.2 电子交通模拟器的功能描述21.2 技术及开发工具概述21.2.1 JAVA概述21.2.2 JDBC概述41.2.3 Eclipse概述41.3 系统开发环境概述51.3.1 硬件环境51.3.2 软件环境5第二章 系统分析62.1 需求分析62.2 可行性分析62.2.1 技术可行性分析62.2.2 经济可行性分析62.3 详细分析62.3.1 业务流程分析62.3.2 数据流程分析6第三章 系统设计73.1 总体设计73.1.1 系统设计目的与任务73.1.2 开发设计思想73.1.3 系统模块设计73.2 详细设计73.2.1 数据库设计73.2.2 代码设计83.2.3 类的设计9第四章 系统实现144.1 登录模块的实现144.2 模拟模块的实现154.3 配置模块的实现224.4 备份模块的实现22第五章 系统测试235.1 系统测试的目的和原则235.2 系统测试的方法235.3本系统的测试23结论24参考文献25谢 辞26引 言近年来,随着国民经济的迅速增长,私家车已经进入寻常百姓家,随之而来的就是城市车辆数量的迅速增加,同时带来的还有一个不可忽视的问题交通的运行能力能否承受住这种新的考验。事实表明,现在各大中城市交通的运行能力都在大幅下降,北京、上海这些大型城市的交通负载更是接近饱和。因此如何提高城市交通的负载能力,也就是一个急需解决的问题。鉴于上述原因,根据实际交通路口的情况,积极采取高科技现代化方法和手段,改善城区的交通条件,对促进经济发展,改善投资环境,提高全社会精神文明建设将具有积极的作用。本课题就是用java技术来完成跨平台的电子交通模拟器开发,实现对交通路口的实况模拟,并定时记录路口各方向的车流量大小,从记录的信息中可以了解到一段时间内该路口的运行情况。本系统的开发可以真实的模拟交通路口的状况,通过较为有好的可视化界面(而不仅仅是简单的后台程序模拟)从而可以直观的看到交通路口的运行情况。更为重要的是,从本系统提供的记录信息中可以了解到该路口实时的车流量情况,并可以通过对信息的分析与研究找出解决交通问题的方案,从而能够大大提高现代城市交通的运行能力,以缓解城市的交通压力。第一章 概述1.1 电子交通模拟器概述1.1.1 电子交通模拟器的概念电子交通模拟器就是一个基于C/S架构,采用Java技术进行开发,用于模拟交通实况的客户端程序。1.1.2 电子交通模拟器的功能描述电子交通模拟器的主要功能有:(1)模拟现实中交通路口的各种情况;(2)实现各个方向发出车量的可参数输入;(3)实时记录路口的车流量情况,以便日后对该路口的运行能力进行分析与研究,从而找出合理的解决方案。1.2 技术及开发工具概述1.2.1 JAVA概述Java语言是一种很优秀的语言,具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中极为健壮的编程语言。Java确确实实具备了“一旦写成处处可用”的特点。之所以称Java为革命性编程语言,是因为传统的软件往往与具体的实现环境有关,一旦环境有所变化就需要对软件作一番改动,耗时费力,而Java编写的软件能在执行代码上兼容。这样,只要计算机提供了Java解释器,Java编写的软件就能在其上运行。现将JAVA语言的特点介绍如下:(1)简单 Java最初是为家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java的风格类似于C+,因而C+程序员是非常熟悉的。从某种意义上讲,Java语言是C及C+语言的一个变种,因此,C+程序员可以很快就掌握Java编程技术。并且Java摒弃了C+中容易引发程序错误的地方,如指针和内存管理。(2)面向对象面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似于C语言那样面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。基于对象的编程更符合人的思维模式,使人们更容易理解,更容易编写程序。(3)分布式Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。为分布环境尤其是Internet提供动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使我们很容易地实现这项目标。 (4)健壮 Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。除此之外,Java还提供了Null指针检测数组边界检测异常出口字节代码校验。这些功能特征大大缩短了开发Java应用程序的周期更提高了系统的健壮性。 (5)安全Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C+功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。Java语言在机器上执行前,要经过很多次的测试。从而提高系统的安全性。(6)可移植性 与平台无关是Java语言最大的优势。其他语言编写的程序面临的一个主要问题就是操作系统的变化、处理器升级以及核心系统资源的变化,这些因素都可能导致程序出现错误或无法运行。Java虚拟机成功的解决了这个问题,Java编写的程序可以在任何安装了Java虚拟机(JVM)的计算机上正确运行,它真正的实现了编程语言一次编译,处处运行。(7)解释执行 Java解释器直接对 Java字节码进行解释执行。字节码本身携带了许多编译时信息 ,使得连接过程更加简单。(8)高性能 和其它解释执行的语言不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码 ,从而得到较高的性能。(9)多线程Java的特点之一就是内置对多线程的支持。多线程允许同时完成多个任务。多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。(10)动态性Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且 Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。Java程序的基本组成单元就是类。有些类是自己编定的,有些类是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分布环境中动态的维护程序及类库。1.2.2 JDBC概述JDBC是一种可用于执行SQL语句的JavaAPI(Application Programming Interface,应用程序设计接口)。它由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员和数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问Oracle,写另一个程序访问MySQL,再写一个程序访问SQL Server。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“一次编写,处处运行”。Java具有健壮、安全、易用等特性,而且支持自动网上下载,本质上是一种很好的数据库应用的编程语言。它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。1.2.3 Eclipse概述Eclipse最初是IBM公司的一个产品,2001年11月其1.0版本正式发布,面世之初, Eclipse还很不起眼,并饱受业界批评,到2003年3月,Eclipse发布了它的2.1版本,立刻引起了轰动,下载的人蜂拥而至,导致它的下载服务器都因超载而堵塞了。现在IBM将投入巨资开发的Eclipse作为一个开源项目捐给了开源组织E。Eclipse出色而有独创性的平台特性,吸引了众多大公司加入到Eclipse这个平台的发展上来,包括HP,Oracle,Sybase,Borland,RedHat,Rational Software等。Eclipse的技术特征与优势:Eclipse是一种通用工具平台,它提供了功能丰富的开发环境,该环境允许开发者高效的创建一些能够无缝集成到Eclipse平台中的工具。Eclipse的设计思想是:一切皆为插件。Eclipse的核心非常小,其他所有的功能都是以插件的形式附加到这个Eclipse核心之上,这样的功能插件包括它的插件开发环境(简称PDE)等等,而且Eclipse还对这些插件的协同工作提供了良好的支持,不仅安装简单,而且可以无缝结合。Eclipse对这些插件是动态载入动态调用的,所谓动态就是,Eclipse启动后要用到这个插件时,这个插件才会被调入内存的,当它不再使用后,它又会在适当的时候被清除内存。即使你安装了一大堆插件在Eclipse中,你也不会担心某些不用的插件白白占着内存。Eclipse有极为强大的集成开发环境,它集成了CVS,JUnit和Ant。因为Eclipse的安装包集成了java开发环境的插件JDK,所以Eclipse默认是一个Java的开发工具。但Eclipse不仅仅只是Java的开发工具,我们只需安装C/C+的插件(简称CDT),就可以把它当作一个C/C+开发工具来使用。只要有相应的插件,我们也可以用Eclipse来做其他语言的开发工具。1.3 系统开发环境概述1.3.1 硬件环境acer品牌机内存:1GCPU:Inter Celeron CPU 2.80GHz1.3.2 软件环境操作系统:Linux开发工具及相关技术:MyEclipse、Java(Swing,Thread,JDBC.)第二章 系统分析2.1 需求分析现代社会的快速节奏,给各个城市的交通都带来了前所未有的考验,因此能够利用有限的资源,在有限的时间内来缓解城市的交通压力,就变的犹为重要。该系统的开发,在市政规划、交通运输业、道路建设等方面的数据搜集、分析和建设方案的解决方面具有广泛的应用价值。同时,本系统对城市交叉路口在不同环境下的通行能力进行仿真,为交通管理和规划提供决策支持,同时也为解决城市交通问题提供有力的帮助。2.2 可行性分析2.2.1 技术可行性分析该系统是一个C/S架构的客房端运行程序,使用现在较为流行的JAVA技术为基础进行开发,其中包含了Swing,Thread,JDBC等多种相关技术,这些技术经过多年的发展,现阶段已经比较成熟。很适合于作为该系统的技术选型。同时开发者对这些技术也有一定的了解,也能较好的运用这些技术,这些条件都使得本系统在技术方面的可行性较高。2.2.2 经济可行性分析该系统为本科毕业生的毕业设计题目,其目的也并不是用于商业销售,而只是让毕业生对电子交通有一个深入的了解,使开发者自身的综合编程能力得以提高。因此该系统的开发只需要有一台满足开发所要的基本配置以及装有相应开发软件的PC机即可,不需要额外的经费,因此该系统在经济方面是可行的。2.3 详细分析2.3.1 业务流程分析该系统主要模拟交通路口的实际情况,因此要尽可能的考虑到实际交通路口的会发生的情况。并对这些可能发生的情况进行相应的业务操作,从而控制整个系统的运行。2.3.2 数据流程分析交通路口的主要数据便是车流量,定时的记录该路口的车流量需要的便是日志的支持。通过记录日志,来记录某一个时间段内该路口的车流量。以便为日后解决该路口的交通问题提供数据支持。第三章 系统设计3.1 总体设计3.1.1 系统设计目的与任务系统设计目的:近年来,随着现代城市的交通压力越来越大,如何通过有效的记录相关数据,并通过科学的分析与研究,以提出较好的解决方案就是一个急需解决的问题。本系统就是实现一个跨平台的电子交通模拟器的开发,实现对交通路口的实况模拟,可查询历史记录,为解决交通问题提供数据支持。系统设计任务:设计一个跨平台的电子交通模拟器,支持多任务,历史记录查询,可参数输入。实现对交通路口的实况模拟。3.1.2 开发设计思想本系统将较为流行的JAVA技术作为开发的技术选型。要实现对交通路况的模拟,便需要采用JAVA中的Swing来模拟交通路口,来实现简单的路口描绘。除此之外还要采用Thread来实现多任务,以模拟多个车辆。同时还需要一个Thread类来模拟交通信号灯的变化。在这些的基础上,为了更好的封装系统,还需要用到用户登录,以提高系统的安全性,在这部分也就需要使用JDBC技术,来实现和数据库的交互。3.1.3 系统模块设计在进行了初步的系统分析之后,本系统将采用模块化的开发方式,这样做的目的是为了提高系统的可维护性以及系统的可扩展性。本系统主要包括以下模块:登录模块:更好的封装系统,提高系统的安全性。配置模块:实例化其他模块,降低模块之间的耦合度。模拟模块:负责模拟运行电子交通逻辑与实况。备份模块:负责所有交通记录的备份。3.2 详细设计3.2.1 数据库设计本系统的数据库设计相对较为简单,只是实现一个模拟用户的登录,以来控制本系统的访问权限,由于这部分并不是该系统设计的主要部分,所以只需要一张用户表。虽然只用到一张表,但本系统还是采用了现在市场占有率比较大的Oracle作为系统的后台数据库。Oracle能提供非常高的安全性,这使得用户可以放心的使用Oracle提供的各项服务,与此同时,它还提供了独一无二的PL/SQL,这种语言只能在Oracle下使用,它能很好的整合系统,使得对数据库的操作更加简捷。用户表结构如表3-1:表3-1 用户表User表字段名类型描述标识IDNumber主键唯一标识NameVarchar2非空用户名PasswordVarchar2非空密码3.2.2 代码设计本系统主要是实现对交通路口的模拟,因此需要采用JAVA中的Swing技术,其原理就是要写一个类来继承JComponent类,在该类中,要重写父类的paintComponent(Graphics g)方法,从而获得“画笔”,进行路面描绘。在车辆模拟的实现上则需要用到Thread技术,以实现多任务,来模拟多个车辆,不仅如此,也要在这部分代码中获得“画笔”,这样才能将多线程的实现反应在Swing界面上,从而更直观的看到车辆的行驶情况,而不是仅仅在后台看到线程的情况。与此同时,还需要另外一个线程类,来模拟交通灯的变化,与车辆的实现一样,开发者仍然需要通过“画笔”把交通灯的变化,反应在界面上。还需说明一点的是,车辆的线程需要受到交通灯线程的控制。在备份模块的实现上,则需要用到I/O流的知识,通过对流的控制来实现对车流量的记录,同时在系统运行时,也需要实时的查出车流量的记录。除此之外,在登录模块还需要编写一个类来使用JDBC技术,以实现同数据库的交互。总结以上所述:系统总体需要一个登录界面,一个程序运行的系统界面。在登录界面中需要用户输入用户名和密码,如果从数据库中找到对应记录允许用户访问系统界面,如没有与之相对应的记录,则提示相应的信息。在用户登录成功之后,便可以访问该系统。在系统界面的实现上,则需要一个用以模拟交通的界面,并在其中提供一些可供输入参数以及查看记录的相关操作按钮,从而对系统进行操作,以模拟实况交通。3.2.3 类的设计根据本系统的模块划分,以及各个模块的功能,将本系统类的设计与模块相结合,具体类的设计如下:(1)登录模块:类名:Login类图如图3-1所示:图3-1 Login类图类的功能:该类主要负责和数据库的交互,在该类中需要使用JDBC技术,这就要求在该系统所在的工程导入Oracle公司提供的ojdbc.jar文件,使用其提供的API,以实现和数据库交互的功能。与此同时,在该类中,还要对登录过程中可能出现的各种情况进行判断以及做出相应的处理。还有一个非常重要的部分,那就是该类要使用单例模式,即构造器私有,在类外不能实例化该类的对象,这样设计的目的是为了更好的实现封装,但更主要的目的还是为了系统的整体设计。(2)模拟模块:类名:RoadCanvas类图如图3-2所示:图3-2 RoadCanvas类图类的功能:该类需要模拟描绘出实际的交通路口,同时还要对交通灯进行控制,所以该类需要实现runable接口,并且继承JPanel类。实现runable接口是为了实现线程,用线程来控制交通灯的变化时间。而继承JPanel类,则是为了重写paintComponent(Graphics g)方法以绘出交通路口。该类同时还需要对写日志的时机进行控制,以及提供向本类的两个实例变量car1,car2中增加元素的方法。同时该类也需要设计为单例模式。类名:Car类图如图3-3所示:图3-3 Car类图类的功能:该类主要实现的就是对每一辆车的描绘。在类中有两个实例变量,flag和status。这两个变量是用来描述车的状态信息的。flag代表的是车子行驶的方向,它有三个值,0代表左转,1代表直行,2代表右转。status代表的是车子发出的车道,该系统将一个十字路的八条发车车道,由最左下的车道开始逆时针排序,它们对应的status值分别是0-7。每辆车都有这两个属性,这样就可以模拟车在十字路口的实际行驶情况了。为了使系统更好的运行,系统还对车的行驶状态进行限制,即在左方车道(即status值为0,2,4,6)时只能左转和直行,在右方车道(即status值为1,3,5,7)时只能右转和直行。这样就使系统的不会有特别混乱情况发生。该类中move方法就是来模拟车辆的坐标移动。draw()方法则是对车辆的实时描绘。类名:CarThread类图如图3-4所示:图3-4 CarThread类图类的功能:该类被设计为与Car类成为组合模式,即在调用该类构造方法的时候实例化本类的实例变量,Car类型的c。这样就将本类与Car类绑定,从而实现多线程。来模拟在系统中,可以多辆车同时行驶。类名:CarFrame类图如图3-5所示:图3-5 CarFrame类图类的功能:该类实际上是本系统的主界面,它继承了JFrame类。在类中主要设计一些逻辑功能按钮,用来处发相应的事件,每个按钮注册有相应的事件监听器,当按钮按下时,就会处发相应的事件,事件监听器会捕获事件进行相应的处理。同时该类也设计为单例模式。(3)配置模块:类名:Config类图如图3-6所示:图3-6 Config类图类的功能:该类主要是提供一些静态方法,用来实例化其它模块。以降低系统的耦合度。(4)备份模块:类名:Log类图如图3-7所示:图3-7 Log类图类的功能:该类需要提供一些与本地文件交互的方法,用来记录和读取记录。实例变量path是日志在本地对应的存放路径。该类需要使用I/O流的相关技术,来实现与文件的交互。同时本类也要设计为单例模式。除以上所述的类之外,系统还需要使用两个类DBUtil,IOUtil,用来关闭相应的资源。第四章 系统实现4.1 登录模块的实现实现思想:为了降低系统模块间的耦合度,本系统多次用到了单例模式,单例模式有两种实现方式,一种是“饿汉式”,另外一种是“懒汉式”。两种方式并无优劣之分,只是在实例化本类实例的时机上有所差别。本系统的设计采用“懒汉式”来实现单例。在访问数据库时,系统采用了JDBC技术,通过利用Oracle提供的jar包中的相关类,以实现注册驱动、创建连接、发送SQL语句等工作,从而安全高效的实现与数据库的交互。同时,登录模块需要对用户的身份进行验证,这就涉及到对用户的一些提示信息。在实现时,该类使用了JOptionPane类中的一些静态方法,从而很好的解决了这一问题。登录运行界面如图4-1所示:图4-1 登录界面相关提示信息界面如图4-2、4-3、4-4、4-5所示:图4-2 用户名为空图4-3 密码为空图4-4 登录错误图4-5 登录成功4.2 模拟模块的实现Car类实现思想:该类的两个方法draw(),move()是模拟车辆在道路上的行驶。在draw()方法内需要对车辆的车道以及行驶方向进行判断,并在红灯时,设置车辆的停车时间。其中有一点需要说明,就是当前方是红灯时,如果车辆是右转车辆,并且该车辆前方在停车线上没有停止的车辆时,该车不会停止,而是正常右转。这也是为了更真实的模拟交通路口而设计的。在move()方法中,主要是通过获得车辆的行驶状态(即车道和行驶方向)对车辆在道路上的行驶进行控制,也就是控制车辆的坐标变化。该类中还用到了多个list,来记录当红灯时,在停车线后等待的车的数量,以设置其后方车辆的停车时间。CarThread类实现思想:该类是与每一个Car类对象绑定,即每一个Car类对象都有一个CarThread类的对象与其一一对应。这样就可以实现多线程的并发访问,以模拟多辆车的并发行驶。本类继承了Thread类,在run()方法内需要定时调用Car类的move()方法,来实时模拟车辆的行驶。同时还要在run()方法内设置当车辆遇到红灯时需要的停车时间。CarFrame类实现思想:该类是系统的主界面,在该类中,用Swing技术来实现系统界面的构建。在其构造方法中初始化了各个需要使用的功能按钮,并且也使用了很多匿名内部类,来实现按钮的相关功能。其中,在指定发车的按钮上,系统还使用到了定时器技术,用以控制发车的时间间隔,否则当指定发出多辆车时,多个车辆会叠加行驶,这是系统不希望出现的情况。RoadCanvas类实现思想:该类主要是用来用“画笔”来描绘出车道、停车线等各种路面元素,并将其添加到CarFrame类的构造函数中。同时在本类中还提供了一个静态变量i,通过继承线程类,在run方法中对i值进行改变。从而通过在paintComponent方法中对i值的判断来控制交通灯的变化时间,在paintComponent()方法里还需要在调用Car类move方法的时候,将“画笔”传给每一个Car类的对象(即调用Car类对象的方法时,传递相应的参数),以模拟出车辆在界面上的行驶。同时在该类中也提供了几个add方法,用以将来自不同方向的车,加入到不同的车辆集合中,为备份模块的相关操作提供有力的帮助。相关运行界面:主界面如图4-6所示:图4-6 系统主界面刚进入系统时点击查看日志如图4-7所示:图4-7 无日志信息点击关于系统按钮如图4-8所示:图4-8 系统信息点击随机发车按钮如图4-9所示:图4-9 随机发车点击南北发车按钮如图4-10所示:图4-10 南北发车点击东西发车按钮如图4-11所示:图4-11 东西发车点击指定发车按钮如图4-12所示:图4-12 指定发车1输入南北方向发出5辆车,点击确定后如图4-13所示:图4-13 指定发车2当遇到红灯时,如该车前方没有停车,并且它是右转车辆,则会正常行驶,图4-14中用红线标注的车辆就是右转的车辆:图4-14 红灯右转当红绿灯变化后,点击查看日志按钮如图4-15所示:图4-15 查看日志点击关闭系统按钮如图4-16所示:图4-16 关闭系统4.3 配置模块的实现实现思想:在本类中,定义了一些静态的getXXX()方法,这些方法的返回值是指定类的类型。这些方法需要通过调用相应类的newInstance方法,以获得其类的实例对象,并将其返回。如果要在程序中实例化其它模块类的对象,则必须通过Config类的类名来调用其相应的get方法,以获得相应类的实例对象,从而降低了本系统的耦合度,提高系统的可扩展性。4.4 备份模块的实现实现思想:在用流与本地文件交互时,需要考虑的是存取的记录的格式,由于在写日志时需要记录的是中文,所以备份模块在实现时采用的是适合对中文操作的Reader和Writer。这样就使得与文件的交互更容易,也更方便,从而提高了系统的效率。第五章 系统测试5.1 系统测试的目的和原则在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。本系统的开发力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。测试的目的就是在软件投入生产运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。尽管面向对象技术的基本思想保证了软件应该有更高的质量,但无论采用什么样的编程技术,编程人员的错误都是不可避免的,而且由于面向对象技术开发的软件代码重用率高,更需要严格测试,避免错误的繁衍。因此,软件测试在面向对象编程里更具有它的重要性。5.2 系统测试的方法(1)黑盒法如果已经知道了软件应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,我们把它称为黑盒测试。对于软件测试而言,黑盒测试是把程序看成一个黑盒子,完全不考虑程序内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明的规定正常的使用,程序是否能够适当的接收输入数据产生正确的输出信息,黑盒测试又称为功能测试。(2)白盒法与黑盒测试相反,白盒测试是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试又称为结构测试。5.3本系统的测试对于开发出的电子交通模拟器来说,它并不是一个特别复杂的系统,因此本系统采用了黑盒测试法进行测试。它只检查程序功能是否按照系统设计要求那样正常使用,程序是否能按照用户的相关操作正常运行。同时也对系统做了相关的压力测试,从而得知系统的并发访问能力。通过对本系统进行的以上几个功能测试,本系统在整体上符合要求,其操作流程也相当的清晰、方便、易懂。测试也起到了很好的效果。结论经过近三个月的时间,电子交通模拟器已经基本开发完成,并通过了相关的测试,其功能与最初的系统设计思想基本相同。通过测试,该系统能够满足用户的需求,同时本系统也具备了友好性、灵活性和可靠性,实现了预期目标和功能。本系统共分为四个模块:登录模块,配置模块,模拟模块,备份模块。登录模块主要是对系统进行封装,通过控制系统的访问权限,来提高该系统的安全性。配置模块是根据系统的需要,通过本模块来实例化其它模块,以降低系统各模块间的耦合度。而系统的主要实现则是通过模拟模块来完成的,该模块主要实现了对交通路口、车辆、交通灯等多种交通元素的模拟。备份模块则是对模拟模块功能的一个加强和补充,该模块实现了对记录的实时存储和读取,使得本系统的功能更为完善。通过模块化的开发,使得该系统的结构更加清晰,同时也使本系统更容易扩展和维护。虽然如此,但本系统还是存在一些不足。如当系统并发访问量过大或设备条件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年氢燃料电池测试设备验证方案
- 智慧茶园自动采摘机租赁管理服务续费管理2025年的合同协议
- 2025年国际汉语教师证书考试汉语教学与文化教学融合试卷及答案
- 记账实操-小企业成本核算方法
- 护理与医院文化建设
- 2026年电子元器件制造外包合同
- 排泄护理的继续教育
- 护理课件模板下载分享
- 母婴护理教学背景图
- 2025年元宇宙场景架构师的技术培训课程设计与教学方法
- 南昌市市属国有企业2026年上半年招聘【293人】笔试参考题库及答案解析
- 2026年教师资格证(小学)《教育教学知识与能力》真题及答案解析
- 重庆一中高2026届高三5月三诊考试英语+答案
- 2026年苏科版(新教材)小学信息技术六年级下册(全册)同步练习及答案
- 2026年全民营养周-营养餐桌+家庭健康课件
- 中国脑卒中二级预防指南(2025年版)
- 冠心病的三级预防及康复治疗和社区管理要求
- 景观园林植物废弃物资源化利用(课堂PPT)
- 商业银行经营与管理
- 汽轮机灵活性运行-PPT课件
- 新建铁路施工图桥涵专业设计细则
评论
0/150
提交评论