已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
天津职业技术师范大学TIANJINUNIVERSITYOFTECHNOLOGYANDEDUCATION毕业论文基于S2SH的城市公交查询系统车次、站点及换乘查询和ODURBANPUBLICTRANSPORTQUERYSYSTEMBASEDONS2SHTRIPS,SITEANDTRANSFERINQUIRIESANDOD专业班级软件0901学生姓名指导教师学院信息技术工程学院2013年6月摘要今城市改造日益加快,公交线路也不断增多,使得交通的便捷性难上加难,给出行人员选择出行乘车线路造成一定的困难,特别是在旅游城市,游客在乘公交车时选择线路比较困难,它不仅可以给市民游客的乘车提供向导,同时可以对外展现城市的现代风貌,体现出一个城市公交信息数字化和信息化的发展水平。所以本系统拥有非常成熟的市场。该公交路线查询系统采用JAVA、JSP作为前台的应用程序开发语言、采用DIVCSS布局进一步美化页面。利用MYSQL创建后台的数据库,在MYECLIPSE100的开发环境下采用S2SHSTRUTS2HIBERNATESPRING整合框架技术进行开发,三层MVC结构提高了系统扩展性和易维护性。从而实现了六大功能查询功能、OD调查分析功能、用户登录注册功能、用户个人中心、车次管理和公告管理。该公交路线查询系统,旨在利用需要建立一个以高效的公交数据库为基础的、面向公交线路的在线公交车线路查询系统。关键字公交路线查询系统;S2SH框架;OD调查ABSTRACTTHISURBANTRANSFORMATIONEVERACCELERATING,BUSLINESHAVECONTINUEDTOINCREASE,MAKINGTHECONVENIENCEOFTRANSPORTATIONEVENMOREDIFFICULTTOTRAVELERSCHOOSETOTRAVELBYCARLINEMAYCAUSESOMEDIFFICULTY,ESPECIALLYINTHETOURISTCITY,TOURISTSBUSLINECOMPARISONDIFFICULTIES,ITCANNOTONLYRIDETOTHEPUBLICVISITORSWIZARDCANBEGINTOSHOWTHEMODERNSTYLEOFTHECITY,REFLECTINGTHELEVELOFACITYBUSDIGITIZATIONOFINFORMATIONANDTHEDEVELOPMENTOFINFORMATIONTECHNOLOGYSOTHESYSTEMHASAVERYMATUREMARKETTHEBUSROUTEQUERYSYSTEMUSINGJAVA,JSPASAFOREGROUNDAPPLICATIONDEVELOPMENTLANGUAGE,DIVCSSLAYOUTFURTHERBEAUTIFYTHEPAGEMYSQLTOCREATEABACKGROUNDDATABASEDEVELOPMENTENVIRONMENTINMYECLIPSE100S2SHSTRUTS2HIBERNATESPRINGINTEGRATIONFRAMEWORKTECHNOLOGYDEVELOPMENTTHETHREEMVCSTRUCTURETOIMPROVETHESYSTEMSCALABILITYANDEASEOFMAINTENANCEINORDERTOACHIEVETHESIXFUNCTIONSQUERYFUNCTION,THEODINVESTIGATIONANDANALYSISFUNCTIONS,USERLOGINREGISTRATIONFUNCTION,THEUSERSPERSONALCENTER,TRAINMANAGEMENTANDANNOUNCEMENTSMANAGEMENTTHEBUSROUTEINQUIRYSYSTEM,DESIGNEDTOTAKEADVANTAGEOFTHENEEDTOESTABLISHANEFFICIENTPUBLICTRANSPORTDATABASEBASED,ONLINEBUSLINEQUERYSYSTEMFORBUSLINESKEYWORDSTHEBUSROUTEQUERYTHESYSTEMS2SHFRAMEWORKODSURVEY目录1绪论111项目背景112课题内容113课题意义与目的22系统的开发工具和关键技术321开发与运行环境3211MYECLIPSE103212TOMCAT603213MYSQL60322相关技术4221STRUTS2框架4222HIBERNATE框架4223SPRING框架53需求分析631功能需求6311查询功能6312OD管理6313功能用例732性能需求7321系统处理的准确性和及时性7322系统的开方性和可扩充性8323系统的易用性和易维护性8324系统的响应速度84系统设计941系统框架设计942系统功能图943数据库的设计10431概念模型设计10432逻辑结构设计135系统的详细设计与实现1651查询功能的设计和实现16511车次查询的设计和实现16512站点查询的设计和实现17513换乘查询的设计和实现1852OD模块的设计和实现20521用户OD调查的设计和实现20522后台OD生成的设计和实现206测试2261概念和意义2262单元测试2263本系统测试描述24总结25参考文献36致谢371绪论11项目背景随着城市日新月异的发展,城市的规模不断扩大。为了满足发展的需要,城市公共交通运输的覆盖面越来越广,公交线路也日渐增多,成为绝大多数出行者的首选方式。这在给人们的出行带来了极大便利的同时。但是随着公交系统的庞大,人们很难得到准确的公交信息,这样给一些人的出行就带来了不便。因此,急需一个方便、快捷的公交信息查询方式。本系统通过浏览器查询,实现中心控制、自动更新、更多的查询方式等等更多更强大的功能。西方国家对这一点重视的较早,如美国、日本、加拿大、英国、法国等国家都投入了较大的人力和物力从事智能公共交通系统研究,并已取得了显著的成果,建立了一种在公交网络的基础上,运用计算机网络技术、数据库技术、通信技术、电子技术、智能卡技术等先进科学技术,形成集智能化调度、公交电子收费、信息服务、网络通信于一体的公共交通规划管理系统。其中的公共交通优化系统对公交线网布局、公交线路配置、站点布置、发车间隔确定、票价制定等进行设计和优化,从规划方面提高公交服务水平。而我国城市公交乘客信息系统的发展处还于一个落后的水平,公交信息的完整性和准确性得不到保证,而且还没有专门的机构负责信息的发布和管理。乘客可以获得的公交信息很少,而且获取方式以常规手段为主,一般获得公交信息的方式局限于电话,交通图,向熟人问讯等常规方式,获得线路、站点等基本信息。另外乘客出行过程中获得信息困难,除少数几个城市乘客可以通过分布于城市中的若干电子站牌获得些公交车辆的运营信急以外,在其它城市,“出行中”的乘客无法获得仟何信息。所以从国内公交信息与规划的发展需求和国外发展趋来看,需要建立一个以高效的公交数据库为基础的、面向公交线路的在线公交车线路查询系统。12课题内容我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,为了解决这种问题,加快发展城市公交信息化,设计一个城市公交查询系统是具有一定实际应用意义的。本系统采用了功能强大的JAVA语言与MYSQL数据库的完美结合,提供用户一个完全开放的查询平台。管理员经过统一身份认证后可以对公交线路及站点进行添加、删除、修改等功能。用户进入相关页面后可以根据个人需要进行站点换乘查询、公交线路查询、公交站点查询功能。本系统包含六大功能查询功能、OD调查分析功能、用户登录注册功能、用户个人中心、车次管理和公告管理。本文实现了系统的两大功能查询功能和OD调查分析功能。模块与模块之间存在很强的逻辑关系,是按照对客户关系的管理的流程而设计。例如查询功能中含有车次查寻、站点查询和换成查询。这些查询帮助用户更快地寻找到合适的路线。OD调查分析功能根据来自用户的数据分析出该站点的OD矩阵信息为公交规划提供依据。13课题意义与目的公交查询系统是近两年出现的新生事物,每个城市的发展状况也是良莠不齐。目前的公交查询系统,基本上具备一下功能采用车站站点查询、车次查询、站至站查询三种查询形式,不仅能够查询到各条线路的起止点,同时还能够分析出换乘车辆情况。OD调查可以帮助弄清交通源和交通源之间的关系,获取道路网上交通流的构成、流量、流向、车辆起讫点,从而推求目标年的交通量,为交通规划等工作提供基础数据;为调整和改善道路系统功能,从系统和政策上对近远期工程项目排序提供依据;客观分析评价交通出行特征,特别是公交服务水平,为提高公交运行效率、制定相关政策提供依据。2系统的开发工具和关键技术这一阶段主要描述系统的开发工具、运行环境和相关技术。21开发与运行环境本系统利用MYECLIPSE10为后台代码的开发工具,APACHETOMCAT6035为运行服务器,MYSQL5530作为后台的数据库管理。211MYECLIPSE10MYECLIPSE10版本使用最高级的桌面和WEB开发技术,包括HTML5和JAVAEE6,支持JPA20、JSF20、ECLIPSELINK21以及OPENJPA20它是功能丰富的JAVAEE集成开发环境,包括了完备的编码、调试、测试和发布功能。完整支持HTML、STRUTS2、JSP、CSS、JAVASCRIPT、SPRING、SQL和HIBERNATE。212TOMCAT60TOMCAT是APACHE软件基金会(APACHESOFTWAREFOUNDATION)的JAKARTA项目中的一个核心项目,由APACHE、SUN和其他一些公司及个人共同开发而成。由于有了SUN的参与和支持,最新的SERVLET和JSP规范总是能在TOMCAT中得到体现,TOMCAT6支持最新的SERVLET30和JSP20规范。因为TOMCAT技术先进、性能稳定,而且免费,因而深受JAVA爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的WEB应用服务器。TOMCAT很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。TOMCAT是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。213MYSQL55MYSQL是一个关系型数据库管理系统,由瑞典MYSQLAB公司开发,目前属于ORACLE公司。MYSQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MYSQL的SQL语言是用于访问数据库的最常用标准化语言。MYSQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MYSQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和APACHE可组成良好的开发环境。为多种编程语言提供了API。这些编程语言包括C、C、PYTHON、JAVA、PERL、PHP、EIFFEL、RUBY和TCL等。提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的SHIFT_JIS等都可以用作数据表名和数据列名。22相关技术本系统采用S2SH(STRUTS2SPRINGHIBERNATE)整合框架技术进行开发,它也是本系统的关键技术,下面对三个框架进行介绍。221STRUTS2框架STRUTS2是在WEBWORK这个框架基础上发展起来的,它不是STRUTS1的升级,它在实现原理和编程应用上与STRUTS1都完全不同,可以说是彻底抛弃了STRUTS1的架构。虽然WEBWORK在设计上却是要比STRUTS1先进,但由于用户习惯问题,所以很难被普及,只有挂羊头卖狗肉才会被市场逐步接受,基于这些原因,WEBWORK开发团队与STRUTS1开发团队开始合作,借STRUTS1之名,行WEBWORK之实,推出了STRUTS2。STRUTS2相比STRUTS1的劣势STRUTS1是老牌框架,应用很广泛,有很好的群众基础,开发人员比较好招,项目开发的风险小,成本更低STRUTS2虽然基于WEBWORK框架,但是应用人群虽多,相对不成熟,未知的风险和变化还很多,开发人员相对不好招,使用它开发项目的风险系数更大,用人成本更高STRUTS2相比STRUTS1的优势STRUTS2毕竟是站在前辈的基础设计出来,它会改善和完善STRUTS1中的一些缺陷,STRUTS1中的一些悬而未决问题在STRUTS2得到了解决。当表示层有了MVC模式,程序开发就会变得有章可循。222HIBERNATE框架HIBERNATE是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得JAVA程序员可以随心所欲的使用对象编程思维来操纵数据库。HIBERNATE可以应用在任何使用JDBC的场合,既可以在JAVA的客户端程序使用,也可以在SERVLET/JSP的WEB应用中使用,最具革命意义的是,HIBERNATE可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。HIBERNATE中提供了两级CACHE,第一级别的缓存是SESSION级别的缓存,它是属于事务范围的缓存。这一级别的缓存由HIBERNATE管理的,一般情况下无需进行干预;第二级别的缓存是SESSIONFACTORY级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。HIBERNATE还为查询结果提供了一个查询缓存,它依赖于第二级缓存。223SPRING框架SPRING是一个开源框架,是为了解决企业应用程序开发复杂性由RODJOHNSON创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。SPRING使用基本的JAVABEAN来完成以前只可能由EJB完成的事情。然而,SPRING的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何JAVA应用都可以从SPRING中受益5。SPRING有如下的特点1方便解耦,简化开发通过SPRING提供的IOC容器,我们可以将对象之间的依赖关系交由SPRING进行控制,避免硬编码所造成的过度程序耦合。有了SPRING,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。2AOP编程的支持通过SPRING提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。3声明式事务的支持在SPRING中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。4方便程序的测试可以用非容器依赖的编程方式进行几乎所有的测试工作,在SPRING里,测试不再是昂贵的操作,而是随手可做的事情。5方便集成各种优秀框架SPRING不排斥各种优秀的开源框架,相反,SPRING可以降低各种框架的使用难度,SPRING提供了对各种优秀框架(如STRUTS,HIBERNATE)等的直接支持。6降低JAVAEEAPI的使用难度SPRING对很多难用的JAVAEEAPI(如JDBC,远程调用等)提供了一个薄薄的封装层,通过SPRING的简易封装,这些JAVAEEAPI的使用难度大为降低。7JAVA源码是经典学习范例SPRING的源码设计精妙、结构清晰。SPRING框架源码无疑是JAVA技术的最佳实践范例。如果想在短时间内迅速提高自己的JAVA技术水平和应用开发水平,学习和研究SPRING源码将会使你收到意想不到的效果。3需求分析需求分析阶段基本任务是准确地回答“系统必须做什么”这个问题。下面对系统进行功能需求和性能需求分析,确定系统功能。31功能需求城市公交查询系统为了能够为公司创造更多的财富,我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少。为了解决这种问题加快发展城市公交信息化设计一个城市公交查询系统是具有一定实际应用意义的。本文在本系统中涉及了查询功能、OD管理两个功能模块。下面对这两个功能模块进行需求分析。311查询功能查询功能是整个系统的核心功能,良好的查询算法是提高性能的必要的方式,可以极大提高用户的体验和减少系统的压力。1站点查询通过站定可以得到经过此站点的所有车次和其详细信息。2车次查询输入相应的车次信息,可以获得该车次的详细信息。3换乘查询可以查询直达车、一次换乘车和二次换乘车。一个良好的城市内部交通,最多只要经过两次换乘就可以从一个地点到达另一个地点,所以能够实现两次换成就可以了。本系统便实现到了二次换乘。312OD管理公交出行空间分布的客流OD矩阵是城市公共交通线网布设和优化的基本依据。传统公交OD调查方法是在乘客上车时发放调查表格,按照自己的出行起终点如实填写表格,然后在下车时回收表格。这在实际操作时有些困难,因此本系统采用网上调查的方式进行OD调查,是的OD调查更急便捷。313功能用例32性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,城市公交查询系统应该满足以下的性能需求321系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。由于公交查询系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而车票数量和时间又影响企业的决策活动,其准确性很大程度上决定了公交查询系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。322系统的开放性和系统的可扩充性公交查询系统在开发过程中,应该充分考虑以后的可扩充性。例如网上查询的用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。323系统的易用性和易维护性公交查询系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。公交查询系统中涉及到的数据是公交公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。324系统的响应速度公交查询系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。4系统设计41系统框架设计在B/S这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(BROWSER)实现,但是主要事务逻辑在服务器端(SERVER)实现,形成所谓三层3TIER结构,大多数或主要的业务逻辑都存在在服务器端,因此,B/S结构的系统不需要安装客户端软件,它运行在客户端的浏览器之上,系统升级或维护时只需更新服务器端软件即可,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。B/S结构系统的产生为系统面对无限未知用户提供了可能。以目前的技术看,局域网建立B/S结构的网络应用,并通过INTERNET/INTRANET模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。系统在实施过程中,表现层使用STRUTS,负责页面数据提取,页面动作相应;业务层使用SPRING,主要负责业务逻辑的对象创建,表示层的ACTION的创建,以及持久层的DAO的创建;HIBERNATE负责把内存中的数据对象保存到数据库中,完成数据持久化的重任。由于SSH框架是采用J2EE平台技术封装出来的可复用的软件开发框架,主要的目的是提高软件的可扩展性、可维护性和复用性,并能提高软件的开发效率。42系统功能图该图清楚的表现了系统所能够实现的功能,如图42所示。本人在本系统中涉及了查询功能和OD管理两个功能模块。公交查询系统用户管理注册和登录修改个人密码收藏管理关注管理发表留言查看留言删除留言留言管理站点查询查询管理车次查询换乘查询OD管理用户OD调查后台OD生成车次管理线路管理车次管理邮件通知公告管理发布公告修改公告图41系统功能图43数据库的设计431概念模型设计概念模型是对信息世界建模,所以概念模型应该能够方便、准确的表示出信息世界中的常用概念。概念模型的使用方法很多,其中最为著名的是PPSCHEN于1976年提出的实体联系方法,该方法用ER图来描述现实世界的概念模型。通过对本文涉及的查询功能和OD管理这两大模块的需求分析,现列出了该系统的局部ER图和各个实体图车次实体、站点实体等。图42数据库SCHEMA站点名称附近地区站点编号站点、图43站点实体图44车次实体图45用户实体图46管理员实体频率夏季发车时间票价夏季停车时间车次冬季发车时间车次编号冬季停车时间昵称密码用户邮箱用户密码管理员编号管理员用户邮箱关注车次编号图47关注实体图48收藏实体图49公告实体图410即时动态实体432逻辑结构设计1关系模式站点(站点编号,站点名称,附近地区)车次(车次编号,夏季发车时间,夏季停车时间,冬季发车时间,冬季停车时间,区间,发车时间间隔,票价)车次站点(车次编号,站点编号,站点顺序)用户(用户邮箱,昵称,密码)用户邮箱终点站编号起始站编号收藏公告编号管理员编号发布时间公告内容公告主题公告动态编号发布时间留言动态内容用户邮箱管理员(管理员编号,密码)关注(用户邮箱,车次编号)收藏(用户邮箱,起始站编号,终点站编号)公告表(公告编号,公告主题,公告内容,发布时间,管理员编号)留言表(留言编号,用户邮箱,留言内容,发布时间)OD(车次编号,用户邮箱,起始站编号,终点站编号,频率)2关系模式的实现表41站点表STOP字段名字段中文名数据类型长度可否为空ID站点编号INT10NAME站点名称VARCHAR20NEAR附近地区VARCHAR100YES42车次表LINE字段名字段中文名数据类型长度可否为空ID车次编号VARCHAR10SSTIME夏季发车时间DATETIMESETIME夏季停车时间DATETIMEWSTIME冬季发车时间DATETIMEWETIME冬季停车时间DATETIMEREGION区间VARCHAR50FRE发车时间间隔VARCHAR2PRICE票价DOUBLE表43车次站点表LINE_STOP字段名字段中文名数据类型长度可否为空LINE_ID车次编号VARCHAR10STOP_ID站点编号INT10SEQ此线站点次序INT表44用户表USER字段名字段中文名数据类型长度可否为空EMAIL用户邮箱VARRCHAR50NICKNAME昵称VARCHAR50PASSWORD密码VARCHAR50表45公告表NOTICE字段名字段中文数据类型长度可否为空ID公告编号INT10THEME公告主题VARCHAR50CONTEXT公告内容NVARCHAR500DATE发布时间DATETIMEJOBNU管理员编号VARCHAR50表46收藏表COLLECTION表47留言动态表ACTIVITY_FEED字段名字段中文名数据类型长度可否为空ID留言编号INT10EMAIL用户邮箱VARCHAR50CONTEXT留言内容VARCHAR500DATE发布时间DATE4表48OD表OD_SURVEY字段名字段中文名数据类型长度可否为空LINE_ID车次编号VARCHAR10EMAIL用户邮箱VARCHAR50OSTOP_ID起始站编号INT10DSTOP_ID终点站编号INT10FRE月乘车次数INT10表49关注表ATTENTION字段名字段中文名数据类型长度可否为空EMAIL用户邮箱VARCHAR50字段名字段中文名数据类型长度可否为空EMAIL用户邮箱VARCHAR50OSTOP_ID起始站编号INT10DSTOP_ID终点站编号INT10LINE_ID车次编号VARCHAR50表410管理员表ADMIN字段名字段中文名数据类型长度可否为空JOBNU管理员编号VARCHAR10PASSWORD密码VARCHAR505系统的详细设计与实现这一阶段的根本目标是确定怎样具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而把这个描述用程序实现出来。下面对本文实现的两个模块进行详细设计与实现。51查询功能的设计与实现查询功能块分为车次查询、站点查询和换乘查询。其中换乘查询包括直达车查询、一次换乘查询和二次换乘查询,可实现模糊查询和关联点查询。首页INDEXJSP即为查询页。511车次查询的设计与实现用户进入首页后,选择“车次查询”标签。输入相应的车次信息如“001”路公交车,即可输入“001”即可查询001路公交车的详细信息。车次查询界面如图51所示图51车次查询界面001路公交车查询成功时如图52所示009路公交车查询失败时如图53所示图53车次查询失败界面车次查询的流程图NY实现车次查询功能的主要是从LINE表获得车次的信息和从LINE_STOP表中获得其关联站点的信息,及站点在此车次的中的次序信息。STRINGHQL“FROMLINESTOPLSWHERELSLINEID“ID“ORDERBYLSSEQ“LISTLINESTOPLISTLISTBASEDAOQUERYHQLRETURNLINESTOPLIST图52车次查询成功界面开始显示结果查询车次输入要查询车次结束512站点查询的设计与实现选择“站点查询”标签输入想要查询的站点信息即可。站点查询界面如图54所示图54站点查询界面B站点查询成功的如图55所示Z站点查询失败如图56所示图56站点查询失败界面站点查询流程图NY实现站点查询功能的主要是从LINE_STOP表中根据站点信息获得车次的信息,再遍历所有的车次信息从LINE_STOP表中获得其关联站点的信息,便可得到经过目标站点的所有车次的详细信息。代码如下STRINGHQL“FROMLINESTOPLSWHERELSSTOPNAMELIKE“NAME“图55站点查询成功界面结束开始显示结果查询站点输入要查询站点LISTLINESTOPLISTLISTBASEDAOQUERYHQLRETURNLINESTOPLISTSTRINGHQL“FROMLINESTOPLSWHERELSLINEID“ID“ORDERBYLSSEQ“LISTLINESTOPLISTLISTBASEDAOQUERYHQLRETURNLINESTOPLISTLLLSNEWARRAYLIST/遍历得到站点的得到车次的名称FORLINESTOPLINESTOPLLSLLLSADDLINESTOPSERVICEGETSTOPBYLINEIDLINESTOPGETLINEGETID513换乘查询的设计与实现在首页选择“换乘查询”标签输入想要查询的起始站点和目的站点的信息即可。换乘查询界面如图57所示如查询B站点到K站点的路线信息结果如图58所示换乘查询流程图图57站点查询成功界面图58换乘查询成功界面结束开始显示结果查询路线输入要起始站点NY换成查询包括直达车查询、一次换乘和二次换乘并包含模糊查询,以及如何选出最短路径。具体实现如下直达线路可以根据两个站点名获取两个站点各自的ID,这里定义为SID,EID。分别求出经过两个站点的车次的集合,这两个集合的交集就是直达路线的集合列表。代码如下STRINGHQL“SELECTLSAFROMLINESTOPLSA,LINESTOPLSBWHERELSASTOPID“SID“ANDLSBSTOPID“EID“ANDLSALINEIDLSBLINEID“一次换乘首先可以根据两个站点名获取两个站点各自的ID,这里定义为SID,EID。然后查找两个站点通过直达方式各自能够到达的站点集合,最后他们的交集就是换乘站点。查到换乘站点,在通过直达线路的查询方式,便可获得详细的线路信息。代码如下STRINGHQL1“SELECTLS1STOPFROMLINESTOPLS1WHERELS1LINEINSELECTLS11LINEFROMLINESTOPLS11WHERELS11STOPID“SID“STRINGHQL2“SELECTLS2STOPFROMLINESTOPLS2WHERELS2LINEINSELECTLS22LINEFROMLINESTOPLS22WHERELS22STOPID“EID“STRINGHQL3“SELECTDISTINCTLS3STOPFROMLINESTOPLS3,LINESTOPLS4WHERELS3STOPIN“HQL1“ANDLS4STOPIN“HQL2“ANDLS3STOPIDLS4STOPID“二次换乘可以根据两个站点名获取两个站点各自的ID,这里定义为SID,EID算法的中心思想是站点SID能够通过直达到达的所有站点集合S,站点EID能够通过直达到达的所有站点集合E,S和E之间有直达的线路。这样子我们找到了作为中间换乘的线路,对列举的的每一条假设命名为X线,下一步就是找出可以从站点SID到达X任意一个站点的直达线路、和可以从站点EID到达X任意一个站点的直达线路即可。那么与前面的算法相似,我们在站点1所有能够到达的站点中去寻找和线路X相交的站点,然后再去找这两个点的线路找到站点了,下面就是根据已经解决的直达查询找线路了。代码如下/得到经过起点的路线STRINGHQL1“SELECTLS1LINEFROMLINESTOPLS1WHERELS1STOPID“SID/得到经过终点的路线STRINGHQL2“SELECTLS2LINEFROMLINESTOPLS2WHERELS2STOPID“EID/得到经过起点的路线所有站点的集合STOPS1STRINGHQL3“SELECTDISTINCTLS3STOPFROMLINESTOPLS3WHERELS3LINEIN“HQL1“/得到经过终点的路线所有站点的集合STOPS2STRINGHQL4“SELECTDISTINCTLS4STOPFROMLINESTOPLS4WHERELS4LINEIN“HQL2“/经过集合STOPS1所有站点的路线集合LINES1STRINGHQL5“SELECTDISTINCTLS5LINEFROMLINESTOPLS5WHERELS5STOPIN“HQL3“/经过集合STOPS2所有站点的路线集合LINES2STRINGHQL6“SELECTDISTINCTLS6LINEFROMLINESTOPLS6WHERELS6STOPIN“HQL4“/从集合LINES1和集合LINES2中找到ID相同的LINE即为中间LINESTRINGHQL7“SELECTDISTINCTLS7LINEFROMLINESTOPLS7,LINESTOPLS8WHERELS7LINEIN“HQL5“ANDLS8LINEIN“HQL6“ANDLS7LINEIDLS8LINEID“得到最短路径是通过实现接口COMPARABLE的COMPARETO方法实现的。52OD模块的设计与实现OD的实现分为两部分,第一部分在用户的个人中心中选择“参与OD调查”进入OD调查界面,可以根个人情况填写简单的OD调查内容即可。第二部分在后台管理界面,管理员点击OD调查结果,选择相应的车次,便可查看相应车次的OD情况。521用户OD调查的设计与实现用户端的参与OD调查页面,界面如图58所示图58OD调查界面乘车区间的选择通过是通过选择不同的路线以AJAX的方式从后台获取,可以避免输入错误的站点信息。可在ODSURVEYJSP中查看前台代码。在ODACTIONJAVA查看后台代码。用户OD调查流程图图58OD调查界面522后台OD生成的设计与实现管理员在后台可以选择想要查看的车次,便可生成该车次的OD矩阵,为城市公交的规划提供一些参考。如查看001路公交车的OD情况,便看选择001。产生结果开始用户登录进入个人中心进入OD调查录入数据,保存保存如图59所示图59001路公交车OD矩阵结果图查看OD流程图实现保存处理OD生成功能的后台代码在ODACTION类中的RESULT方法,该方法首先将该车次的所有站点查询出来,在一次遍历这些站点。在OD_SURVEY表中根据车次信息个站点信息便可以得到相应的发生量和吸引量。再将矩阵存入二维数组即可。具体代码如下LSLINESTOPSERVICEGETSTOPBYLINEIDLINEIDODITEMSNEWARRAYLISTINTNLSSIZE/长度;ODNEWINTN1N1/构造OD矩阵表FORINTI0IN1I/从I站点出发INTOIDLSGETIGETSTOPGETIDFORINTJI1JNJ/到J站点INTDIDLSGETJGETSTOPGETIDODIJODSERVICEGETODLINEID,OID,DID/从I点上车到J点下车的人数ODINODIJ/从I点上车的总人数FORINTI1INIFORINTJ0JIJODNIODJIFORINTI0IN1IODNNODINFORINTI0INI开始进入OD管理选择要查看车次的OD显示结果结束STRINGNAMELSGETIGETSTOPGETNAME“LSGETIGETSTOPGETID“ODITEMSADDNEWODITEMNAME,ODIODITEMNEWODITEM“XR“,ODN6测试软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。61概念和意义测试的概念程序测试是为了发现错误而执行程序的过程。测试TESTING的任务与目的可以描述为目的是发现程序的错误;任务是通过在计算机上执行程序,暴露程序中潜在的错误。测试的意义1)系统测试的环境是软件真实运行环境的最逼真模拟。系统测试中,各部分研制完成的真实设备逐渐替代了模拟器,是软件从未有过的运行环境。有关真实性的一类错误,包括外围设备接口、输入/输出、或多处理器设备之间的接口不相容,整个系统的时序匹配等,在这种运行环境下能得到比较全面的暴露。2)通常系统测试的困难在于不容易从系统目标直接生成测试用例。而系统测试由系统人员组织,从系统完成任务的角度测试,软件在系统测试下获得了系统任务下直接的“测试实例”,这对检验软件是否满足系统任务要求是非常有意义的。62单元测试单元测试(UNITTESTING),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,JAVA里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。下面进行部分测试用例。1站点查询测试用例如表61所示。2车次查询测试用例如表62所示。3换乘查询测试用例如表63所示。4OD调查测试用例如表64所示。表61站点查询测试用例编制人甘一蒙测试名称站点查询测试用例测试目的成功查询出含有该站点的车次测试条件说明用户查询站点测试步骤输入要查询的站点名称。点击查询,如果存在则显示正确结果。要是不存在则输出查询的站点不存在。期待输出结果显示符合查询条件的含有该站点车次信息实际输出结果显示符合查询条件的含有该站点车次信息测试结果通过不通过无法测试测试人员甘一蒙测试时间201368表62车次查询测试用例编制人甘一蒙测试名称车次查询测试用例测试目的成功查询出含有该车次,显示详细信息测试条件说明用户查询车次测试步骤输入要查询的车次名称。点击查询,如果存在则输出正确结果。要是不存在则输出查询的车次不存在。期待输出结果显示符合查询条件的车次详细信息实际输出结果显示符合查询条件的车次详细信息测试结果通过不通过无法测试测试人员甘一蒙测试时间201368表63换乘查询测试用例编制人甘一蒙测试名称换乘查询测试用例测试目的成功、正确地查询出两点间的路线测试条件说明用户查询两站点间的路线测试步骤输入要查询的起始站点和目的站点,点击查询。如果存在乘车路线,则输出正确结果。要是不存在则输出路线不存在。期待输出结果显示符合查询条件的乘车详细信息实际输出结果显示符合查询条件的乘车详细信息测试结果通过不通过无法测试测试人员甘一蒙测试时间201368表64OD调查测试用例编制人甘一蒙测试名称OD调查测试用例测试目的成功、正确地输入OD信息测试条件说明用户输入OD信息测试步骤输入自己的乘车信息,提交即可。期待输出结果成功显示输入的OD信息实际输出结果成功显示输入的OD信息测试结果通过不通过无法测试测试人员甘一蒙测试时间20136863本系统测试描述为了让公交查询系统能够更稳定畅快的运行,系统进行了很多黑盒测试和白盒测试来确定系统的不足和需要弥补的地方。首先是黑盒测试,让很多用户多次使用的本系统进行公交查询,然后记录下系统使用中的缺陷、用户的感受和需要改进的地方。对于系统的完善和用户体验有着很大的帮助其次是白盒测试,这些主要是开发人员在开发的过程中使用的各种白盒测试手段,如单元测试对系统的局部代码或功能进行测试。使得系统的在开发的过程中及时发现问题,及时修改。总结本系统设计的是以客户为中心而设计的客户关系管理系统。系统采用JAVA、JSP作为前台的应用程序开发语言、采用DIVCSS布局进一步美化页面。利用MYSQL创建后台的数据库,在MYECLIPSE100的开发环境下采用S2SH整合框架技术进行开发。本系统从实际需求出发,包含了查询功能、OD调查分析功能、用户登录注册功能、用户个人中心、车次管理和公告管理。在数据库设计方面,还有待改进,数据库设计也可采用别的形式,比如我可以用一个字段作为站点字段,另一个字段作为经过该站点的车次字段,我只要找到经过某个站点最多的车次,就可以设计该字段的类型以及长度。那么就可以避免因数据过长而被截断的问题了。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 几何简约实景高级服装销售模板
- 漳州市第四医院2025年招聘临时工作人员备考题库及完整答案详解1套
- 2025年浦城县医疗单位医疗类储备人才引进备考题库含答案详解
- 2025年库尔勒市国有资产经营有限公司所属子公司招聘6人备考题库及答案详解1套
- 2025年皖北煤电集团公司掘进工招聘备考题库及一套答案详解
- 读书分享《教育从看见孩子开始》课件-小学生主题班会
- 2025年资阳现代农业发展集团有限公司第三轮一般员工市场化招聘备考题库及答案详解一套
- 围棋段位布局试题及答案
- 2025年垫江县少年宫乒乓球教师招聘备考题库及1套参考答案详解
- 杭州市临安区卫健系统2026年公开招聘高层次、紧缺专业技术人才备考题库完整答案详解
- 2023年十堰市税务系统遴选笔试真题汇编附答案解析
- 康复科护士进修工作计划(范文)
- 科技预见与未来愿景 2049 中文版
- 浙江省诸暨市2025年12月高三诊断性考试化学(含答案)
- 恒温恒湿仓储管理操作流程规范
- 买期房草签合同范本
- 【生物】山东省济南市2024-2025学年高一上学期1月期末试题(解析版)
- 农民工工资专用账户管理补充协议
- 山东中考信息技术考试题库及答案
- 不良事件考试题(附答案)
- 【《基于JAVA的驾校管理系统设计与实现》9300字(论文)】
评论
0/150
提交评论