《基于.NET的公交查询系统的设计与实现毕业论文(29页).docx》由会员分享,可在线阅读,更多相关《基于.NET的公交查询系统的设计与实现毕业论文(29页).docx(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于.NET的公交查询系统的设计与实现毕业论文-第 20 页分类号 密级 U D C 编号 题 目 基于.NET的公交查询系统的设计与实现 院 系 计算机学院 专 业 名 称 计算机科学与技术 年 级 2011年级 学 生 姓 名 学 号 指 导 教 师 二 一 五 年 四 月论文原创性说明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。在搜集并学习了相关资料文献的前提下进行个人写作,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作
2、者签名:年 月 日文献综述概述随着人们生活水平的提高,人们出行可选择的交通工具的种类日益增加,交通工具的速度、舒适程度以及安全性都成为了人们选择的标准。家用轿车种类繁多,舒适度也相对较高,而且较其他交通工具更为方便、快捷,成为多数成功人士的首选,不可否认它是比较好的选择,但是,家用轿车的增加带来了很多问题。城市道路交通严重堵塞、空气污染日渐严重、交通事故多发等等,于是各大城市单双号限行的政策应用而生。此时,人们只能选择比较便利、快捷的公共交通。小到城镇,大到省会城市,公交车随处可见,对外来务工人员、学生、外派出差员工、自助旅游的游客等人来说,价格合理、出行便利的公交车成为首选。为了满足人们的出
3、行需求,公交车的数量也渐渐增加,而且公交车的线路也复杂多变,城市的改建使得公交站名更改或者消失,导致公交车的信息更新速度慢、更新信息的不准确,人们对于公交路线的信息掌握不够清楚,所以要找一条比较经济的乘车线路并非是一件容易的事。对此,开发一个方便快捷、便于人们操作的公交查询系统就很有必要,通过公交查询系统来找出一条合适的线路。该系统的设计是基于ASP.NET的B/S架构,B/S(浏览器/服务器)架构是在C/S的基础上提出的一种三层架构,它是特殊的C/S架构。但是相对于需要安装客户端的C/S来说,B/S的架构显然更有优势,对操作系统没有限制,只需要安装一个浏览器就可以了,能随时对公交的信息进行查
4、询,而且后期的系统升级维护成本相对较小,只要求更新服务器就可以同步更新所有使用者的“客户端”。主题不难看出,现在人们出行的主要交通工具就是公交车。由于公交系统的不断完善和发展,公交线路复杂多变,人们要选择一条合适的线路往往要进行大量的对比。即使浪费了时间,也未必能选出一条合适的线路。本次做的公交查询系统具备的功能包括:公交信息查询功能和管理员的后台信息管理功能。前者针对广大用户而设计,后者为了方便管理员的管理而设计。该系统基于ASP.NET、使用C#语言来进行设计的,除此之外SQL Server2008数据库。Visual Studio 2010用于生成XML Web Services、桌面应
5、用程序、ASP.NET Web应用程序和移动应用程序。提供了在开发、设计、调试XML Web Services、Web应用程序等所需要的工具。在设计之前需要对系统进行需求分析,从系统的需求、数据库需求进行分析,确定这些需求分析之后就可以着手进行系统设计了。系统的设计先分析系统具体要完成什么功能。由于系统涉及到的功能比较多,所以可以将系统模块化,划分成许多模块,每一个模块需要完成什么任务必须要明确,先完成模块的设计,然后将这些模块整合到一起即是一个完整的系统。系统包括主页面、公交信息页面、管理员登陆页面、查找页面、公交信息添加、修改、删除页面、最新动态页面等。系统的基本功能:(1)线路查询:乘客
6、输入公交车的线路进行查询。输入线路后点击查询,系统会显示出所查询的公交车会经过哪些站点,以及这些公交车的实时信息。同时系统支持不完整输入查询,若经过查找发现没有这些信息,则有一个返回提示。(2)站点查询:乘客输入公交车的站点名进行查询。输入站点名之后系统会对数据库中的数据进行排查,找出数据库中所有符合输入站点名的线路,并显示出来。同时系统支持不完整输入查询,如果查找不到输入站点则有一个返回提示。(3)站站查询:乘客输入起始站点名和目的地站点名进行查询,系统首先会在数据库中找出这两个站点所在的线路,判断这两个站点是否在同一个线路上即是否能直达,若不能直达,则给出换乘的方案。(4)线路管理:管理员
7、对公交车线路的信息进行添加、删除、修改等操作。(5)站点管理:主要实现对站点的添加,公交车经过的站点更改之后,需要及时对系统数据库中的信息进行更改。(6)新闻的管理:主要实现对最新动态的添加和删除。公交车的价格和路线有时候可能会更改,这时就需要后台发布消息,及早通知所有乘客。总结通过查阅资料,结合现实分析,该系统采用VS2010来创建首页面及其他页面,语言采用C#语言,数据库使用SQL Server 2008,由于还需要对数据库进行复杂的操作,所以还需使用ADO.NET,使用该系统的乘客不需要注册登录就可以进行查询,而要登陆管理员界面,则需要输入登录名和密码。为了提高处理信息的准确性和速度,则
8、要通过ADO访问数据库,做到准确、及时、快速的传递信息。同时为了便于操作,页面应该尽量设计的简单。参考文献1 徐燕华,孙红丽 Web程序设计 清华出版社 2010.1 45542 梁曦 张运涛 Visual C#.NET程序设计案例教程 浙江大学出版社 2012.6 50533 朱晔ASP.NET 第一步基于C#和ASP.NET2.0 清华大学出版社 2007.7 3013104 易磊 孟宪瑞ASP.NET 2.0经典教程C#篇 人民邮电出版社 2007.2 56605 郝刚 ASP.NET 2.0开发指南 人民邮电出版社 2006.5 1041216 张跃廷ASP.NET数据库系统开发案例精
9、选 人民邮电出版社 2007.1 46527 吕继迪 庞娅娟ASP程序开发范例宝典 人民邮电出版社 2009 29358 邵良彬 刘好增ASP.NET(C#)实践教程 清华大学出版社 2007.7 67789 张骏ADO.NET 数据库应用 开发机械工业出版社 2008.1 899510 赵洛育, C#从入门到精通 清华大学出版社 2012.6 657811 王珊, 萨师煊 数据库系统概论 高等教育出版社 2006 414712 郑阿奇, 刘启芬 SQL Server数据库教程 人民邮电出版社 2008 547913牟永敏 软件工程导论 清华大学出版社 2013.8 23123514张海藩 软
10、件工程 人民邮电出版社 2010.12 15016115陈明 实用软件工程基础 清华大学出版社2008 435416陈威佳 基于B/S架构的城市公交出行查询系统 中国知网 2011 17进 实时公交查询系统的优化设计和实现 中国论文网 2013.1 18蒋年德 一种改进的公交换乘算法的实现 电脑知识与技术 2007(14) 152219 实时公交信息下共线线路上的乘车方案选择行为预测 中国知网 2013.620田洪波,.马小虎 一种基于Web的公交车查询系统的设计与实现 维普 2010摘要随着计算机技术的发展,如今互联网已经成为人们交流与获取信息的重要途径之一。公交查询系统可以为人们的出行提供
11、可行的路线。该系统提供一个实时的查询功能,用户在浏览器进行查询时,利用GPS定位用户的位置,显示公交车还会经过几站到达用户所在的站点,根据用户查询的时间以及不同时间段的路况大概的估算出用户到达目的地的时间是多长。在查询的过程中如果不能直达,系统会为用户提供换乘的方案,显示出每个方案所需的时间是多少,然后从中为用户推荐一个最佳方案。这样做不仅可以提高公交线路的利用率、节省时间,而且对于人们的出行则更加便利。此系统是基于ASP.NET的B/S架构,以Microsoft SQL Server 2008作为数据库,使用的编程语言是C#。本系统主要完成的功能有两个:查询公交信息和管理公交信息,前者是针对
12、用户开放的,后者是由管理员管理的。其中查询公交信息的部分包含:站点、线路以及两站之间的查询等,管理公交信息包括:线路的添加以及删除、站点的管理、车辆信息的修改,最新动态的增加和删除。公交查询系统使公交的信息得到了更加完善的管理,不仅节约了管理工作的成本,而且提高了工作效率。关键词:公交系统查询、实时消息、最优方案AbstractWith the development of the computer technology, now the Internet has become one of the important ways for people to communicate and ac
13、quire information. The system provides a real-time query, query the user when using GPS in the browser, locate the users location, the bus will be displayed after a few station at the users site, according to the users query time and different time conditions probably estimate the user arrival time
14、is long. In the process of query if not directly, the system will provide the transfer scheme for the users, showing the time required for each project is how much, and then recommend a best scheme from the user. This system can improve the utilization rate of the bus line and save time, its conveni
15、ent for people. The development technology of the system adopt B/S framework based on .NET. The back-end chooses C# as its programming language. Using the database is Microsoft SQL Server 2008.This system main function includes search system and management system. The search system includes line inq
16、uiry, site inquiry, station and station inquiry. The management system includes the increase and delete of the trips, site management, vehicle parameter changes, the increase and delete of the latest .Bus information become more standardized and systematized by public transport query system. At the
17、same time saves management cost and improve work efficiency.Key Words: the Bus Search System, Real-time News, the Optimal Scheme of Bus System目录第1章 绪论11.1 课题研究的背景和意义11.2 项目开发的意义11.3 项目开发目标2第2章 相关技术的介绍32.1 webfrom32.2 C#42.3 数据库的使用42.4 AJAX技术42.5 实时性应用5第3章 需求分析83.1 系统需求分析83.2 数据库需求分析8第4章 系统概要设计104.1
18、查询系统的概述104.2 查询功能模块的划分114.3 查询系统流程设计124.4 查询系统公交换乘154.5 数据库的设计164.5.1 数据库技术164.5.2 数据库实体关系图174.5.3 数据库的主要表与结构20第5章 详细设计225.1 查询界面225.2 后台管理24第6章 测试286.1 测试应用程序286.2 测试步骤286.3 测试方法296.4 系统维护29第7章 总结30参考文献31致谢32第1章 绪论1.1 课题研究的背景和意义当代社会,经济与社会快速发展,人民生活水平普遍提高,于是出行便更加倾向于选择方便快捷的轿车。可以说私家车的增加是社会发展的一个必然结果,但是随
19、之而来的却是一系列不良的后果:城市中心在上下班高峰时期或者周末时会长时间的堵车,汽油等不可再生能源也急剧减少,城市的空气恶化等等。怎样解决私家车的增加带来的这些后果成为我们当前首要解决的问题之一。针对这一问题,许多城市规定了单双号限行的交通管理措施,鼓励人们乘坐公交车。大多数民众的首选是公交车,尤其是那些在外地出差或者上学而需要短暂停留的人们。但是在许多城市中,城市的扩建使得公交车辆和公交线路日益增多,城市的改建使得公交站名更改或者消失,导致公交车的信息更新速度慢、更新信息的不准确,人们对于公交路线的信息掌握不够清楚,而且公交的实时性不强,人们在出门的时候不知道自己要乘坐的公交什么时间到达起始
20、站点,什么时间到达目的地站点,不能根据公交到达的时间以及公交车行驶的时间来合理安排出门的时间,所以要找一条比较经济的乘车线路并非是一件容易的事。对此,开发一个方便快捷、便于人们操作的公交查询系统就很有必要,通过公交查询系统来找出一条合适的线路。公交车已经成为学生,外来务工人员,旅游人员等选择的交通工具,它的方便快捷已使它成为出行的首选。但是,随着城市的发展,公交线路越来越错综复杂,很多公交线路都重合,人们往往需要进行大量的对比以选择一条合适的线路。即使浪费了这么多不必要的时间,选择的线路也未必就是最合适的。而且,目前公交的查询系统还存在有一些问题,例如:查询系统更新较慢或者过于复杂,信息的准确
21、度不够高到不了目的地等等。1.2 项目开发的意义公交查询系统为人们的出行提供信息,使乘客出行更加方便的。该系统是实时查询的,根据乘客给出的起始站站名和目的地站名自动搜索出合适的乘车方案,直达时的乘车方案以及需要换乘车辆时具体乘坐方案,在较短的时间内为乘客提供一个有效的乘车方案。并且,公交查询系统为了方便管理人员的工作,还设有后台管理,管理人员可以通过后台操作对公交车辆以及公交线路的信息进行修改、添加、删除,提高工作效率,减少工作量。同时该系统还提供了有关公交的各种新闻,让人们及时快速的知道公交的新信息,避免因为对信息的不了解而造成的一些不良后果。特别是对于初到本市、对这个城市的情况还不是很了解
22、的乘客,可以使用公交查询系统使其可以对公交线路有快速且较为全面的了解,选择正确的公交线路。当下城市人口的数量急剧增加,生活水平提高,多数市民出行选择轿车,直接或间接的导致了交通道路堵塞。通过公交系统,人们能够对公交资源进行更充分的利用,不仅舒缓了交通压力同时还可以在一定程度上降低城市污染。1.3 项目开发目标公交查询系统的设计,希望能够功能完善,可操作性强,不论是管理者,还是用户,都能够通过这套查询管理系统进行操作,提高工作效率、节约人力成本、降低管理成本。使得公交信息的查询和更改能够更加的清晰明了。公交查询系统与市民的生活息息相关,能够将公交的信息做出一个完善的统计,是实现现代化信息管理不可
23、以缺少的必要条件。对公交信息能够方便、准确、快捷地查询,加速公共交通信息流的流动速度,为用户的选择提供了一个准确、迅速的数据基础。因此设计一个简单的、信息准确的系统是必要的。第2章 相关技术的介绍2.1 webfromASP.NET是一种web编辑框架,有三种开发模式,分别是:webpages、webfrom和MVC。该系统采用的是webfrom。webform项目包含使应用程序变得简单的控件和结构。ASP.NET提供了一些便于操作的服务器控件和类,方便了web页面的设计和后台程序的编程。它的页面可以使用两种不同的方式进行创建,即有单文件代码模型和后台代码模型,将界面的应用程序与后台的表示代码
24、清楚的分开,减少了程序员的工作量。作为一个 Web 开发平台,为开发人员提供了创建Web所需的服务。与此同时它还为应用程序提供了一个新的编程模型以及基础结构,以此提高了系统的稳定性、缩放性以及安全性。开发人员便能够根据应用程序的需求对方案进行不同程度的添加、替换、删除等操作。Webfrom的组成如图2-1所示:图2-1 webfrom的组成Webfrom的关系图如图2-1所示:图2-2 Webfrom的关系图2.2 C#C#是一种可面向对象进行设计的高级程序设计语言,为满足.NET的应用进而开发的语言。C#具备的特性:(1)C#是专为.NET平台而推出的,与.NET有很大的联系,从根本上保证了
25、C#与.NET框架的完美结合;(2)简洁的语法、不允许进行直接访问内存、去除了指针操作等等的特性使C#具有强大的安全机制,减少了软件开发中会遇到的一些常见的语法错误;(3)C#是面向对象的。C#提供了一个完善的错误处理机制,在其数据类型、异常处理等方面都有优越性;(4)C#语言中内置的版本控制功能,更方便开发和维护。2.3 数据库的使用SQL Server是一个关系型的数据库管理系统,具有使用方便、可伸缩性好等优点。SQL Server 2008以其新的特性和关键性的改进,使其成为比较全面的版本。SQL Server 2008具有高效、可信任、智能的特点,它可以保护系统以及客户的信息,可以在不
26、需要改动应用程序的前提下,对整个数据库、日志文件和数据文件进行加密,同时改进了数据库镜像,提供了更加可靠的数据库镜像平台。在该系统中,访问数据库时是通过ASP.NET中的ADO.NET实现的。它是ASP.NET中存取数据的数据库组件,先通过ADO.NET与SQL Server进行连接,再通过SQL命令的执行使得管理员可以在浏览器的页面上对数据进行一系列的操作。2.4 AJAX技术AJAX在对网页的某一个部分进行更新时不需要再次对整个网页进行加载,实现了网页的异步更新,从而减少了从服务器请求的信息,让应用程序小而快,值得注意的是AJAX并不是一种编程语言,而是一种用于创建动态网页的技术。AJAX
27、请求交互的步骤如图2-3所示:图2-3 AJAX的交互步骤如果以用户查询线路为例,那么步骤如下:当用户在输入框输入要查询的公交线路后,点击查询按钮,这时就会提交一个表单,然后调用JS;之后会创建一个XMLHttpRequest对象,使用查询按钮的ID和用户在输入框中输入的公交线路配置这个对象;接着向服务器发起请求,服务器收到请求后进行处理,将用户输入的公交线路与数据库存储的所有公交线路进行交互;处理这个请求的对象向浏览器返回一个符合用户请求的数据的文档,XMLHttpRequeest对象收到数据后,更新页面,将用户所需要的信息显示在浏览器的页面上。2.5 实时性应用该系统是具有实时性的,它的实
28、时性主要体现在了能对公交车进行定位,然后及时地将公交车的信息反映到用户的客户端(浏览器)上。对公交车的定位需要用到地图。百度地图API为开发者免费提供了地图的使用,它可以展现基本的地图,不仅能提供位置定位、目的地搜索、路线规划等服务,对于用户的请求反映速度较快,而且适用于pc端或者手机、平板等移动设备。它包括的开发工具有定位LBS云、SDK、Web服务API、Android SDK等。API里的地图实际上与网站的地图是类似的,同样具备根据比例缩小、放大、用鼠标进行拖拽、标记位置等功能。百度地图API的使用比较简单,根据开发指南会更容易学习。百度地图API主要提供了两大类型的服务:一种是地图的一
29、些基本功能,例如缩放地图、拖动地图、移动地图等;还有一种是地图的延伸功能,例如周边搜索、路线导航、实时路况等。API中比较常用的几个类:(1)核心类Map类是地图API的一个核心类,用来实例化一个地图。地图的初始化通过调用Map.center And Zoom()来实现(没有进行初始化的地图是不能操作的),API中的地图与浏览器端的百度地图的使用相似,可以用鼠标拖拽地图,双击左键放大。MapOptions类表示Map构造函数的可选参数,以对象字面量形式表示。(2)基础类Point表示一个地理坐标点,是基础类中比较重要的类,以指定的经、纬度创建一个地理点坐标;Pixel类表示地图上的一点,单位是
30、像素;Bounds类表示地理坐标的矩形区域,通过x,y轴对该区域进行描述,数值大的点和数值小的点分别位于该区域的右上角和左下角;Size类表示该区域的大小,用width、height两个属性分别描述区域水平方向和竖直方向的数值。(3)控件类ControlNavigation类是所有空间的基类,用来实现自定义控件。所有的空间基本上都包含了Control类的属性、方法,要将控件添加到地图上可以通过Map.addControl()的方法来实现。(4)覆盖物类Overlay类是所有覆盖物类的基类,该类的作用是在地图上添加有自己坐标的覆盖物,拖拽或者缩放地图是它也会跟着移动。(5)工具类PushpinT
31、ool类表示标注工具,通过这个类可以在地图上标记位置,通过这个工具提供的事件得到标记的位置;DistanceTool类可以用来测量距离,可以在地图上绘制两点之间的路线并测量它的长度;DragAndZoomTool类可以用来缩放地图。(6)服务类用来提供数据的信息。LocalSearch类用来进行周边、位置的搜索,可以通过地图、坐标、城市名进行检索,当参数是地图时,根据当前的地图的中心确定搜索位置,参数是坐标时,由坐标点确定搜索的位置,参数是城市名时,会在该城中搜索。TransitRoute、DrivingRoute和WalkingRoute这两个类分别是公交线路导航类、自助驾车导航类和步行的导
32、航类。API提供地图,还需要一个分析地图工具地理信息系统。地理信息系统是一种基于计算机的工具,属于空间信息系统特定的例子,能采集、管理、分析数据。负责定位功能的是GPS,利用定位卫星,在全球范围内进行定位、导航等,是全天候、全方位的。用户使用该系统时,设备是联网的,GPS对用户进行定位,将用户的地理位置反映到地图上,通过地理信息系统采集数据,接收到用户此时所处的位置,然后数据存储子系统对这些数据进行管理和储存,并对这些数据进行分析,通过类似的方式定位到公交车的位置,然后对这些信息进行计算,将结果通过系统告知用户。第3章 需求分析3.1 系统需求分析在开发项目的过程中需要对系统需求进行分析。开发
33、公交查询系统的目的主要是为了让出行更加方便,站在乘客的角度去思考他们所需要的是怎样的一个系统。便于他们查询,提供正确合理的出行路线,简单易操作等都是必须的,除此之外还要考虑到一些在城市里短暂停留以及刚到城市的人们,对公交线路和公交站名不熟悉,只知道线路或者某些站点,所以,站点的模糊查询就显得很重要。同时,对公交的信息进行一个合理的管理也是十分必要的。城市在发展,几乎每天都有站名更改,公交的线路也随着城市的扩建而更改,掌握不到这些信息,在出行的时候就会浪费不必要的金钱和时间,更可能误了一些对自己而言很重要的事,因小失大。这就需要掌握这些信息的人对系统中的信息进行及时的更新,例如:公交线路的添加、
34、删除,站点的修改、删除、添加等。所以将整个系统划分成若干个比较小的功能模块,了解每个模块应该实现的功能,然后整合这些模块,通过这样的方式来实现整个系统的功能。本系统将主要从下面4个方面来进行需求分析:(1)普通的访客不需要注册登陆也可以查询信息,其中包括:线路查询(可以知道公交所经过的站点)、站点查询(输入指定的地点得知经过该站点的公交线路)、换乘查询(不能直达而需要转车的)。(2)系统管理员可以对公交的信息进行更改,其中包括:管理员登陆,对公交线路进行添加、修改、删除,对公交参数进行添加、修改、删除,以及对最新动态的添加、删除等。(3)考虑到系统的安全性,只有管理员可以登陆到后台,对后台的数
35、据进行操作,而普通的访客只能进行查询(不需要注册登录)。(4)在操作方面,要尽可能的简洁明了、易于操作,界面应该一目了然。3.2 数据库需求分析在信息管理系统中,数据库是很重要的,数据库的优劣将会影响到数据存储的效率。可以指导我们设计一个正确的数据库系统。通过利用数据库技术的方法和原理,能够设计出一个适合的数据库系统。数据库管理员、数据库、数据库管理系统、应用程序以及相应的硬件设施能够组成一个完整的数据库系统。关系模型是数据库管理系统的重要组成部分,它是指由“若干关系模式”组合而成的集合。由于关系模式与记录类型相近,所以它的实例又被称为关系。用户要对数据库进行操作,只需要输入一些比较简单的查询
36、语句就可以了。在设计数据库的过程中,开发人员应注意数据的安全性,这样是为了避免泄露重要信息。在设计数据库系统之前,首先应该充分的了解用户现有的、将来可能增加的需求。第4章 系统概要设计4.1 查询系统的概述经过上一章的分析,系统“应该做什么”已经清楚了,概要设计亦是总体设计。设计软件结构是总体设计阶段的另一个任务,也就是确定在系统中,哪些模块可以组成一个程序,并且存在于这些模块之间的联系。这个阶段的主要任务是划分出系统设计软件的结构,从而对该系统进行一个总体的设计,根据前面第三章所描述的需求分析来确定这个系统应该是由哪些模块所组成的、每个模块的功能是什么、模块的功能又是如何实现的以及每个模块之
37、间有什么样的联系,将这些模块进行整合、调试,从而使系统实现所要求的功能,并且要容易掌握和操作。首先,要将系统进行模块化。模块化是指把一个比较大的程序划分成许多个可以独立命名、可以独立访问的小模块。而每个模块应该完成它所对应的功能,然后把这些小模块整合到一起构成一个完整的系统,从而满足客户的需求。将系统模块化可以使软件的结构更加清晰,使开发人员容易设计,也方便了用户阅读和理解。将系统模块化为的是使软件会更容易测试和调试:如果客户想要系统的功能进行变动,不用大范围的改动,只需要改动少数几个模块就可以了。这样做使得涉及的范围减小,而开发人员也更容易进行改动。因而为了提高软件的可靠性、可修改性,将系统
38、模块化就显得很有必要。其次就是通过抽象的思维,采用逐步求精的基本方法,更好地将模块的信息隐藏,使模块局部化、独立化。在设计和确定模块的时候,会有这种情况出现:一个模块内部包含了一些信息,但是对于其他的模块来说,它本身是不需要这些信息的,所以信息隐藏很好的解决了这个问题,将模块的信息隐藏,其他模块就不能对这个模块内部的信息进行访问。这样做很好的保护了模块内部的信息。局部化和信息隐藏这二者之间是有关联的。把一些关系相近的软件元素放的彼此靠近就是所谓的局部化。逐步求精、信息隐藏、模块化、抽象和局部化共同作用的直接结果即是模块独立,在划分模块时,模块的独立性越高越好。要使软件更容易开发就要求模块化是有
39、效的,而且独立的模块也比较方便进行维护和测试。模块的独立程度是由“内聚”和“耦合”来度量的。内聚高、耦合低,则模块的独立性高。4.2 查询功能模块的划分在公交查询系统中主要实现的是公交信息查询功能和管理员的后台信息管理功能,公交信息查询主要有的功能:(1)线路查询:乘客输入公交车的线路进行查询。输入线路后点击查询,系统会显示出所查询的公交车会经过哪些站点,公交上行、下行的路线以及这些公交车的实时信息。同时系统支持不完整输入查询,若经过查找发现没有这些信息,则有一个返回提示。(2)站点查询:乘客输入公交车的站点名进行查询。输入站点名之后系统会对数据库中的数据进行排查,找出数据库中所有符合输入站点
40、名的线路,并显示出来。同时系统支持不完整输入查询,如果查找不到输入站点则有一个返回提示。(3)站站查询:乘客输入起始站点名和目的地站点名进行查询,系统首先会在数据库中找出这两个站点所在的线路,判断这两个站点是否在同一个线路上即是否能直达,若不能直达,则给出换乘的方案。同时为了便于对公交信息进行更新与修正,还设有管理员登陆。在管理员登陆界面中输入用户名和密码进行登录,然后就可以对信息进行更改。乘客则无法登陆。后台管理主要有的功能:(1)线路管理:公交车线路的添加,添加信息包括线路名、发车时间等基本信息。(2)站点管理:站点信息的添加和更行,添加的信息包含车站名、线路名称及站点信息。(3)新闻的管
41、理:主要实现对最新动态的添加和删除。系统模块图如图4-1所示:图4-1 系统模块图4.3 查询系统流程设计在该系统中,最主要的功能就是公交信息的查询,包括线路的查询、站点的查询、站站之间的查询。在本系统中,用户可以直接进行查询,不需要注册登录。在这其中,查询公交信息时,最重要的功能是两站之间的查询。在站站查询的乘车方案中,用户输入起点站名和目的地站名后,查询后台的数据库找所有经过这两站点的线路,判断线路的交叉点是否为空,若为空则表示两个站点之间可以直达,若不为空则需要转乘。在站站查询中,有时候不能直接到达则需要换乘其他线路,用户输入起始站点和目的地站点后,查询时所有经过的起始站点的站名,然后判
42、断每一条公交路线上的所有站点是否与目的地站点有重合的,直到将公交路线上的所有站点查询完毕。若有某一个站点与目的地站点重合,则起始站点与目的地站点可以换乘。如果输入两地站名后,给出的信息表示两站之间是可以直达的,那么直达的算法流程如图4-2所示:图4-2 直达算法流程图若给出的结果是不能直达,需要进行换乘其他线路,那么转乘的算法的流程图如图4-3所示:图4-3 转乘算法流程图在用户的查询功能中,比较重要的一项功能是站站查询。用户在输入框输入起始站点名和目的地站点名后,由系统来判断能否直达,如果能够直达则提供直达线路,若不能直达,则查找换乘的方案,然后提供出转乘的线路。站站查询的流程图如图4-4所
43、示:图4-4 站站查询的算法流程图4.4 查询系统公交换乘公交线路是由多条线路组成的,一趟公交不可能走完所有的站点,当目的地与起始站点不在同一条线路上时就需要换乘。根据用户输入的起始站点X和目的地站点Y,确定要乘坐的公交。然后查找数据库,查询站点X和站点Y之间是否有同样的一趟公交经过,如果有则通过比较,提供给用户较为合理的公交线路。如果没有,则查询是否有一个公共站点Z在站点X和站点Y之间,先从站点X到站点Z,然后从站点Z到站点Y。首先得有三个表,分别是站名表(StationName)、线路编号表(LineNum)、线路表(LS),n表示输入的两个站点的编号。如果能够直达的话,在数据库中的查询如
44、下:select LineNum_n from(select LineNum_n from LS where StationName_n = n1) X,(select LineNum_n from LS where StationName_n = n2) Ywhere X.LineNum_n = Y.LineNum_n如果需要换乘,数据库会先查找这两个站点各自所在的线路,寻找线路中相同的站点,这个站点就作为换乘的车站select StationName_n from(select distinct StationName_n from LS where LineNum_n in (selec
45、t LineNum_n from LS where StationName_n = n1)X,(select distinct StationName_n from LS where LineNum_n in (select LineNum_n from LS where StationName_n = n2)Ywhere X.StationName_n=Y.StationName_n出行的最佳线路的算法:(1)在输入框中输入起始站点和目的地站点;(2)对数据库进行查询,经过起始站点的线路编号为A(m),经过目的地站点的线路编号为B(n),m与n都为正整数;(3)对A(m)和B(n)进行判断,
46、看二者是否相等,将满足的条件存入C中,如果C=1,则A(m)及B(n)为两点之间的最佳路线,如果C1,则计算C中给出的线路的距离,从中找出最短的一条;(4)对数据库进行查询,公交线路A(m)所经过的站点存为H(m,i),公交线路B(n)所包含的站点存为F(n,j),i和j均为正整数;(5)对H(m,i)和 F(n,j) 进行判断,看二者是否相等,将满足条件的存入Q中。若Q1,则站点X到站点Y的换乘站点是站点H(m,i)及F(n,j),换乘的最佳路线是A(m)和B(n),若Q1,那么对提供的所有的换乘线路的记录进行计算,从中选出最短的一条线路。4.5 数据库的设计4.5.1 数据库技术数据库技术
47、是一种数据管理技术,具有很高的效率,它可以保证数据的整体性。数据库技术具有合理的存储方式,它能够系统的存储相干的数据,具备了相对快速的查询效率。在整个系统设计中,数据库设计是重要的内容,数据库的好坏直接影响到系统的开发。对于给定的应用环境,数据库设计会构造出数据库逻辑模式,根据这个来建立系统的数据库,使数据库可以有效的存储、管理数据,在最大程度上满足了用户的需求。应用需求包括以下两方面:数据操作要求和信息管理要求。数据操作:对数据对象需要进行的操作,如:增加、删除、查询、更正、统计等操作。信息管理:在数据库中哪些数据对象是需要存储和管理的,例如:管理员的登录名和密码、车辆的信息等。数据库设计的目标就是为了给应用系统提供一个高效率的运行环境和信息的基础设施。一个高效率的运行环境包含:系统运行管理的效率、存储空间的利用率、数据的存储效率等,这些效率都要保证是比较高的。数据库的设计要和整个应用系统的设计结合起来,从而最大程度的