基于c++的公交车查询系统开发设计大学毕业论文毕业设计学位论文范文模板参考资料_第1页
基于c++的公交车查询系统开发设计大学毕业论文毕业设计学位论文范文模板参考资料_第2页
基于c++的公交车查询系统开发设计大学毕业论文毕业设计学位论文范文模板参考资料_第3页
基于c++的公交车查询系统开发设计大学毕业论文毕业设计学位论文范文模板参考资料_第4页
基于c++的公交车查询系统开发设计大学毕业论文毕业设计学位论文范文模板参考资料_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要茂名公交乘客信息系统的开展处于一个较落后的水平,广阔乘客可以获得信息的方式很少,为了解决这种问题,加快开展城市公交信息化,设计一个城市公交查询系统是具有一定实际应用意义的。出于这个目的,在老师的指导下,我设计了这个城市公交出行线路查询系统这个查询系统。城市公交查询系统能够帮助出行者快速地选择出行路径、换乘路线等,既优化了公交资源的配置,又提升了出行者的效率,提高了交通运输的效率和城市的信息化水平。首先分析了茂名城市公交乘客信息系统的开展现状,找出问题和缺乏。其次,在对公交乘客出行心理特征进行分析的根底上,考虑了乘客选择公交线路决策的因素,建立了基于时间价值和费用价值的公交线路选择合理的模

2、型。在此根底上,进行程序关键局部的框架设计,理清程序设计思路。之后是程序关键局部的具体实现,包括关键程序原代码。最后完成功能介绍和使用说明。关键词 公交 查询 C+ 数据统计AbstractThe development of the bus passenger information system is in a level that fall behind of the city in maoming. The large part of passengers can acquire few ways of the information. So it's practical fo

3、r us to develop city's bus passenger information system in order to resolving this problem. For this purpose, I design this system procedure-bus circuit search system. From this design, First ,I analyzed the present condition of the bus passenger information and different people's needs, in

4、order to know what functions this equipment should contain. Second, I describe the systems main function modules in detail, these functions can be divided in to two parts-search system(According to the line search、station search and between two stations search) and management update system(Bus stati

5、on management and Bus line management). At last according to the problems that happened in the period of using, I summed up some ways to improve the system, and some experiences that I can have from this research.Keyword Bus Search C+ DataStatistics目 录摘 要IAbstractII目 录III第一章 引 言1第二章 公交查询系统的概述22.1 系统

6、的开发背景2茂名城市公交的开展史2茂名公交现状32.2 系统的开发意义32.3 系统的开发目标32.4 系统开发技术概述42.4.1 C+语言的介绍42.4.2 数据库的设计42.4.3 开发环境介绍5核心技术:62.5.1 KMP算法62.5.2 朴素算法62.6系统所用的工具:82.7系统运行所需要的环境8第三章 需求分析9 应用需求分析9 功能需求9条件查询模块10 全局查询模块103.3 功能说明11 可行性分析11 经济可行性123.4.2 技术可行性12 开发可行性12第四章 概要设计13 系统总体功能流程图13 功能设计14 根据公车线路查询14根据站点查询线路144.2.3 两

7、点间车次查询154.2.4 显示所有信息16第五章 系统实现175.1 查询模块的功能实现175.1.1 用户界面核心代码17主查询方式23 根据公交线路查询23 根据站点查询经过车次27 查询两站间有无车次可通29获取线路和站点的信息31第六章 系统详细设计与最终效果33系统功能演示33根据公交车查询线路336.3 根据站点查询经过车次34查询两点间有无车次通过35输出所有线路和站点信息35第七章 系统测试377.1 确认测试377.2 系统测试377.3 用户验收测试377.4 系统难点分析37结 论38参考文献41 第一章 引 言 随着我国经济的高速开展,人们生活水平的提高,越来越多的人

8、开始热衷于到外地旅游。那么对于这些外来旅游者,首先搞清这个城市的公交路线显的很重要!茂名,作为一个旅游城市,每年都要吸引大量的游客,为了方便广阔游客,我的毕业设计就以公交查询系统做为设计课题。我认为这样的系统应该具有很好的实用性!乘客只需选择车次或输入要查询的站点,系统会快速的给出结果,同时还添加了2点之间查询有无车次通过的功能。正是基于这样的目的我开发了公交查询系统。我国城市公交乘客信息系统的开展处于一个落后的水平,广阔乘客可以获得信息的方式很少,公交信息的完整性和准确性得不到保证,而且还没有专门的机构负责信息的发布和管理。我国公交乘客信息系统的现状特点如下:(1) 我国乘客一般获得公交信息

9、的方式局限于 ,交通图,向熟人问讯等常规方式。乘客可以获得的公交信息较少(2)乘客出行中获得信息困难,根本上没有实时信息。除了几个少数城市,乘客可以通过分布于城市中的假设干电子站牌获得一些公交车辆的运营信息以外,在其它城市“出行中的乘客无法获得任何实时信息。由上所述,我国公交乘客信息系统总体上处于较低水平。较低的开展水平既是开展的困难,也是开展的机遇。我们应将开展公交乘客信息系统作为一个提高公交效率,增强公交吸引力的重要手段。 公交查询系统根据公交线路的调整及时更新数据库使得人们不必为自己的错误记忆或是不熟悉线路而付出时间和金钱的代价,目的才是最终想要的,所以准确性才是最重要的第二章 公交查询

10、系统的概述2.1 系统的开发背景茂名城市公交的开展史近年来,茂名市委、市政府和市交通运输局非常重视公交开展,积极采取措施优先开展公交,加大政策扶持与资金投入,有效地推动了城市公交的开展。2021年7月,市政府出台了?茂名市优先开展城市公共交通的实施意见?,这是我市建市50年来首次以政府名义公布的优先开展城市公共交通的政策性文件,从而为公交持续、健康、稳步开展提供了可靠政策保障;2021年8月,市政府召开常务会议,原那么通过?茂名市区公共交通规划?,这是我市第一个较为完整的系统的公交规划,通过规划,我市城市公共交通目前存在的规划滞后、站场建设差、公交车辆少、线路安排不合理等问题将会得到逐步解决,

11、进一步促进城乡公交一体化,为实现我市公交优先开展和促进城市经济开展打下扎实的根底。2021年,市政府投入了850万元购置新公交车27辆,实现市区建成区全部通公交;2021年,又分两批投入资金1700多万元购置68辆新公交车投入营运。为了提高效劳质量,对新公交车增加科技投入,全部安装了GPS自动报站器、治安监控录像及发动机仓自动灭火器等高新技术设施,为市民提供高层次效劳。“十一五期间,共投入资金近3000万元,购置、更新公交车152辆,新增线路11条,城市公交车每万人拥有量从3.3标台增加到5标台。同时市政府常务会议明确从2021年起4年内,每年安排2000万元专项资金用于扶持市区公共交通建设,

12、要求今年内实现市属茂南、茂港两区镇墟及行政村通公交,以促进公交事业大开展。2021年,总公司为配合市政府和市交通运输局大力优先开展城市公共交通战略的实施,按照市交通运输局潘北林局长关于“公交车承包经营不符合公共交通开展要求,请市公共汽车公司对承包经营的线路进行清理,采取措施收回自营的批示精神,积极规划新开线路,科学合理优化线网布局,新增公交线路6条,收回承包线路3条,先后对4条线路进行优化调整。2021年,总公司为加快市区公交开展步伐,方案增加市区公交车运行密度和新开公交线路8条;方案新增100辆LNG天然气公交车,实现节能环保、低碳的公交车;在茂名大道等路段建设不锈钢候车亭20个,继续完善效

13、劳设施;实现茂南、茂港两区具备通车条件的行政村全部通公交;规划新建排河公交综合站、高地片区公交综合站和西城片区公交首末站,逐步解决公交站场和配套设施缺乏的问题;加大科技投入,安装GPS/GPRS智能管理公交调度系统,合理排班科学调度,不断完善各项管理制度,提高营运管理水平,以实现公共交通对市属区具备条件通公交行政村的全覆盖,提高效劳水平,为群众创造一个便捷、实惠的乘车环境,解决群众出行难问题。茂名公交的现状目前茂名有公交车216辆,线路24条,公交线路总长度458.8公里,公交线路总长比三年前增加了近300公里,公交线网覆盖我市城区及茂南、茂港区大局部镇村。 经营范围包括市内客运,汽车出租、修

14、理,车身、候车亭广告,招待所,物业管理;内设经理办、综合办、平安部、财务科、企管科、后勤效劳中心、IC卡管理中心、修理厂、招待所、一分公司、二分公司、点钞中心、材料供给部和广告分公司等14个部门科室。 系统的开发意义本文所介绍的公交查询系统是基于C+应用程序开发设计的,其主要特性是能动态、实时的完成信息的查询,且具有高效的交互性,有效的处理客户请求, 易于维护和更新,它规模适中,适合于个人开发,能够锻炼同学的学习新知识能力,锻炼同学的编程能力,锻炼同学的软件工程的思维方式.它的具体意义如下: 1目前,国内各城市公交开展的速度不同,对于城市的民众来说,在他们所居住的城市里活动,如何获取有效、快速

15、、实用的公交信息,是他们最渴望的,这将为城市民众提供很大的方便,同时也是他们对公交行业的有新的认识的途经。.2 一个城市的公交查询对来自别的城市的民众同样重要,在他们出差,旅行或跑业务的时候,通过对公交查询系统的使用,能大大提高他们出行的效率。因此,一个简单,实用,效率高的查询系统是有必要的。3一个实用高效的查询系统也能表达出该城市或外来人士的为人民效劳,对人民关心体贴的宗旨。2.3 系统的开发目标现在大多数主流的公交查询系统或网站界面都是比拟简洁的,对于使用者来说.一个简单而明了的查询系统,可以让他们迅速的了解如何使用,而且,使用者很大一局部都是在一个情况比拟着急或立即需要的条件下才使用公交

16、查询系统的。因此,一个简单高效又实用的查询系统才是做到对用户的一个考虑方向。并且,这也和编程语言中面向对象的宗旨是相吻合的,所以本系统在界面上的开发并没有过多的研究或参加复杂的元素。在查询的功能上,本系统列出了4种其中包括3种查询方式和一种查询全局参数方式,以便用户自行参考使用。2.4 系统开发技术概述 C+语言的介绍C+是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格,一种使用非常广泛的计算机编程语言。C+语言运用在广泛的领域,例如,主流的3种操作系统Windows,Linux,Unix

17、,内核都是用C语言和汇编写的,上层高级特性是用C+写的。2.4.2 数据库设计: 本系统的数据库设计,采用了载入TXT文本文档进行数据库设计。通过对市场的调查,各建立一个bus主文件夹和position主文件夹分别进行通过查询线路得出途经的站点和通过查询站点得出途经的公交路线。另外,还建立了3个名为线路名称、busname、positionname的数据库进行两站点之间查询有无车次通过的方法。其总体结构分析如下:busname用来保存线路名称,即公交名。数据格式定义为:1路、2路、3路、6路、7路、8路、9路、10路、11路、12路、16路、18路、201路、202路、203路,类型定义为文本

18、。Positionname用来保存站点名称,数据格式定义为:百花大厦 春苑公园 妇幼保健院 公交商业城 官渡市场 广东石油化工学院 河西汽车站 交通技工学校 茂名大厦 茂名火车站 人民广场 人民医院 市二技学校 市委大院 市政府 体育中心 铜鼓岭 文化广场 沃尔玛 移动通讯公司 镇盛街 市府中心广场 等。线路名称用来保存公车路线的途径上下行站点,发车起始时间,以及对应的车票费用。2.4.3 开发环境介绍:Visual C+是Microsoft C/C+ 7.0之后推出的新一代程序开发工具,它不仅继承C+的特性,同时具备可视化程序语言(Visual Programming Language)及程

19、序产生器的概念。既然是面向对象语言,当然会提供系统根底类给程序员再使用(Reuse)。在Visual C+ 中,延袭Microsoft C/C+7.0的作法,将原有的SDK函数重新封装在适当的类中,构造了“根底类函数库(Microsoft Foundation Class Library,简称MFC),它提供了许多现成的框架对象,可供在使用Visual C+设计应用程序是使用。此外,还提供“ClassWizard与“AppWizard可帮助构造根本的程序框架,从软件再使用的技术观点而言,已由SDK函数库方式经过面向对象程序设计方式进展到自动产生模板相关类程序代码方式(Framework)。面向

20、对象的程序设计是一种新型的程序设计方法,计算机环境本身就是一个对象的集合体,对象彼此之间通过消息相互作用,面向对象的程序设计提高了程序的模块化和可维护性。面向对象的程序设计有几个特点及优点。首先,由于对象包含属性和方法,因此支持模块化程序设计,而模块化程序设计支持开发的便利性及代码的可维护性。Visual C+ 6.0是Microsoft公司推出的功能最强大、最复杂的语言产品之一,它是目前为止在Windows环境下进行大型软件开发的首选。其具有如下特点:(1)Visual C+ + 的语法符合ANSL C+ + 标准,并在此根底上针对Windows操作系统增加了一些语句;(2)集成了MFC(M

21、icrosoft Foundation Class)类库,MFC封装了Windows API函数和消息,使程序员可以使用MFC高效率地开发各种应用程序;(3)提供了MFC AppWizard,可方便地生成程序框架;(4)提供了基于MFC的ClassWizard,通过它可以轻松地完成对各种MFC类的使用与维护。Visual C+ 6.0作为Visual Studio家族中的一员,是Microsoft公司以C+语言为根底开发的可视化集成开发工具,与其他编程语言Visual Basic 6.0、Visual ForPro等一起,成为广阔程序员喜爱的开发平台。核心技术:2.5 1 KMP算法KMP算法

22、是D.E.Knuth、J.H.Morris和V.R.Pratt共同提出的,简称KMP算法。2.5 2 朴素算法串的模式匹配算法1. 朴素模式匹配算法(Brute-Force算法)求子串位置的定位函数Index( S, T, pos).模式匹配:子串的定位操作通常称作串的模式匹配。目标串:主串S。模式串:子串T。匹配成功:假设存在T的每个字符依次和S中的一个连续字符序列相等,那么称匹配成功。返回T中第一个字符在S中的位置。匹配不成功:返回0。Brute-Force简称为BF算法,亦称简单匹配算法,其根本思路是:从目标串s=“s1s2sn"的第一个字符开始和模式串t=“t1t2tm&qu

23、ot;中的第一个字符比拟,假设相等,那么继续逐个比拟后续字符;否那么从目标串s的第二个字符开始重新与模式串t的第一个字符进行比拟。依次类推,假设从模式串s的第i个字符开始,每个字符依次和目标串t中的对应字符相等,那么匹配成功,该算法返回i;否那么,匹配失败,函数返回0。例如,设目标串s=“cddcdc,模式串t=“cdc。s的长度为n(n=6),t的长度为m(m=3)。用指针i指示目标串s的当前比拟字符位置,用指针j指示模式串t的当前比拟字符位置。BF模式匹配过程如下所示。i = i j +2;j = 1;核心代码:子串定位int Index( SString S, SString T, in

24、t pos) i= pos; j = 1; while( i<=S0 && j<=T0) if(Si = Tj) +i; +j; else i = i-j+2; j =1; if(j>T0) return i-T0; else return 0;2.6系统所用的工具: 主要开发工具:。数据统计工具:TXT记事本。2.7系统运行所需要的环境硬件配置 :硬 盘:40GB以上硬盘;内 存:256以上的DDR内存;显 卡:128M以上显存显卡中央处理器CPU :P4 2.0G以上的处理器;软件配置:WINDOWS XP 版本、Microsoft visual C+ 6

25、.0。 第三章 需求分析 应用需求分析要设计一个良好的公交查询系统,就必须首先明确该应用环境对系统的要求。公交查询系统的应用背景为:方便市民搭乘公交车出行;手动目前、自动将来、及时更新查询数据。因此,该系统需满足以下几方面需求:1问题分析1功能需求:该模块实现公交查询功能。该模块实现数据的录入、修改、删除功能。2性能需求:系统的相应时间不能超过10ms。3出错处理需求:当输入的信息不全,或格式不正确时,提示出错信息,即退出或继续查询。2问题描述1信息要求:可实现按起点中转站终点查询查询和按线路查询,按站点查询等三种查询方式。2处理要求:该模块实现通过TXT文本文档形式进行数据的录入、修改、删除

26、功能。3平安性与完整性要求。本系统并无在此方面进行复杂的设计,使用者仅需输入查询方式,再按查询的方法进行查询即可。 功能需求 本系统主要实现以下功能:查询方式通过公交线路通过站点两站间公车所有公交信息图31 公交查询模块图条件查询模块选择条件查询方式选择站点查询选择两点间有无车次查询选择线路查询继续或退出图3-2 条件查询 全局查询模块选择显示全部公交信息显示全部线路和站点继续或退出图3-3 全局查询 功能说明主要功能:1通过线路查询:输入查询方式1,输入要查询的车次的名称,如1路,结果显示出该公车路线经过的站点;2通过站点查询:输入查询方式2,输入要查询的站点的名称,如沃尔玛,结果显示出途经

27、该站点的所有公车车次;3查询两点间有无车次经过:输入查询方式3,输入要查询的两站的名称,如沃尔玛、广东石油化工学院,结果显示出通过两站点的车次;4显示全部信息:输入查询方式4,结果分别显示出所有站点和所有公车路线的记录; 可行性分析 可行性分析是对系统进行全面、概要的分析。它的任务是确定工程开发时是否必要和可行。它的主要目标是:进一步明确系统的目标、规模和功能,对系统开发背景、必要性和意义进行调查分析,并且提出系统的逻辑模型和各种可能的方案,从而为系统开发工程的决策提供科学依据。主要从三个方面进行研究: 经济可行性 从这方面来说,本系统的开发作为课题来说不需要什么经济投入,因此来说也是可行的。

28、本查询系统是一个简洁明了、实用、使用简单、具有人性化的特点。实现这个查询系统并不需要花费大量的时间费用,使用的是Mircosoft visual C+ 6.0开发软件。3.4.2 技术可行性 技术可行性:以现有技术进行系统开发及系统实施,是完全可行的。首先,从自身来分析,经过大学2年多的学习已经初步掌握了C+、数据库等方面的编程技巧,对该软件的设计有所了解。第二方面,在设计这个系统之前,我进行了一系列先期调研,查阅了有关使用C+进行数据库开发方面的论著、教材和论文,更多是利用网络的便利条件,从网上查阅了沈阳、大连、广州、昆明等大型城市的公交查询系统,并认真地对其进行了分析研究,由于时间紧,任务

29、重,我没有更多的时间来开发完整的系统,所以就以查询作为这个系统的核心。其次,从数据库方面来分析,也是可行的。系统所建立的数据库中包含有五个字段:bus ,busname, position, 线路名称, positionname用来存放本查询系统中所需要的全部数据。3.4.3 开发可行性 本工程开发语言为C+,开发平台为Window XP下的编程环境,后台数据支持采用TXT文本文档。第四章 概要设计 系统总体功能流程图 用户公交查询系统公交查询模块数据管理整个系统数据库图4-1 系统总体流程图功能流程说明如下:(1)启动Mircosoft visual C+ 6.0效劳器程序,效劳器对本系统编

30、译。(2)运行本系统。(3)用户查询使用界面。(4)用户根据系统界面提供的4种方法自行选择所需的方式查询。(5)查询系统收到命令,根据查询方式查找对应类型的数据。(6)打印输出在查询界面。(7)当用户查询结束后,出现是否继续Y/N。如继续Y,那么在系统中选择其他方式操作。如退出N,那么退出本系统。(8)关闭本系统。 功能设计 根据公车线路查询用户通过选择第一种查询方式,即通过输入公车路线方式查询该公车途经的全部站点信息。开始输入公车名称提交是否有该公车公车输入有误正确输出该公车途经站点图4-2 根据公车路线查询流程图根据站点查询路线 用户通过输入站点,即输入站点查询途径该站点所有公车的线路信息

31、。图4-3 根据站点查询路线流程图 两点间车次查询 用户通过输入两个站点,即输入第一个站点和第二个站点查询该两站有无车次通过,并输出通过两个站点所有点公车路线。开始输入两个站点输出途径的公车格式有错格式正确图4-4 两点间车次查询流程图 显示所有信息 用户通过输入最后一种方式,即输出所有公车的名称和站点。开始选择最后一种输出全部信息输出全部信息图4-5 显示所有信息流程图第五章 系统实现5.1 查询模块的功能实现公交查询模块是用户与系统进行交互的直接媒介。除了要完成用户的请求外,更需要从用户的角度出发,以人为本。查询模块除了显示出简易的欢送文字外,直接显示本系统所提供的几种查询方式。从实际出发

32、对于公交查询系统而言,用户输入公车线路或站点,后台数据库查询为系统列出符合条件的公交班次。当系统发现填写有误时,那么提示“本系统暂时没有收录或该线路不存在,请确定您输入是否正确。并且提示是否继续或退出。 用户界面核心代码公交查询系统运行界面如图5-1所示:核心代码如下:class userInterfacechar getch;char choice;char* frPos;char* toPos;char* busName;public:void searchPassWay();void searchTrace();void searchBuses();void showInformatio

33、n();void loop(); void ifcontinue(); userInterface();userInterface();/class userInterfacevoid userInterface:searchTrace() busName=new char10; cout<<endl<<"请输入路线名(即公交车名):" cin>>busName;trybus BUS(busName);cout<<endl;cout<<BUS.note<<endl;BUS.printInformatio

34、n();catch(bus:Error)cout<<endl<<"sorry! 您要查找的线路:"<<busName<<",本系统暂时没有收录或者该线路不存在"<<endl<<"请确定您的输入是否正确"<<endl;/userInterface:searchTracevoid userInterface:searchBuses() char* positionName=new char40; cout<<endl<<"

35、请输入站点名称:" cin>>positionName;tryposition POSITION(positionName);cout<<endl;POSITION.printPassBuses();catch(position:Error)cout<<endl<<"Sorry! 本系统暂时没有收录经过"<<positionName<<"的线路"<<"!"<<endl<<"请确定您的输入是否正确"&

36、lt;<endl;/userInterface:searchBusesvoid userInterface:searchPassWay()cout<<endl<<"请输入出发站点名称:"cin>>frPos;cout<<endl<<"请输入目标站点名称:"cin>>toPos;tryposition* fromPosition=new position(frPos); position* toPosition=new position(toPos);fromPosition-&

37、gt;isThrough(toPosition);catch(position:Error)cout<<endl<<"Sorry! 本系统暂时没有收录经过"<<frPos<<"或"<<toPos<<"的线路"<<"!"<<endl<<"请确定您的输入是否正确"<<endl;/userInterface:searchPassWayvoid userInterface:showIn

38、formation()int i=0;ifstream in_file;in_file.open("sourcebusname.txt", ios:in);char* inbus=new char5;cout<<endl<<"线路信息如下:"<<endl;while(!in_file.eof() in_file>>inbus;+i;cout<<inbus;if(!in_file.eof() cout<<" "if(!(i%15) cout<<endl;

39、cout<<endl;in_file.close();in_file.open("sourcepositionname.txt", ios:in);char* inpos=new char40;cout<<endl<<"站点信息如下:"<<endl;i=0;while(!in_file.eof() in_file>>inpos;+i;cout<<inpos<<' 'if(!(i%8) cout<<endl;cout<<endl;in

40、_file.close();delete inbus;delete inpos;/userInterface:showInformationvoid userInterface:loop()cout<<endl;cout<<" %"<<endl; cout<<" % 欢送使用茂名公交查询系统 %"<<endl;cout<<" %"<<endl; cout<<endl;cout<<"本系统能够:"<<

41、;endl;cout<<" %o(_)oo(_)oo(_)o%"<<endl; cout<<" % => 1. 根据公交车名查询路线; %"<<endl; cout<<" % => 2. 根据站名查询经过的车次; %"<<endl; cout<<" % => 3. 查询两站间有无车次可通; %"<<endl;cout<<" % => 4. 得到线路名称和站点名称的信息;%&q

42、uot;<<endl;cout<<" %o(_)oo(_)oo(_)o%"<<endl; cout<<"请选择要查询的方式(1、2 、3 or 4):" cin>>choice; switch(choice) case '1': searchTrace(); ifcontinue(); break; case '2': searchBuses(); ifcontinue(); break; case '3': searchPassWay(); if

43、continue(); break;case '4':showInformation();ifcontinue(); break;default:cout<<"您的输入不正确!"ifcontinue();/userInterface:loopvoid userInterface:ifcontinue() cout<<endl<<"是否继续查询(y/n)? " cin>>getch; if(getch='y') loop(); else exit(1);/userInterfa

44、ce:ifcontinueuserInterface:userInterface()frPos=new char40;toPos=new char40;/userInterface:userInterfaceuserInterface:userInterface()delete busName;delete frPos;delete toPos;/userInterface:userInterface主查询方式本系统有4种查询方式供用户自行选择,通过选择用户所需的方式进行有目的性的查询。 根据公交线路查询 核心代码如下:class busprivate:char* name;char* tra

45、ckName;char* upTrack;char* downTrack;char* fromTime;char* toTime;char* price;int isExist(char*);void initialize();public:bus(char* n);bus();char* note;void printInformation();class Error;/异常类;/class busvoid bus:initialize()int i;trackName=new char60;upTrack=new char600;downTrack=new char600;fromTime

46、=new char60;toTime=new char60;price=new char60;char* locator=new char30;strcpy(locator,"sourcebus");if(*name='路') strcat(name+1),locator);else strcat(locator,name);strcat(locator,".txt");ifstream in_file;in_file.open(locator, ios:in);char* mystring6;mystring0=new char60;m

47、ystring1=new char600;mystring2=new char600;mystring3=new char60;mystring4=new char60;mystring5=new char60;for(i=0;i<=5&&in_file;i+)in_file.getline(mystringi,1000);in_file.close();strcpy(trackName,mystring0);strcpy(upTrack,mystring1);strcpy(downTrack,mystring2);strcpy(fromTime,mystring3);s

48、trcpy(toTime,mystring4);strcpy(price,mystring5);for(i=0;i<=5;i+)delete mystringi; delete locator;/bus:initializebus:bus(char* n)note=new char100;strcpy(note,"");name=new char10;strcpy(name,n);if(isExist(name)initialize();strcpy(note," find it !");if(*name='路')if(isExis

49、t(name+1)initialize();strcpy(note,"您要查找的线路:");strcat(note,name);strcat(note,"不存在或者本系统没有记录这条线路;下面这条线路供参考:");elsechar* temp=new char11;strcpy(temp,"路");strcat(temp,name);if(isExist(temp)initialize();strcpy(note,"您要查找的线路:");strcat(note,name);strcat(note,"不存在

50、或者本系统没有记录这条线路;下面这条线路供参考:");delete temp;if(!*note)throw Error();/busbus:bus()delete note;delete name;delete trackName;delete upTrack;delete downTrack;delete fromTime;delete toTime;delete price;/busvoid bus:printInformation()cout<<trackName<<endl<<endl;cout<<upTrack<<

51、;endl<<downTrack<<endl; cout<<endl<<fromTime<<endl<<toTime<<endl;cout<<endl<<price<<endl;/printInformationint bus:isExist(char* busName)ifstream in_file;in_file.open("sourcebusname.txt", ios:in);char* instring=new char10;while(in_

52、file) in_file>>instring;if(!strcmp(busName,instring) in_file.close();return 1;in_file.close();return 0;/isExist 根据站点查询经过车次核心代码如下:class positionprivate:char* name;char* passBuses;int isExist(char*);public:position(char* n);position();char* getName()return name;char* getPassBuses()return passBus

53、es;void printPassBuses()cout<<passBuses<<endl;void isThrough(position*);class Error;/异常类;/class position/=position members function=position:position(char* n)name=new char40;strcpy(name,n);if(isExist(name)char* locator=new char200;strcpy(locator,"sourceposition");strcat(locator,name); strcat(locator,".txt");ifstream in_file;in_file.open(locator, ios:in);char* mystr=new char600; in_file.getline(mystr,1000); in_file.close();passBuses=new char600; strcpy(passBuses,mystr); delete mystr; delete locator;elsethrow Error();/posi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论