已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
20基于.NET的公交查询系统摘要:计算机技术不断发展,互联网成为现在社会人们信息交流与获取的重要途径之一。公交查询系统为市民解决出行线路的选择问题,提供最优的转乘方案,大大提高了公交线路的利用率。本文介绍的公交查询系统是基于.NET的B/S架构,后台编程语言采用C#,数据库使用Microsoft SQL Server 2005。主要实现查询模块与管理模块的两大功能,其中查询模块包括:线路查询、站点查询、站站查询,管理模块包括:线路管理、站点管理、站点次序管理。通过公交查询系统,实现了公交信息的规范系统化,使管理工作的成本、效率也有所改进。关键词:公交查询;B/S;ASP.NET;Microsoft SQL Server 20051引言1.1 研究背景随着社会经济的快速发展,城市规模越来越大,道路改建与家用汽车的普及。同时也带来交通堵塞拥挤、城市空气的污染以及交通事故的频繁发生等诸多问题,对市民的生活和工作影响很大。我们现在提倡低碳环保、绿色出行的生活理念,公共交通成为我们的首选。公共交通和其他交通方式相比具有人均占用道路少、能源消耗低、运输成本低以及客运量大等优点,可以解决城市交通拥堵问题 。公共交通无法比拟的强大优势也就越来越受到人们的广泛关注。在早期政府就明确提出了城市交通系统应以公共交通为主的发展方针,为公交事业的快速发展提供了保障。目前我国的公共交通方面仍处于需要大力的发展阶段并且存在着许多问题,主要有交通与道路发展的不平衡、交通管理设备的缺乏以及交通管理手段的落后即交通管理没有全面实施信息化,使得公共交通发展缓慢。由于公交乘车的不方便、准时性差、公交服务质量低,公交信息更新慢,市民对公交出行的吸引力渐渐减少。城市公交直接关系着城市的经济发展和居民生活,对城市经济具有全局性、先导性的影响。在现在的信息化时代,如何将信息和通讯技术用于传统的公共交通系统中,使公交系统真正实现智能化与信息化是现在公交发展的一个重要问题。1.2 开发意义对于开发本公交查询系统将会给市民的出行带来极大的方便,可以帮助他们有效查询选择到最省时、省钱的公交线路以到达目的地。公交查询系统还可以及时提供各种公交动态信息,以适应市民对公共交通信息的需求,提高公交出行对市民的吸引力。尤其是对于初到本市的旅游办公人员,使其可以对公交线路有快速了解,选择正确的公交线路。现在城市人口的数量庞大,出行拥挤,公交系统可以使公交资源得到更有效的利用,并且对缓解交通压力和降低城市污染也有重大意义。2相关技术介绍2.1 ASP.NET 3.5ASP.NET 3.5是微软公司推出的基于B/S模型的技术,用于构建动态Web应用程序的技术,是基于Web服务器的技术。ASP.NET 3.5对代码质量的严格控制,从而提高了Web应用程序的安全性、可管理性和扩展性。相比之前的ASP.NET 1.1与ASP.NET 2.0技术版本,ASP.NET 3.5也有了非常多的改进。采用ASP.NET3.5开发公交查询系统具有下列几个方面特点 1:(1)ASP.NET 3.5集成了AJAX框架,支持异步数据处理和页面的局部刷新。集成在.NET平台上,能够完成更负责的跨平台任务,更加简单化的创建标准的AJAX应用程序。(2)支持LINQ集成查询技术,可以提供用更简洁的代码实现复杂查询的功能。LINQ支持对象、数据库和泛型列表等查询。(3)引入了新的结构和模型,帮助开发人员完成向应用程序添加扩展的初始工作,确保开发的外接程序和扩展性。2.2 C#语言C#是一种简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言。C#语言是从C和C+演变而来,尽管借鉴了C和C+的许多东西。C#学习起来 要比C+容易得多,但比Java难一些。其设计与现代开发工具的适应性要比其他语言更高,它同时具有Visual Basic的易用性、高性能以及C+的低级内存访问性。使用C#语言开发公交查询系统主要是因为C#包括以下一些特性4:(1)C#是专为.NET应用而开发的语言,从根本上保证了C#与.NET框架的完美结合。在.NET运行库的支持下,.NET框架的各种优点在C#中得到体现。(2)语法简洁,不允许进行直接存取内存等不安全的操作,去掉了指针操作。有强大的安全机制,可以减少软件开发中的常见语法错误。(3)面向对象,具有封装、继承和多态特性。C#提供了完善的错误和异常处理机制,增强程序的应用性。C#语言在他的数据类型、垃圾回收、内存压缩、异常处理等诸多方面都有绝对的优越性。(4)与WEB紧密结合,C#支持绝大多数的WEB标准,如HTML、XML等。C#遵循.NET的公共语言规范,从而可以保证与其他语言开发的组件兼容。(5)灵活的版本处理技术,C#语言本身内置了版本控制功能,开发人员可以更容易的开发和维护。 尽管C#不能确保正确的版本控制,但是它可以为程序员保证版本控制成为可能。2.3 ADO.NETADO.NET提供一个统一的编程模式和一组公用的类来进行任何类型的数据访问,而不管用何种语言开发代码。数据共享使用者应用程序可又使用ADO.NET来连接到这些数据源,并检索、操作和更新数据。ADO.NET是以XML格式传递数据的。ADO.NET一个重要优点就是它是建立在.NET Framework之上的,可以通过任何基于.NET的编程语言直接无缝地使用ADO.NET 5。使用ADO.NET开发公交查询系统主要还包括以下几个特点:(1)支持断开连接,当数据被读入到数据集中后,可以在断开数据库连接的方式下,对数据集中的数据执行查询、添加、删除等操作,然后再返回到数据库中。(2)使用数据集存储从数据库中获取的数据,可以缓存在本地的内存中。(3)可以根据需要自动将数据库中的数据转换成XML文件,或将XML文件转换在数据库的数据。2.4 Microsoft Visual Studio 2008Visual Studio是目前最流行的Windows平台应用程序开发环境,使用的开发语言有Visual Basic、Visual C#和Visual C+。Visual Studio 2008更多的关注细节,拥有大量的快捷键,充分考虑了编程人员的习惯。并且提供了大量的新特性和新功能,大大提高了编程人员的工作效率。使用Visual Studio 2008开发公交查询系统主要是因为以下几个原因:(1)新的界面风格,提供新的分割视图,允许编辑HTML源代码并查看页面效果。(2)对层叠样式表的支持能力大大增强,并且控件的样式可以立刻显现出来,所见即所得。(3)支持嵌套母版页开发,客户端不再仅仅支持标准JavaScript的对象,而且能自动地显示那些自定义的变量和方法,更强的脚本调试功能。 (4)可以让用户体验到丰富的CSS编辑功能,较以前更加轻松地使用CSS。代码的智能感应有很大改进,支持多种脚本编写。2.5 Microsoft SQL Server 2005SQL Server 2005是在SQL Server 2000的基础上的改进,提供了强大的数据管理和分析的功能。SQL Server 2005在数据库核心做了相当大的改变,将.NET集成到数据库引擎中,因此开发人员除了可用原有的T-SQL语法进行开发之外,也可使用.NET语言。简易版是一个免费、易用且便于管理的数据库,它与Microsoft Visual Studio 2008集成在一起,可以轻松开发功能丰富、存储安全、可快速部署的数据驱动应用程序。使用SQL Server 2005开发公交查询系统主要是因为其具有以下开发特性:(1)使用SQL Server 2005,开发人员通过使用相似的语言,如Visual C#和Visual Basic,创立数据库对象。开发人员还将能够建立用户定义的类和集合这两个新的对象。 (2)不同应用软件之间传输数据的时候,可扩展标记语言(XML)是一个重要的标准。SQL Server 2005将会自身支持存储和查询可扩展标记语言文件。(3)使用ADO.NET 2.0 版本, SQL Server 2005中的ADO.NET将推动数据集的存取和操纵,实现更大的可升级性和灵活性。 (4)在安全方面,SQL Server 2005中的新安全模式将用户和对象分开,允许对数据存取进行更大的控制。另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。3系统分析与设计3.1 系统需求分析在开发项目的过程中,进行系统的需求分析是十分必要的,尤其是复杂性高规模大的系统开发。需求分析主要是在调查分析的基础上将非形式的需求转化为完整的需求定义,最终转换为功能说明。本系统主要是从以下几个方面进行需求分析:(1)普通的访客能够查询到所需的信息,包括具体的线路查询、对某一站点的查询以及对指定起点和终点的转乘查询。如:在查询功能中,用户输入要查询的车次等信息即可得出与它相关的结果。在站点查询中系统支持拼音检索的查询。(2)系统管理员能够对公交信息进行增加、删除和修改操作,主要包线路的管理、站点的管理、站点次序的管理和站点关联信息管理。管理员可以设置公交线路信息,能够对线路信息进行修改。如:实现对某一线路上站点的增加与删除。(3)在系统安全性方面,只有管理员才能对后台系统数据的操作,普通访客只允许查询操作(4)在使用操作方面,城市公交查询系统使用起来简单、方便、界面友好。3.2 可行性分析在进行了系统的需求分析后,明确了开发系统的功能和目标,就要进行可行性研究分析。可行性分析就是从社会因素、技术因素和经济因素三个方面对开发项目的必要性和实现目标的可能性进行分析。可行性分析的目的就是用最小的代价在尽可能短的时间内确定该项目是否能够开发,是否值得开发。以下分别从三个方面进行可行性分析:(1)技术可行性技术上的可行性分析主要是分析技术条件是否可以顺利完成开发工作,从硬件和软件两方面考虑能否满足开发需求。本查询系统以C#为编程开发的语言,Visual Studio 2008为开发环境,数据库采用Microsoft SQL Server 2005。在硬件方面,性能越来越高,价格越来越低,因此其硬件平台也可以完全能满足此系统的需要。 (2)社会可行性主要考虑所开发项目是否在一些社会问题,随着城市规模越来越大,道路改建与家用汽车的普及,如何减轻交通压力、提供省时的交通路线选择成为大多城市的发展前提。信息技术的发展与计算机的普及,使得公交查询系统的用户可以通过网络方便、快捷的查询到相应的公交信息,所以公交查询系统的实施是可行的。(3)经济可行性主要是对系统的经济效益进行评价,本系统作为毕业设计,无需开发经费。在硬件方面,开发本系统主要是个人使用笔记本完成。在软件方面使用的是免费的相关软件,包括Microsoft Visual Studio 2008、SQL Server 2005等。开发公交查询系统主要是可以为用户提供便利的公交查询方式,所以开发公交查询系统在经济上是可行的。3.3 公交信息分析公交系统由多条公交线路组成,而公交线路则包括多个站点。实际生活线路可以分成多种,在本公交查询系统主要讨论上下行站点一致的线路,这种线路也是城市公交线路的主要形式之一。在现实线路中,每一条线路都有其起始站点和终点站点,其中还包括许多其他途经的站点。在上下行一致的线路中,上行和下行线路只是行车的方向相反,经过的中间站点的相同。或者说上下行线路只是从起始站点至终点站点的站点顺序的不同。例如某一条线路上行经过的是起始站点1、站点2、站点3、站点4及终点站点5,则线路下行经过的站点是起始站点5、站点4、站点3、站点2及终点站点1。如图3.1线路上下行所示。 (起始)站点1 站点2 站点3 站点4 (终点)站点5上行 (终点)站点1 站点2 站点3 站点4 (起始)站点5下行图3.1 线路上下行在实际生活的换乘中,乘客有时是需要步行一段的。主要是在公交线路密集区域选择步行几十米可以找到更方便省时的乘车方案。如有以下三条公交线路,线路A经过的站点有:站点1、站点2、站点3、站点4,线路B经过的站点有:站点5、站点6、站点7,线路C经过的站点有:站点8、站点9、站点10,如图3.2所示。现在有乘客需要从站点2至站点7,如图可知并没有线路直接到达。但是站点2与站点6之间距离很近只要走几分钟便可到达,而站点6可以通过线路B直接到达目的地站点7,这样可以非常高效的利用了公交线路。 线路C 站点8 站点7 站点2 站点4 站点1 线路A 站点3 站点9 站点6 线路B 站点5 站点10图3.2 站点间的关联3.4 系统功能分析在本公交查询系统中主要实现一般访客的公交信息查询功能和系统管理员的后台信息管理功能,访客的公交信息查询主要包括以下几个功能:(1)线路查询:访客可以通过公交车线路名称查询公交线路信息包括上行和下行的信息,可以输入完整的公交车线路名称,也支持模糊查询,若查找不到也返回一个提示信息。如:要查询606路的线路详细信息,可以输入606路或606,点击查询按钮,便可查询到606路的上行和下行的详细信息。(2)站点查询:主要是访客通过公交站点名称查询到经过该站的公交车的信息,支持模糊查询,如果查找不到也返回一个提示信息。站点查询支持拼音检索,如:站点名火车站,当用户输入中央门的每个字的开头拼音“hcz”时系统也会查询到火车站的站点信息返回给用户。(3)站站查询:也就是换乘,主要是输入起始站点与终点站点的名称,查询两站之间的公交车乘车方案。是这三种查询中最复杂的,同时也是在三种查询中查询比例最大的一种公交查询。主要有三种,直达方案、一次换乘方案和一次以上次换乘方案。查询时先查找直达方案,若没有,则进行一次换乘方案,然后进行一次以上换乘方案查找,若查找不到则返回无结果提示。一般来说,换乘次数不大于二,否则无意义。为了方便对公交信息的更新与修改,系统提供了后台管理的管理员登录。在系统安全方面,只有管理员输入正确的用户名及密码才可以进入系统的后台管理。系统管理员的后台管理主要功能包括以下几个方面:(1)线路管理:可以实现线路的添加,添加信息包括:线路名、出发时间、到达时间、上下行及线路信息。编辑线路可以实现对线路信息的编辑与删除。(2)站点管理:主要实现对站点信息的添加,添加信息包括:站点名、所属线路及站点信息。编辑站点可以实现对站点信息的编辑与删除。(3)站点次序管理:主要实现站点在所属线路中次序的编辑。(4)管理员信息的管理:可以修改管理员的密码。(5)站点关联信息的管理:对某一站点的相关联站点可以实现编辑修改。3.5 换乘算法分析在公交系统中,每换乘一次就要多一次等待的时间。并且等待时间由于路状和高峰期不定,换乘次数越多等待时间也越长。同时每换乘一次也意味着费用的增加。对于不熟悉公交路线的市民,换乘次数越多,出错的机会就会增大,带来非常多的不便。访客在选择乘车方案时,会考虑自身的因素,并不一定固定选择某一种方案。所以本系统提供所有方案,供访客自己选择。在查找出发站点为A,目的站点B的换乘方案时,首先会查找是否直达,如果直达则直接提供直达线路。若有多条直达线路则全部输出。没有直达,则查找一次换乘的方案,全部输出供访客参考。若查找不到一次换乘,则继续查找二次换乘。在公交查询系统查找乘车方案时还考虑了站点的关联,所以公交乘车的算法比较复杂。3.5.1 直达在输入出发站点为A,目的站点B后,系统首先会通过查找线路站点信息判断是否直达。如果直达则直接提供直达线路,若有多条直达线路则全部输出。没有直达,则查找通过站点相关性是否有交集寻找其他直达方案。(1)通过线路站点信息有直接交集找出经过A的线路集合S(I)(I=1,2,3,m)m为整数,经过B的线路集合T(I)(I=1,2,3,n)n为整数,判断S(I)与T(I)的交集是否为空,若不为空,查找到了交集线路L。则A到B为直达线路。如图3.3直达方案1所示。 A B图3.3 直达方案1(2)通过站点关联有直接交集在站点A和站点B通过查找线路站点信息没有找到直达线路,则通过查找站点关联表找到与站点A、站点B相关联的站点,找到关联站点后判断是否可以直达,存在三种情况分别如下。通过查找站点关联表找到站点A的关联站点T,找出经过T的线路集合Q(I)(I=1,2,3,m)m为整数,经过B的线路集合T(I)(I=1,2,3,n)n为整数,判断Q(I)与T(I)的交集是否为空。若不为空,查找到了交集线路L。则从站点A步行X米后到达站点T后,可以乘线路L直达至站点B。如图3.4直达方案2所示。 T B A图3.4 直达方案2通过查找站点关联表找到站点B的关联站点T,找出经过A的线路集合P(I)(I=1,2,3,m)m为整数,经过T的线路集合T(I)(I=1,2,3,n)n为整数,判断P(I)与T(I)的交集是否为空。若不为空,查找到了交集线路L。则从站点A乘线路L至站点T后步行X米后可以到达站点B。如图3.5直达方案3所示。 A T B图3.5 直达方案3通过查找站点关联表找到站点A的关联站点T1并找到站点B的关联站点T2后,找出经过T1的线路集合P(I)(I=1,2,3,m)m为整数,经过T2的线路集合J(I)(I=1,2,3,n)n为整数,判断P(I)与J(I)的交集是否为空。若不为空,查找到了交集线路L。则从站点A 步行X米至站点T1后乘线路L至站点T2下车,由站点T2步行Y米后可以到达站点B。如图3.6直达方案4所示。 T1 T2 A B图3.6 直达方案43.5.2 转乘一次站点A到目的站点B没有查找到可以直达的乘车方案后,便会查找站点A到目的站点B通过转乘一次公交车的乘车方案。在系统转乘一次的算法中,首先是通过查找站点A和站点B的线路站点信息是否有交集判断站点A是否可以转乘一次到达站点B。如果不可以则通过查找站点A和站点B站点的关联表是否有交集,判断站点A和站点B之间是否可以转乘一次公交到达。主要思想是在发现没有直达车时,查找从起点站到哪个站点后有直达终点的线路。已经知道经过起点站的线路,任选其中一条沿着线路所经过的各站点查找经过各站点的线路中是否存在直达终点站的线路,若某个站点存在直达线路,则在该站点换乘可直达终点站。(1)通过线路站点信息有直接交集找出经过A的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。对E(I,U)中的一个站点,判断与B是否直达,直至将S(I)中的每条线路查询站点完毕,若存在E(I,U)与B直达,则A到B可转乘一次。可以得到站点A至站点E(I,U)的线路L1,站点E(I,U)至站点B的线路L2。如图3.7转乘一次方案1所示。 C A B图3.7 转乘一次方案1(2)通过站点关联有直接交集在站点A和站点B通过查找线路站点信息没有找到转乘一次的乘车方案后,则查找站点关联表找到与站点A、站点B及转乘站点的相关联的站点,判断是否存在转乘一次的乘车方案。存在五种情况分别如下。通过查找站点关联表找到站点A的关联站点T1,找出经过T1的线路集合Q(I)(I=1,2,3,m)m为整数。对Q(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。对E(I,U)中的一个站点,判断与B是否直达,直至将S(I)中的每条线路查询站点完毕,若存在E(I,U)与B直达,则A到B可转乘一次。可以得到站点T1至站点E(I,U)的线路L1,站点E(I,U)至站点B的线路L2。则从站点A步行X米后到达站点T1后,乘公线路L1到站点T2后再转乘公交线路L2至站点B。如图3.8转乘一次方案2所示。 T1 T2 A B图3.8 转乘一次方案2找出经过A的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。找出经过B的线路集合T(I)(I=1,2,3,n)n为整数。对T(I)的一条线路,找出线路上所有站点F(I,U)(U=1,2,3,q)q为整数。对E(I,U)中的一个站点判断与F(I,U)是否关联,若存在E(I,U)与F(I,U)关联,则站点A到站点B可转乘一次到达。可以得到站点A至站点E(I,U)的线路L1,站点F(I,U)至站点B的线路L2。从站点A乘线路L1到达站点T1后,步行X米到达站点T2,乘公交线路L2到至站点B。如图3.9转乘一次方案3所示。 T1 A T2 B图3.9 转乘一次方案3通过查找站点关联表找到站点B的关联站点T2,找出经过A的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。对E(I,U)中的一个站点,判断与T2是否直达,直至将S(I)中的每条线路查询站点完毕,若存在E(I,U)与T2直达,则A到T2可转乘一次到达。可以得到站点A至站点E(I,U)的线路L1,站点E(I,U)至站点T2的线路L2。从站点A乘线路L1到达站点T1后,乘公交线路L2到站点T2后再步行X米至站点B。如图3.10转乘一次方案4所示。 T1 T2 A B图3.10 转乘一次方案4通过查找站点关联表找到站点A的关联站点T1并找到站点B的关联站点T3后,找出经过T1的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。对E(I,U)中的一个站点,判断与T3是否直达,直至将S(I)中的每条线路查询站点完毕,若存在E(I,U)与T3直达,则T1到T3可转乘一次到达。可以得到站点T1至站点E(I,U)的线路L1,站点E(I,U)至站点T3的线路L2。从站点A步行X米到达站点T1后乘线路L1到达转乘站点T2后,乘公交线路L2到站点T3后再步行Y米至站点B。如图3.4直达方案2所示。 T1 T2 A T3 B图3.11 转乘一次方案5找出经过A的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。通过查找站点关联表找到站点B的关联站点T3,经过T3的线路集合Q(I)(I=1,2,3,n)n为整数,找出线路上所有站点F(I,U)(U=1,2,3,q)q为整数。对E(I,U)中的一个站点判断与F(I,U)是否关联,若存在E(I,U)与F(I,U)关联,则站点A到站点B可转乘一次到达。可以得到站点A至站点E(I,U)的线路L1,站点F(I,U)至站点T3的线路L2。从站点A乘线路L1到达站点T1后,步行X米到达站点T2,乘公交线路L2到至站点T3再步行Y米到达站点B。如图3.9转乘一次方案3所示。 T2 T3 A T1 B图3.12 转乘一次方案63.5.3 转乘二次站点A到目的站点B没有查找到转乘一次的乘车方案后,便会查找站点A到目的站点B转乘二次的乘车方案。在系统转乘二次的算法中,先通过查找站点A和站点B的线路站点信息是否有交集判断站点A是否可以转乘二次到达站点B。如果不可以则通过查找站点A和站点B站点的站点关联表是否有交集,判断站点A和站点B之间是否可以转乘一次公交到达。判断二次换乘是否可达,实现思想与一次换乘类似,仍然从站点查找线路,再从线路查找经过站点,再从站点中查找线路,如此继续下去,找到与终点站吻合的站点为止。(1)通过线路站点信息有直接交集找出经过A的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。对E(I,U)中的一个站点,判断与B是否一次转乘,直至将S(I)中的每条线路查询站点完毕,若存在E(I,U)中的站点与B转乘一次,则A到B可转乘二次。可以得到站点A的转乘一次线路L1和L2,站点E(I,U)至站点B的线路L3。如图3.13转乘二次方案1所示。 C D A B图3.13 转乘二次方案1(2)通过站点关联有直接交集在站点A和站点B通过查找线路站点信息没有找到转乘二次的乘车方案后,则查找站点关联表找到与站点A、站点B及转乘站点的相关联的站点,判断是否存在转乘二次的乘车方案。存在五种情况分别如下。通过查找站点关联表找到站点A的关联站点T1,找出经过T1的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。对E(I,U)中的一个站点,判断与B是否一次转乘,直至将S(I)中的每条线路查询站点完毕,若存在E(I,U)与B直达,则A到B可转乘二次。则A到B可转乘二次。可以得到站点A的转乘一次线路L1和L2,站点E(I,U)至站点B的线路L3。从站点A步行X米后到达站点T1后,乘公线路L1到站点T2后转乘公交线路L2至站点T3,最后由站点T3转乘线路L3到达站点B。如图3.14转乘二次方案2所示。 T1 T2 A T3 B图3.14 转乘二次方案2找出经过A的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。查找站点关联表找到每一个站点E(I,U)的关联站点。判断站点E(I,U)的关联站点是否与站点转乘一次到达。若存在站点E(I,U)的关联站点是否与站点转乘一次到达,则站点A到站点B可转乘二次到达。可以得到站点A至站点E(I,U)的线路L1,站点F(I,U)的关联站点至站点B的转乘一次线路L2和L3。从站点A乘线路L1到达站点T1后,步行X米到达站点T2,乘公交线路L2到至站点T3,由站点T3乘公交线路L3到达站点B。如图3.9转乘一次方案3所示。 T2 T3 A T1 B图3.15 转乘二次方案3找出经过B的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。查找站点关联表找到每一个站点E(I,U)的关联站点。找出经过站点A的线路集合Q(I)(I=1,2,3,n)n为整数。对Q(I)的一条线路,找出线路上所有站点F(I,U)(U=1,2,3,q)q为整数。对F(I,U)中的一个站点,判断与站点E(I,U)的关联站点是否直达,直至将Q(I)中的每条线路查询站点完毕,若存在F(I,U)与站点E(I,U)的关联站点直达,则A到B可转乘二次。可以得到站点A至站点E(I,U)的线路L1,站点E(I,U)至站点B的线路L2。如图3.7转乘一次方案1所示。 T2 T3 A T1 B图3.16 转乘二次方案4通过查找站点关联表找到站点B的关联站点T3,找出经过站点A的线路集合S(I)(I=1,2,3,m)m为整数。对S(I)的一条线路,找出线路上所有站点E(I,U)(U=1,2,3,P)P为整数。对E(I,U)中的一个站点,判断与T3是否一次转乘,直至将S(I)中的每条线路查询站点完毕,若存在E(I,U)与T3转乘一次,则A到T3可转乘二次。可以得到站点A的转乘一次线路L1和L2,站点E(I,U)至站点T3的线路L3。从站点A乘线路L1到达站点T1后,乘公线路L2到站点T2后转乘公交线路L3至站点T3,最后由站点T3步行X米到达站点B。如图3.14转乘二次方案2所示。 T2 T3 A T1 B图3.17 转乘二次方案53.6 系统功能模块设计本公交查询系统只包含两个模块,分别为查询模块和管理模块,各功能模块具体功能如下:(1)查询模块:不需要用户登录就可以使用查询功能,包括线路查询、站点查询、站站查询。其中站站查询是输入起始站点与终点站点,可以查询到两站之间的转乘路线。(2)管理模块:主要是管理员登录后,可以实现的管理功能。包括线路与站点的添加、编辑、删除,站点次序和管理员信息的管理功能,管理员信息管理主要是修改密码。系统模块图如图3.5所示。公交查询系统管 理查 询站点管理站点次序站点关联管理员信息线路管理线路查询站点查询站站查询图3.18 系统功能结构图3.7 系统流程设计在公交查询系统中,对所有访问者开放,不需要注册登录。但是只有管理员通过登录才能进入系统后台的管理,主要实现管理功能有线路管理、站点管理、站点次序管理、管理员信息管理各站点关联信息管理。在站站查询中乘车方案有三种,直达乘车方案、转乘一次的乘车方案和转乘二次的乘车方案。普通用户可以实现公交查询功能,包括线路查询、站点查询、站站查询。 在站站查询的直达乘车方案中,用户输入起始站点和终点站点后,查询后台数据库分别找所有经过这两站点的线路集合。然后判断这两个集合的交集是否为空,若为空则表示两站点间可以直达。直达算法的流程图如图3.6所示。 开 始输入起始站点A和终点站点BA线路集合S(I)B线路集合T(I)交集是否为空输出直达线路结 束NY图3.19 直达算法流程图在站站查询的转乘一次的乘车方案中,用户输入起始和终点站点后,查询找所有经过起始站点的线路集合。对集合中的每一条线路上的所有站点判断是否与终点站直达,直至将线路集合中的所有线路查询完毕。若存在某站点与终点直达,则起始站点与终点站点可转乘一次。转乘一次算法的流程图如图3.7所示。YNY开 始输入起始站点A和终点站点BA线路集合S(I) 且X=1S(X)线路中的所有站点E(X,V)E(X,V)与B直达输出AB转乘一次线路X与I否相等结 束X=X+1N图3.20 转乘一次算法流程图在站站查询的转乘二次的乘车方案中,用户输入起始站点和终点站点后,查询后台数据库找到所有经过起始站点的线路集合。对集合中的每一条线路上的所有站点判断是否与终点站是否直达,直至将线路集合中的所有线路查询完毕。若存在某站点与终点站转乘一次,则起始站点与终点站点可转乘二次。转乘二次算法的流程图如图3.7所示。E(X,V)与B一次转乘Y开 始输入起始站点A和终点站点BA线路集合S(I) 且X=1S(X)线路中的所有站点E(X,V)N输出AB转乘二次线路结 束X与I否相等YNX=X+1图3.21转乘二次算法流程图在用户的查询功能中站站查询是复杂和重要的一项功能。用户输入起始站点和终点站点后,首先会判断两站点是否直达,如果直达则直接提供直达线路。没有直达,则查找一次换乘的方案,若查找到输出查询到的结果,查找不到一次换乘,则继续查找二次换乘。NNNYYY开 始直达线路查询线路是否存在一次换乘查询线路是否存在二次换乘查询显示结果线路是否存在显示换乘信息信息提示结 束图3.22站站查询流程图4数据库设计数据库设计是指对一个特定的应用环境,提供一个确定的最优数据模型与处理模式的逻辑设计,以及一个确定数据存储结构与存取方法的物理设计,建立能反映现实世界信息和信息联系,满足用户要求,又能被某个数据库管理系统所接受,同时能实现系统目标并有效存取数据的数据库6。数据库设计的优劣直接影响到系统的性能,所以遵循良好的数据库设计规范是非常重要。主要设计原则如下:(1)表的设计要尽量的标准化和规范,数据的标准化有助于消除数据库中的数据冗余,其中第三范式(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。(2)设计数据库时采用系统生成的键作为主键,标识列的自动生成具有唯一性,实际上控制了数据库的索引完整性。(3)使用索引是从数据库中获取数据的最为高效方式之一,合理建立索引是很重要的。(4)命名应做到见名知意。4.1 数据库实体关系图在数据库的逻辑设计阶段,主要是从概念模型导出特定的数据库管理系统可以处理的数据库的逻辑结构。主要包括E-R图即实体-联系类型。公交查询系统的数据库中包含了管理员信息、线路信息、站点基本信息、站点排序信息、站点关联信息这几部分,可以用E-R图如下表示:(1)总体的实体关系图,管理员实体、线路实体、站点实体、站点关联实体和站点排序实体的关系。如图4.1所示:1M M 11N 属于站 点线 路站点排序排序相关站点相关 图4.1 总体的E-R图(2)管理员实体的E-R图,管理员实体有管理员编号、用户名、密码这些属性,这些的属性用来描述管理员的一些的基本情况。主要用用验证管理员登录的验证,保证后台信息的安全性。如图4.2所示管理员编 号用户名密 码图4.2 管理员实体的E-R图(3)线路实体的E-R图,线路实体有线路编号、线路描述、发车时间、收车时间及线路名属性,这些的属性用来描述线路的一些的基本情况。线路方向用于表示该线路是上行线路或下行线路的一种。对线路的发车与收车时间也有所描述。如图4.3所示:线 路发车时间收车时间线路方向线路编号线 路 名图4.3 线路实体的E-R图站 点站点编号站点名检 索(4)站点实体的E-R图,站点实体有站点编号、站点名和检索属性,这些的属性用来描述站点的一些的基本情况。站点描述主要有关于站点地理位置、周围交通情况等信息。如图4. 4所示: 图4.4 站点实体的E-R图(5)站点排序实体的E-R图,站点排序实体有站点排序编号、线路名、站点名和站点次序属性,这些的属性用来描述站点排序的一些的基本情况。线路名是站点所属的线路名称,站点次序是站点在所属线路中所排的次序位置。如图4.5所示:站点排序站点次序方 向线路编号站点编号排序编号图4.5 站点排序实体的E-R图(6)站点关联实体的E-R图,站点关联实体有站点关联编号、站点编号、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业成本控制的论文范文2
- 基于ERP信息平台业财融合管理模式应用分析
- 工程监理合同一式几份(3篇)
- 建筑材料课程论文
- 临沂大学毕业论文格式
- 指导教师毕业论文评语范文
- 专业技术人员科技论文写作答案
- 略论子产和老子
- 试论固体制剂车间的工艺设计
- 《工程岩土》课件 模块五区域性岩土问题分析单元1任务点1 崩塌灾害分析
- (2025年)保健食品试题(附答案)
- 医学糖尿病基本知识医学专题课件
- 重症医学科体温管理措施培训
- 骨科骨折复位技术操作规范
- 北师大版五年级数学上册期中测试卷(带答案)
- 科研项目基础条件与保障材料撰写
- 2025年湖南外贸职业学院单招职业技能测试题库附参考答案详解夺分金
- 2025高三英语应用文写作满分范例
- 2025年广东普宁市公安局公开招聘警务辅助人员80人模拟试卷附答案详解(完整版)
- 中建永临结合做法选用图册2024
- DB11-T 2483-2025 水务行业反恐怖防范要求
评论
0/150
提交评论