广东海洋大学数据结构课程设计——公交换乘系统(C++)
广东海洋大学数据库原理及应用课程设计——学生信息管理系统(Java+SQL)
本科生课程设计课程名称数据库原理及应用课程设计课程编号J1670101学号学生姓名所在专业所在班级指导教师成绩教师签字年月日课程设计时间:年月日至年月日目录目录设计总说明 (I)1、需求分析 (3)2、概念结构设计 (3)3、逻辑结构设计 (4)4、物理结构设计 (4)5、系统实现 ....................................................................................... 错误!未定义书签。
5.1前台界面 .................................................................................. 错误!未定义书签。
5.2 后台实现 .................................................................................. 错误!未定义书签。
6、优缺点及自我评价....................................................................... 错误!未定义书签。
7、参考文献 (7)设计总说明(1)系统开发目的学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。
随着在校大学生人数的不断增加,教务系统的数量也不断的上涨。
学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。
并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。
然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。
所以如何自动高效地管理信息是这些年来许多人所研究的。
(2)开发内容用数据库和Java相关技术开发一个学生信息管理系统(3)开发要求能够对学生信息进行简单的添加,删除和查询(4)开发环境及工具1、操作系统:Windows 72、数据库软件:SQL Server 20083、Java开发工具:Eclipse(5)系统功能简介一、学生管理1、添加学生信息。
C语言课程设计报告--公交路线管理系统
计算机科学与技术系课程设计报告2011 ~2012 学年第二学期课程面向过程综合设计课程设计名称公交路线管理系统学生姓名学号专业班级指导教师2012 年6 月一、设计思想我的系统主要功能是实现对公交路线的查询管理和维护。
众所周知,公交车在每一个城市中都有着非常大的作用,几乎每个市民都要用到公交车。
以及公交车的路线经常会有所改动。
因此如果使用我的这个系统,就可以及时的对路线信息进行修改和保存可以很好地满足市民的查询,方便人民的生活。
而且该系统使用起来也很方便。
用户只需根据显示的提示信息进行选择和输入就可以实现你要求的功能查询到你需要的信息。
本系统具有显示路线信息、添加线路信息、删除线路信息、修改线路信息、查询信息的功能。
用户们可以根据自己所需要的情况进行相应的功能选择,得到自己所需要的信息。
其具体功能简单描述如下:(1)显示路线信息:即将路线信息显示到屏幕中,供用户查看。
该功能比较简单,在这里不具体说明。
(2)添加路线信息:即添加一条新的公交路线或者是某一条路线上的站点。
每次可以添加一条路线信息,若用户想添加多条路线信息的话可以重复执行该功能,同样的,添加站点的话也是每一次添加一个站点,若用户想添加多条路线信息的话也只需要重复执行该功能即可。
这样,就实现了对公交路线的添加信息管理。
(3)删除路线信息:即能删除掉一条你所不需要的公交路线信息和某一条路线上的站点。
若要删除路线时只需要输入你要删除的公交路线号即可,若要删除站点也只需输入你要删除的站点序号,不需要输入该站点名称。
(4)修改路线信息:即能修改一条你需要该的路线信息。
修改内容包括:修改该条公交路线号、修改站点名称(输入新的信息时该条路线的站点长度不能改变,若要改变站点长促可以选择增加和删除功能,即可实现)。
(5)查询路线信息:即能够查找出你要的公交路线信息和总共有多少站。
简单地说,就是用户先选择你要查询的公交路线号,在输入起点站和终点站名称,然后系统就会自动显示出起点站和终点站之间共有多少站点,以及起点站和终点站之间所有站点的序号和名称,从而使用户一目了然的知道站点信息,而不需要像看地图那样一个站点一个站点的用肉眼进行查找,这就为用户节省了很多时间。
数据结构公交换乘系统
数据结构公交换乘系统一、系统概述数据结构公交换乘系统是一种基于数据结构算法的智能化交通规划系统,旨在提供高效、准确的公交换乘服务。
该系统通过分析用户出发地和目的地,结合公交线路数据、交通拥堵情况等信息,计算出最佳的公交换乘方案,为用户提供准确的出行指导。
二、系统功能1. 用户注册与登录用户可以通过手机号码或邮箱注册账号,并通过账号登录系统。
登录后,用户可以享受系统提供的各项功能。
2. 输入出发地和目的地用户可以在系统界面中输入出发地和目的地的信息,包括地点名称、地理坐标等。
系统将根据用户输入的信息进行后续处理。
3. 公交线路查询系统根据用户输入的出发地和目的地,查询公交线路数据,并进行路径规划。
系统将根据用户的出行需求和实时交通情况,计算出最佳的公交换乘方案。
4. 换乘方案展示系统将计算出的最佳换乘方案展示给用户,包括具体的公交线路、乘车站点、换乘路线等信息。
用户可以根据系统提供的方案进行出行决策。
5. 实时交通信息更新系统会实时获取交通拥堵情况、公交车实时位置等信息,并对方案进行动态调整。
用户可以获取最新的交通信息,以便做出更合理的出行决策。
6. 路线导航用户选择最佳换乘方案后,系统将提供路线导航功能,指导用户如何步行至乘车站点、换乘公交线路及下车位置。
系统可以通过地图、文字等方式提供导航指引。
7. 历史记录与收藏系统会记录用户的出行历史,并提供历史记录查询功能。
用户还可以将常用的出行方案收藏起来,方便下次查询。
三、系统设计1. 数据存储系统需要存储大量的公交线路数据、地理信息数据等。
可以采用数据库来存储这些数据,以便系统能够高效地进行查询和处理。
2. 数据结构设计系统需要设计合适的数据结构来存储和处理公交线路数据、地理信息数据等。
可以使用图、树、队列等数据结构来表示和计算公交线路、路径规划等。
3. 算法设计系统需要设计高效的算法来进行公交线路查询和路径规划。
可以使用最短路径算法、深度优先搜索算法等来计算最佳换乘方案。
c语言公交最优路径查询数据结构(附设计报告_完整代码)
《数据结构》课程设计说明一、课程设计的基本要求①根据上述公交线路的输入格式,定义并建立合适的图模型。
②针对上述公交线路,能查询获得任何两个站点之间最便宜的路径,即输入站名S,T后,可以输出从S到T的最便宜的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。
共花费x元。
③针对上述公交线路,能查询获得任何两个站点之间最省时间的路径(不考虑在中间站等下一辆线路的等待时间),即输入站名S,T后,可以输出从S 到T的考虑在中间站等下一辆线路的等待时间的最省时间的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。
共花费x时间。
④针对上述公交线路,能查询获得任何两个站点之间最省时间的路径(要考虑在中间站等下一辆线路的等待时间),即输入站名S,T后,可以输出从S 到T的考虑在中间站等下一辆线路的等待时间的最省时间的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。
共花费x时间。
二、课程设计的主要内容(包含分工)主要内容:首先将多有要用到的结构体全部定义完全,在课程设计的进程安排1.2010年01月10日之前:完成所有要用到的结构体的定义。
2.2010年01月11日——01月12日:完成建立合适的图模型以及信息的初始化。
3.2010年01月15日前:将初始化的所有的信息与建立的图模型完全连接起来,写调整函数将每一条路线的车的信息存放到所有的节点里去。
4.2010年1月16日——2010年1月18日:完成按时间和价格的最优的方法选择路线。
5. 2010年1月19日——2010年1月20日:完成所有的程序。
6. 2010年1月21日答辩具体分工:XX(组长):①,定义所有将要用到的结构体②,编写函数实现根据公交路线信息修改站点信息的功能③,利用Floyd算法找出按时间的所有两站之间的最优路径④,编写时间最优的路线选择(不考虑等待时间)⑤,编写时间最优的路线选择(考虑等待时间)XX :①,初始化所有信息②,建立图模型③,编写价格最优的路线选择④,界面优化2010年01月11日《数据结构》课程设计报告(模板)一正文1、目的求公交线路上优化路径的查询。
大学C++课程设计报告--学生成绩管理系统(附源代码)
广东海洋大学课程设计报告课程名称:C/C++语言程序设计课程编号:@@学生姓名:陈@@学生班级:信管1071学号:实习地点:科技楼起止时间:2008.12.29-2009.01.02指导教师:@@一、目的与要求通过本课程设计的实践,全面总结C++课程学习中的的数据类型、程序结构、数组、函数、指针、结构体、链表等基本概念,掌握其使用方法。
掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。
培养使用面向对象的程序设计方法编写计算机程序的能力。
通过设计一个《学生成绩统计管理》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。
了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。
程序设计是一门实践性很强的课程,必须十分重视实践环节。
许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。
二、设计内容学生成绩管理系统1.基本功能:a)成绩的输入(学号、姓名、英语、数学、C++语言…);b)成绩统计(各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例);c)总成绩统计(学生的总成绩、平均成绩及成绩排名)d)成绩的统计结果显示。
2.扩展功能:a)学生数据的添加、修改、与删除b)学生数据的读取与存储3.设计要求a)采用面向对象的思想和方法完成设计,最好能够基于windows图形界面。
b)至少设计四个类;学生类(描述学生基本信息);成绩类:班级类;课程类(描述课程信息:课程编号,科目名称(如高等数学,大学英语等);学生成绩及课程信息用文件保存,每个类一个文件,程序执行时从文件读入。
三、过程与结果主要内容如下:1.关键类的设计,继承层次关系,代码:首先,创建了一个student类.在student类的共有部分声明程序所需函数;然后就是student类的函数实现部分,其中定义student类的带参数及不带参数构造函数;再是常用函数的调用,并定义系统菜单函数及其界面;最后就是主函数文件。
C 公交换乘系统
公交换乘系统本科生课程设计课程名称公交换乘系统学号学生姓名所在专业所在班级指导教师成绩教师签字课程设计时间:2010年6月一、目的与要求通过一个学期的系统学习,学生们掌握了数据结构的基础理论知识,然而由于数据结构原理的抽象性,可能使得学生对数据结构各部分理论的理解不够深入。
设置本课程设计,通过了解公交换乘算法的设计与实现,使学生能够学以致用,培养和提高学生的算法设计、运用计算机进行编程、调试等技能,从而培养学生独立工作的能力和创造能力。
二、设计内容公交换乘系统公交换乘在一个城市的公共交通系统设计中占据着极其重要的地位,公交换乘的过程将直接影响居民出行时间的长短,公交换乘的过程如下:指定一起始公交站点与目的公交站点,依据参考因素,例如:换乘路线的路径最短、耗费时间最短、所需车资最少等,经过分析处理得到可达目的站点换乘次数最少的乘车方案,具体可分为:(1)零次换乘起始站点和目的站点之间存在可直达的公交线路,即出行居民无需转乘就可以直接到达目的站点,这也是较为理想的方案。
(2)一次换乘起始站点和目的站点之间没有公交车直接往返,即两站点之间不存在可直达的公交线路,则出行居民需要在途经的某个站点下车,然后转乘另一线路公交车才能达到目的站点。
(3)多次换乘在起始站点和目的站点之间没有可直达的公交线路,出行居民需要经过一次以上的转乘才能达到目的站点,则得到多次换乘方案。
多次换乘方案可通过一次换乘的递归计算得到,一般情况下,超过两次转乘的方案对于出行居民来说是难以接受的,本课程设计只要求计算零次和一次换乘方案,对于一次以上的公交换乘不作要求。
三:本系统功能介绍:在这里通过主函数显示程序的主页版,上面是湛江的公交线路图。
在这里输入出发站点的名字,回车确定!在这里输入最终站点的名字!输入错误会提醒重新输入!输入要查询的起点和终点0次换乘,输出查询结果:按y或Y,可以继续查询!输入出发点和终点,一次换乘的结果如下:四:设计要求认真参阅本课程设计的相关参考资料、数据,了解公交换乘的原理要求,设计一个实现公交换乘的算法:指定任一起始站点和目的站点,依据算法得到所有可达目的站点的的公交线路,包括中间站点的换乘方法以及该公交线路所经过的公交站点。
公交车信息c课程设计
公交车信息c课程设计一、课程目标知识目标:1. 让学生掌握公交车的基本信息,包括线路、站点、运营时间等。
2. 培养学生运用地图、公交查询工具等获取所需公交信息的能力。
3. 了解城市公共交通系统的基本构成及其在生活中的重要性。
技能目标:1. 培养学生通过观察、询问、搜索等途径获取公交车信息的能力。
2. 培养学生运用所学的公交信息,解决实际生活中的出行问题。
3. 提高学生的团队协作能力和问题解决能力。
情感态度价值观目标:1. 培养学生对公共交通的尊重和爱护,树立绿色出行意识。
2. 培养学生关注社会、关爱他人的情感,学会为他人提供帮助。
3. 培养学生积极向上的生活态度,认识到学习与生活的紧密联系。
课程性质:本课程为实践性课程,结合学生生活实际,通过实际操作和团队合作,培养学生获取和处理公交车信息的能力。
学生特点:考虑到学生所在年级,具备一定的信息获取和处理能力,对公共交通有一定了解,但实际操作能力有待提高。
教学要求:教师需结合学生特点,设计富有实践性和趣味性的教学活动,引导学生主动参与,提高学生的动手操作能力和问题解决能力。
同时,注重培养学生的情感态度价值观,使学生在学习过程中形成正确的价值观。
通过分解课程目标,为后续教学设计和评估提供依据。
二、教学内容1. 公交车的基本信息:介绍公交车的线路、站点、运营时间等,结合教材相关章节,让学生了解城市公共交通的基本情况。
2. 公交信息查询工具:讲解地图、公交查询APP等工具的使用方法,学会如何获取所需的公交车信息。
3. 实践活动:组织学生分组进行实地考察,收集公交车线路、站点等信息,并整理成报告。
4. 公交出行问题解决:针对实际生活中的公交出行问题,如线路选择、换乘等,引导学生运用所学知识进行分析和解决。
5. 绿色出行意识培养:结合教材内容,讲解公共交通对环境保护的重要性,引导学生树立绿色出行意识。
6. 团队协作与问题解决:通过实践活动,培养学生团队协作能力和问题解决能力。
数据结构课程设计报告-公交换乘系统
广东海洋大学信息学院课程设计报告设计题目公交换乘系统课程名称数据结构姓名(学号)联系电话专业名称计算机科学与技术所在班级1101班指导教师教师职称起止时间2011 年12月26日至2012年1月6日评定成绩一、课程设计的主要内容1、公交线路中,为用户查找最短路径,有【0】次换乘就能到达目的地和【1】次换乘就能到达目的地。
2、为用户计算出路程所需费用。
3、该课程设计的公交系统中有分权限;分管理员用户和普通用户,管理员的登陆需要帐号和密码(暗文),普通用户可以直接登陆。
4、管理员可以重新输入新公交路线、输出公交路线、读取已经存盘的公交路线资料、存入新公交路线资料(慎用!)、查找最短公交路线、新增管理员用户和删除管理员用户。
5、普通用户只能输出公交路线和查找最短公交路线两个功能。
二、功能和结构设计1、为用户分权限2、管理员有重新输入新公交路线、输出公交路线、读取已经存盘的公交路线资料、存入新公交路线资料(慎用!)、查找最短公交路线、新增管理员用户和删除管理员用户3、普通用户只能输出公交路线和查找最短公交路线两个功能。
注:系统默认的公交线路图(系统开发者为用户事先存好的,在f1.txt文档中)三、流程图和算法设计算法:(给出查找最短路径的方法)void Bus<T>::findline(){int x,y,i,j,k,l,longers;longers=0;//x、y是起始和终止车站的编码;i、j是每个站点后两位编码;k是每个站点后两位编码的差值;l是转乘站点的后两位编码while(1){cout<<"请输入起始站点编号:";cin>>x;cout<<" 终止站点编号:";cin>>y;if((x/100)>lineNum||(x/100)<=0||(x%100)>=busStationNum[x/100-1]||(y/100)>lineNum ||(y/100)<=0||(y%100)>=busStationNum[y/100-1])//前两个是判断车站编码的首位的,第三个是判断车站编码的后两位的cout<<"----找不到您所输入站点,请重新输入!----"<<endl;elsebreak;}i=x%100;j=y%100;if((x/100)==(y/100)){cout<<"您可【0】次换乘到达目的地,路线如下:"<<endl;// k=j-i;if(j-i>0){for(k=0;k<j-i;k++){cout<<line[x/100-1][x%100+k].busStationName<<"-->";longers+=line[x/100-1][x%100+k].longer;}cout<<line[x/100-1][x%100+k].busStationName<<endl;}else{for(k=0;k>j-i;k--){cout<<line[x/100-1][x%100+k].busStationName<<"-->";longers+=line[x/100-1][x%100+k-1].longer;}cout<<line[x/100-1][x%100+k].busStationName<<endl;longers+=line[x/100-1][x%100+k].longer;}cout<<"----路程所需费用:"<<longers*0.5<<"元,祝您路途愉快!----"<<endl;}else{string takeName[2][5];//存放两条路线上可转乘车站的名称;int takeNum[2][5];//存放两条路线上可转乘车站的编号;int a,b;//a、b是计数的for(a=0;a<2;a++)for(b=0;b<5;b++){takeName[a][b]=" ";takeNum[a][b]=0;}//遍历每条路线可换乘的站点for(a=0,b=0;a<busStationNum[x/100-1];a++)if(line[x/100-1][a].take){takeName[0][b]=line[x/100-1][a].busStationName;takeNum[0][b]=line[x/100-1][a].number;b++;}for(a=0,b=0;a<busStationNum[y/100-1];a++)if(line[y/100-1][a].take){takeName[1][b]=line[y/100-1][a].busStationName;takeNum[1][b]=line[y/100-1][a].number;b++;}//比较可换乘的站点是否有相同的,如果有,可以了一次换乘到达目的地;否则不可以bool nn=false;for(a=0;a<5;a++){for(b=0;b<5;b++){if(takeName[0][a]!=" "&&takeName[1][b]!=""&&takeName[0][a]==takeName[1][b]){cout<<"您可以【1】次换乘到达目的地(换乘点前面有“*”提示),为你选择的路线如下:"<<endl;l=takeNum[0][a]%100;if(l-i>0){for(k=0;k<l-i;k++){cout<<line[x/100-1][x%100+k].busStationName<<"-->";longers+=line[x/100-1][x%100+k].longer;}cout<<"*"<<line[x/100-1][x%100+k].busStationName<<"-->";// money+=line[x/100-1][x%100+k].longer;}else{for(k=0;k>l-i;k--){cout<<line[x/100-1][x%100+k].busStationName<<"-->";longers+=line[x/100-1][x%100+k-1].longer;}cout<<"*"<<line[x/100-1][x%100+k].busStationName<<"-->";// money+=line[x/100-1][x%100+k].longer;}l=takeNum[1][b]%100;if(j-l>0){longers+=line[y/100-1][l].longer;for(k=1;k<j-l;k++){cout<<line[y/100-1][l+k].busStationName<<"-->";longers+=line[y/100-1][l+k].longer;}cout<<line[y/100-1][l+k].busStationName<<endl;}else{//money+=line[y/100-1][l-1].longer;for(k=-1;k>j-l;k--){cout<<line[y/100-1][l+k].busStationName<<"-->";longers+=line[y/100-1][l+k].longer;}cout<<line[y/100-1][l+k].busStationName<<endl;longers+=line[y/100-1][l+k].longer;}cout<<"----路程所需费用:"<<longers*0.5<<"元,祝您路途愉快!----"<<endl;nn=true;break;}else if(a==4&&b==4)cout<<"很抱歉,没有【0】次换乘或【1】次换乘可以到达目的地的路线!";}if(nn)break;}}}四、源程序代码Bus.h:#include<iostream>#include<string>using namespace std;template <typename T>class Bus{public:struct BusStation{int number; //车站编号string busStationName;//车站名称bool take; //是否可乘换int longer; //到下一个车站的路程};Bus();~Bus();void input();void output();void findline();//查找线路void readfile();//读取公交路线数据void writefile();//存入公交路线数据typedef BusStation* Pointer;private:Pointer *line; //指向三条路线的指针int lineNum;//路线数int *busStationNum;//每条路线的车站数};template<typename A>class Administrator{public:Administrator();~Administrator();void readAdministrator();//读取管理员资料void writeAdministrator();//存入管理员资料void addAdministrator();//增加用户void deleteAdministrator();//删除用户bool land();private:string *name;string *mima;int num;};/////////////////////////////////////////////////////////////////////////// Bus.cpp#include"Bus.h"#include<fstream>template<typename T>Bus<T>::Bus(){lineNum=0;line=new Pointer[lineNum];//三条线路busStationNum=new int [lineNum];//每条线路的车站数}template<typename T>Bus<T>::~Bus(){for(int i=0;i<lineNum;i++)delete [] line[i];lineNum=0;delete [] busStationNum;delete [] line;}template<typename T>void Bus<T>::input(){cout<<"请输入公交线路数:";cin>>lineNum;line=new Pointer[lineNum];//三条线路busStationNum=new int [lineNum];//每条线路的车站数for(int a=0;a<lineNum;a++){cout<<"请输入第"<<a+1<<"条公交线路的车站数:";cin>>busStationNum[a];}for(int b=0;b<lineNum;b++)line[b]=new BusStation[busStationNum[b]];//依据每条线路的车站数创建每条线路int k,m,i,j;//k指前一线,m指后一线,i指要比较的前一线的车站,j指要比较的后一线的车站cout<<"请依次输入每个车站的名称、到下一站点的距离:"<<endl;for(i=0;i<lineNum;i++){cout<<"第"<<i+1<<"条路线的资料"<<endl;for(j=0;j<busStationNum[i];j++){line[i][j].number=(i+1)*100+j;//设置每个车站的编号line[i][j].take=false;//初始化每个车站为不可换乘cin>>line[i][j].busStationName;if(j<busStationNum[i]-1)cin>>line[i][j].longer;//到下一站点有3公里elsecin>>line[i][j].longer;}}//以下是要找出线路中可换乘的车站for(k=0,m=k+1;k<lineNum-1;)//每条路线的站点与另一条路线的站点进行比较{for(i=0;i<busStationNum[k];i++)for(j=0;j<busStationNum[m];j++){if(line[k][i].busStationName==line[m][j].busStationName){line[k][i].take=true;line[m][j].take=true;}}if(m>=lineNum-1){k++;m=k;}m++;}}template<typename T>void Bus<T>::output(){cout<<"编码";cout<<"车站名称";cout<<"到下一站的距离";cout<<"是否可以乘换"<<endl;cout<<setiosflags(ios::left);for(int i=0;i<lineNum;i++){for(int j=0;j<busStationNum[i];j++){cout<<setw(6)<<line[i][j].number;cout<<setw(20)<<line[i][j].busStationName;cout<<setw(20)<<line[i][j].longer;if(line[i][j].take)cout<<"是"<<endl;elsecout<<"否"<<endl;}cout<<endl;}}template<typename T>void Bus<T>::findline(){int x,y,i,j,k,l,longers;longers=0;//x、y是起始和终止车站的编码;i、j是每个站点后两位编码;k是每个站点后两位编码的差值;l是转乘站点的后两位编码while(1){cout<<"请输入起始站点编号:";cin>>x;cout<<" 终止站点编号:";cin>>y;if((x/100)>lineNum||(x/100)<=0||(x%100)>=busStationNum[x/100-1]||(y/100)>lineNum ||(y/100)<=0||(y%100)>=busStationNum[y/100-1])//前两个是判断车站编码的首位的,第三个是判断车站编码的后两位的cout<<"----找不到您所输入站点,请重新输入!----"<<endl;elsebreak;}i=x%100;j=y%100;if((x/100)==(y/100)){cout<<"您可【0】次换乘到达目的地,路线如下:"<<endl;// k=j-i;if(j-i>0){for(k=0;k<j-i;k++){cout<<line[x/100-1][x%100+k].busStationName<<"-->";longers+=line[x/100-1][x%100+k].longer;}cout<<line[x/100-1][x%100+k].busStationName<<endl;}else{for(k=0;k>j-i;k--){cout<<line[x/100-1][x%100+k].busStationName<<"-->";longers+=line[x/100-1][x%100+k-1].longer;}cout<<line[x/100-1][x%100+k].busStationName<<endl;longers+=line[x/100-1][x%100+k].longer;}cout<<"----路程所需费用:"<<longers*0.5<<"元,祝您路途愉快!----"<<endl; }else{string takeName[2][5];//存放两条路线上可转乘车站的名称;int takeNum[2][5];//存放两条路线上可转乘车站的编号;int a,b;//a、b是计数的for(a=0;a<2;a++)for(b=0;b<5;b++){takeName[a][b]=" ";takeNum[a][b]=0;}//遍历每条路线可换乘的站点for(a=0,b=0;a<busStationNum[x/100-1];a++)if(line[x/100-1][a].take){takeName[0][b]=line[x/100-1][a].busStationName;takeNum[0][b]=line[x/100-1][a].number;b++;}for(a=0,b=0;a<busStationNum[y/100-1];a++)if(line[y/100-1][a].take){takeName[1][b]=line[y/100-1][a].busStationName;takeNum[1][b]=line[y/100-1][a].number;b++;}//比较可换乘的站点是否有相同的,如果有,可以了一次换乘到达目的地;否则不可以bool nn=false;for(a=0;a<5;a++){for(b=0;b<5;b++){if(takeName[0][a]!=" "&&takeName[1][b]!=""&&takeName[0][a]==takeName[1][b]){cout<<"您可以【1】次换乘到达目的地(换乘点前面有“*”提示),为你选择的路线如下:"<<endl;l=takeNum[0][a]%100;if(l-i>0){for(k=0;k<l-i;k++){cout<<line[x/100-1][x%100+k].busStationName<<"-->";longers+=line[x/100-1][x%100+k].longer;}cout<<"*"<<line[x/100-1][x%100+k].busStationName<<"-->";// money+=line[x/100-1][x%100+k].longer;}else{for(k=0;k>l-i;k--){cout<<line[x/100-1][x%100+k].busStationName<<"-->";longers+=line[x/100-1][x%100+k-1].longer;}cout<<"*"<<line[x/100-1][x%100+k].busStationName<<"-->";// money+=line[x/100-1][x%100+k].longer;}l=takeNum[1][b]%100;if(j-l>0){longers+=line[y/100-1][l].longer;for(k=1;k<j-l;k++){cout<<line[y/100-1][l+k].busStationName<<"-->";longers+=line[y/100-1][l+k].longer;}cout<<line[y/100-1][l+k].busStationName<<endl;}else{//money+=line[y/100-1][l-1].longer;for(k=-1;k>j-l;k--){cout<<line[y/100-1][l+k].busStationName<<"-->";longers+=line[y/100-1][l+k].longer;}cout<<line[y/100-1][l+k].busStationName<<endl;longers+=line[y/100-1][l+k].longer;}cout<<"----路程所需费用:"<<longers*0.5<<"元,祝您路途愉快!----"<<endl;nn=true;break;}else if(a==4&&b==4)cout<<"很抱歉,没有【0】次换乘或【1】次换乘可以到达目的地的路线!";}if(nn)break;}}//cout<<"还未写代码";}template<typename T>void Bus<T>::readfile(){ifstream infile("f1.txt",ios::in);if(!infile){cerr<<"open error!"<<endl;exit(1);}infile>>lineNum;line=new Pointer[lineNum];//三条线路busStationNum=new int [lineNum];//每条线路的车站数for(int a=0;a<lineNum;a++){infile>>busStationNum[a];}for(int b=0;b<lineNum;b++)line[b]=new BusStation[busStationNum[b]];//依据每条线路的车站数创建每条线路for(int i=0;i<lineNum;i++)for(int j=0;j<busStationNum[i];j++){infile>>line[i][j].number;infile>>line[i][j].busStationName;infile>>line[i][j].longer;infile>>line[i][j].take;}cout<<"----读取成功----"<<endl;infile.close();}template <typename T>void Bus<T>::writefile(){ofstream outfile("f1.txt",ios::out);if(!outfile){cerr<<"open error!"<<endl;exit(1);}outfile<<lineNum<<" ";for(int a=0;a<lineNum;a++){outfile<<busStationNum[a]<<" ";}for(int i=0;i<lineNum;i++)for(int j=0;j<busStationNum[i];j++){outfile<<line[i][j].number<<" ";outfile<<line[i][j].busStationName<<" ";outfile<<line[i][j].longer<<" ";outfile<<line[i][j].take<<" ";}cout<<"----存入成功----"<<endl;outfile.close();}//////////////////////////////////////////////template <typename A>Administrator<A>::Administrator(){num=0;name=new string[num];mima=new string[num];}template<typename A>Administrator<A>::~Administrator(){num=0;delete [] name;delete [] mima;name=NULL;mima=NULL;}template<typename A>void Administrator<A>::readAdministrator() {ifstream infile("Administrator.txt",ios::in);if(!infile){cerr<<"open error!"<<endl;exit(1);}infile>>num;name=new string[num];mima=new string[num];for(int i=0;i<num;i++){infile>>name[i]>>mima[i];}}template<typename A>void Administrator<A>::writeAdministrator() {ofstream outfile("Administrator.txt",ios::out);if(!outfile){cerr<<"open error!"<<endl;exit(1);}outfile<<num<<" ";for(int i=0;i<num;i++){outfile<<name[i]<<" ";outfile<<mima[i]<<" ";}}template<typename A>bool Administrator<A>::land(){string myname;string mymima;cout<<"请输入管理员帐号:";cin>>myname;cout<<" 密码:";char ch;while ((ch=getch())!=13) //输入密码时显示星号功能。
《C#程序设计》课程设计-公交路线查询
《C#程序设计》课程设计公交路线查询系统㈠需求分析:随着现代社会的发展,交通也越来越发达,人们也开始不断的外出旅游,不管是市内还是市外对一个准确明了的交通路线需求越来越大,以前我们只能通过电话咨询、看地图、向路人打听来了解讯息,这不仅浪费精力财力时间,而且极为不方便。
在这样一个需求下,我们所设计的公交路线查询系统就产生了很大的价值,它能很方便的查询到公交路线,准确的告诉你从A到B该怎么去才最为快捷!这也是我们设计这个系统的初衷!1.功能需求首先我们系统最基本要满足顾客的需求就是公交路线的查询。
但是我们清楚的知道,死的列表将造成许多不便,因为路线会随着城市建设而变化,所以我们的路线是可以实时的去更新的,这样就牵扯到再数据库中的更新、删除功能,附带通过报表清楚的显示出来修改后的内容。
触发器功能实现公交路线中的一些数值计算,比如几站路等。
我们所要实现的就是站点查询、换车查询、线路查询。
2.数据需求数据库中包含管理者的账户密码。
公交路线数据(包括起始站到终点站的其间所有站点)。
3.性能需求客户需要的是一个快捷准确的查询系统,包括一次转车到达以及二次转车到达,不能有任何差错。
所以关于线路查询的C#程序语句要考虑周全不能有任何差池。
数据库中数据也需要其准确性。
㈡概要设计:设计思想:随着公路规模的不断扩大,公交数量的急剧增加,有关公交管理的各种信息量也在不断成倍增长。
面对庞大的信息量,就需要有公交信息管理系统来提公交房管理工作的效率。
通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。
目前,我国各省市的公交查询工作还未实现数字化。
整个过程既浪费能源又浪费资源。
最后导致浪费时间,无法按时到达目的地。
因此,开发一个能够对最新的公交线路进行查询的信息平台就显得尤其重要。
所开发的系统将在一定程度上能够克服以上的种种缺点,实现各项工作在线完成,为乘客提供一个完全公开、开放、完善的管理平台,放便了乘客的出行,大大节省了乘客的宝贵时间。
c语言课程设计公交路线
c语言课程设计公交路线一、教学目标本章节的教学目标旨在让学生掌握C语言编程基础,能够运用C语言实现简单的公交路线管理系统。
具体目标如下:1.知识目标:–了解C语言的基本语法和数据类型。
–掌握函数的定义和调用。
–理解指针的概念及其应用。
–熟悉结构体和文件操作。
2.技能目标:–能够编写简单的C语言程序。
–能够运用结构体设计公交路线数据结构。
–能够实现公交路线信息的增删改查功能。
–能够运用文件操作保存和读取公交路线信息。
3.情感态度价值观目标:–培养学生的编程兴趣,提高学生解决问题的能力。
–培养学生团队合作精神,激发学生创新意识。
二、教学内容本章节的教学内容主要包括以下几个部分:1.C语言基本语法和数据类型。
2.函数的定义和调用。
3.指针的概念及其应用。
4.结构体的使用和内存布局。
5.文件操作。
6.公交路线管理系统的实现。
三、教学方法为了达到本章节的教学目标,我们将采用以下教学方法:1.讲授法:讲解C语言的基本语法、数据类型、函数、指针、结构体和文件操作等知识点。
2.案例分析法:分析实际案例,让学生理解公交路线管理系统的实现原理。
3.实验法:让学生动手编写代码,实现公交路线管理功能。
4.讨论法:分组讨论,分享学习心得和解决问题的方法。
四、教学资源本章节的教学资源包括:1.教材:《C语言程序设计》。
2.参考书:《C语言 Primer》。
3.多媒体资料:PPT课件、教学视频。
4.实验设备:计算机、编程环境。
教学资源将用于支持教学内容和教学方法的实施,帮助学生更好地理解和掌握C语言编程,提高学生的编程能力。
五、教学评估本章节的教学评估将采用多元化的评估方式,以全面、客观地评价学生的学习成果。
评估方式包括:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置相关的编程作业,评估学生的编程能力和对知识的掌握程度。
3.考试:期末进行笔试考试,测试学生对C语言编程知识的掌握情况。
数据结构课程设计说明书公交乘车
《数据结构与算法设计》课程设计任务书数据结构与算法设计课程设计专业数学与应用数学班级数学0701 学号 0124 姓名孙宝琳完成日期指导教师(签名)1、程序设计说明书【设计题目】公交咨询程序【问题描述】利用图实现公交咨询系统,包括公交线路查询、站点查询以及最优乘车方案的查询。
【软件功能】1 从文件中接收图和公交车信息;2 可实现确定公交线路查询,即输出该车的所有站点;3 可以对某一个站点进行查询输出该站点的所有下一站;4可以对乘车方案进行查询,即输出确定起点,终点的最优乘车方案,换车输出换车次数及换车站点;【算法思想】设计公交车类(车号,路程长度,终点站),图类(站点名,公交车类,现有路线条数,现有站点数),Dijkstra算法类(最短路径上的最后一个站点,最短路径的站点数);从文件中接收内容并对图和公交车进行初始化,公交线路查询——在图中找到起点站,按顺序输出所有公交车号相同的站点;乘车方案中利用Dijkstra算法算出最优路线并有最短路径的最后一个站点输出乘车方案;【类的设计】struct Busxt”,并输入以下内容:30世家星城-通讯学院-石油公寓-潘家庄-明德门-杨家村-城南客运站-西八里村-医学院-纬二街-雁南路-大雁塔-赛格电脑城-李家村-和平门-大差市-五路口-火车站;603电视塔-国展中心-吴家坟-八里村-纬二街-小寨-长安立交-省体育场-草场坡-南稍门-南门-钟楼-北门-火车站;37城北客运站-公交六公司-方新村-龙首村-北关-钟楼-东门-兴庆路-建工路-幸福路南口;(每一个车的线路占一行);编译运行程序,根据提示执行程序;要想有更为准确的方案,可以在“公交查询.txt”中加入公交车线路;2、程序上机调试报告【语法错误及其排除】1 函数赋值时,将变量赋给了指针;使用指针传值;2 在出栈时没有判断栈是否为空,导致top指空在出栈前判断IsEmpty();【算法错误及其排除】1在建立图中没有对a数组进行置空,导致数据混乱;在使用a之前对a数组赋空;2在输出最优结果时没有保留前一站使程序无法判断是否换车加入b数组保留前一站;3、程序测试结果【测试数据】30世家星城-通讯学院-石油公寓-潘家庄-明德门-杨家村-城南客运站-西八里村-医学院-纬二街-雁南路-大雁塔-赛格电脑城-李家村-和平门-大差市-五路口-火车站;603电视塔-国展中心-吴家坟-八里村-纬二街-小寨-长安立交-省体育场-草场坡-南稍门-南门-钟楼-北门-火车站;37城北客运站-公交六公司-方新村-龙首村-北关-钟楼-东门-兴庆路-建工路-幸福路南口;(每一个车的线路占一行);【输出结果】1公交线路查询:2 站点查询:3 最优方案:【程序性能评价】使用简单;结果正确、明了;【性能改进方向】1.将邻接矩阵改为三维,即在相同两站间由多个公交可以到达;2.在站点里加入方位,即在寻找最优结果的时候可以不必将所有站点进行操作,加快运行速度;3.在公交车类中加入收费,在最优结果输出时计算收费(有刷卡、投币、按站收费);【收获及体会】通过这个程序的编写使我对c++中文件的操作、图的操作、栈的操作、查找等内容有了更深的理解,在编译的过程中也是我知道了自己的数据结构课程内容还很浅,还需要在努力;4、源程序代码#include<>umber=-1;buses[i].length=0;}}void Insertstate(char state[]) xt"); xt'"<<endl;exit(0);}while(!()&¤tbus<Maxbus) umber; us_state[k++],a); us_state[k++],a);Insertstate(a);buses[currentbus].length=k; ength-1;k++) us_state[k],buses[i].bus_state[k+1],buses[i].number);}bool IsGraphFull() umber==number)break;if(i==currentbus)cout<<"查无此车!"<<endl;else{ us_state[0]<<"<—>"<<buses[i].bus_state[buses[i].length-1]<<")"<<endl;for(int j=0;j<buses[i].length-1;j++)cout<<buses[i].bus_state[j]<<"<—>";cout<<buses[i].bus_state[j]<<endl;}}int searchbusnumber(char v0[],char v1[]) umber)break;for(k=0;k<buses[l].length;k++){if(strcmp(buses[l].bus_state[k],v0)==0)i=k;if(strcmp(buses[l].bus_state[k],v1)==0)j=k;}if(i<j) us_state[0]<<"->"<<buses[l].bus_state[buses[l].length-1]<<")"<<endl;elsecout<<"("<<buses[l].bus_state[0]<<"<-"<<buses[l].bus_state[buses[l].length-1]<<")"<<endl;}friend void busline(); 交线路查询"<<endl;cout<<" 2.站点查询"<<endl;cout<<" 3.最优乘车方案查询"<<endl;cout<<" 4.退出系统"<<endl;cout<<"请输入您要选择的服务:";cin>>flag;cout<<endl;switch(flag){case 1:busline();break; 定车号的公交查询"<<endl;cout<<" 2.已有所有公交线路浏览"<<endl;cout<<" 3.返回首页"<<endl;cout<<"请输入您要选择的服务:";cin>>flag;cout<<endl;switch(flag){case 1:cout<<"请输入车号:"; umber);mainsurface();break;case 3:default:mainsurface();break;}}void searchstate() //站点查询{char name[20];Graph map; //建立图();cout<<" 站点查询"<<endl;cout<<"请输入要查询的站点:";cin>>name;for(int i=0;i<;i++) //查找站点if(strcmp[i],name)==0)break;if(i==cout<<"查无此站!"<<endl;else{ //找到,在图中找到它的下一站,及所到的公交车cout<<endl<<name<<"的下一站有:"<<endl;for(int j=0;j<;j++)if[i][j]>0&&[i][j]<MaxValue){cout<<[j]<<" "<<[i][j];(name,[j]);}}mainsurface();}int main(){mainsurface(); //调用主界面return 0;}。
广东海洋大学数据库期末试题和答案3套(完整版考试必出)
广东海洋大学数据库期末试题和答案3套(完整版考试必出)一、选择题1、数据库系统的基本特征是_________。
A、数据的统一控制B、数据共享性和统一控制C、数据共享性、独立性和冗余度小D、数据共享性和数据独立性(难度系数C)正确答案:C2、DB、DBMS和DBS三者之间的关系是_________。
A、DBS与DB和DBMS无关B、DBMS包括DBS和DBC、DB包括DBMS和DBSD、DBS包括DB和DBMS(难度系数B)正确答案:D3、设有关系R和S,关系代数R(RS)表示的是_________。
A、R∩SB、R―SC、R÷SD、R∪S(难度系数B)正确答案:A4、自然连接是构成新关系的有效方法。
一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的__________。
A、行B、属性C、记录D、元组(难度系数C)正确答案:B5、以下是信息世界的模型,且实际上是现实世界到机器世界的一个中间层次的是_________。
A、数据模型B、概念模型C、关系模型D、E-R图(难度系数C)正确答案:C6、构成E—R模型的三个基本要素是_________。
7、在关系代数运算中,五种基本运算为_________。
A、并、差、选择、投影、连接B、并、交、选择、投影、笛卡尔积C、并、差、选择、投影、笛卡尔积《数据库原理及应用》试题1D、并、除、投影、笛卡尔积、选择(难度系数B)正确答案:C8、在下列关于规范化理论的叙述中,不正确的是_________。
A、任何一个关系模式一定有键。
B、任何一个包含两个属性的关系模式一定满足3NF。
C、任何一个包含两个属性的关系模式一定满足BCNF。
D、任何一个包含三个属性的关系模式一定满足2NF。
(难度系数B)正确答案:D9、设有关系模式R(A,B,C)和S(C,D)。
与SQL语句“SELECTA,B,DFROMR,SWHERER.C=S.C”等价的关系代数表达式为_________。
C语言课程设计——简易公交车管理系统
#include ""#include ""#include ""#include ""/**************************函数声明************************************/void init(); .\n");fp=fopen("","w"); um!='\0')continue;else{printf("\n添加第%d辆公交车路线记录:\n",i+1);printf("\n请输入路线编码(3位编码,第一位为大写字母,后两位为数字):\n"); um,cc)==0){printf("\n与已有路线编码重复,按回车键返回!!!\n");fflush(stdin); um,cc);printf("\n请输入司机姓名: "); ame);printf("\n请输入途径站台总数(>=2):"); ;printf("\n");if(a[i].n<2||a[i].n>12){while(a[i].n<2||a[i].n>12){printf("\n站台总数应满足(2<=n<=12),请重新输入: ");scanf("%d",&a[i].n);printf("\n");}}for(j=0;j<a[i].n;j++){printf("请输入第%d个站台名称: ",j+1);[j].c);}printf("\n自动生成公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++){printf(" ----> (%d) %s",j+1,a[i].b[j].c);}printf("\n\n请输入公交车的起始时间(格式为:时:分): "); open);printf("请输入公交车的终止时间(格式为:时:分): "); close);printf("\n请输入公交车的票价: "); oney);printf("\n第%d辆公交车路线记录创建成功!!!\n",i+1);save();printf("\n\t按回车键返回!!!\n");fflush(stdin); um!='\0'&&i<N;i++) um!='\0'&&j<N;j++)if(strcmp(a[i].num,a[j].num)>0)min=j;t=a[i];a[i]=a[min];a[min]=t;}printf("\n\n 公交车信息库");printf("\n********************************************************************************\n");for(i=0;*a[i].num!='\0'&&i<N;i++){printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}printf("\n********************************************************************************\n");printf("\n\t\t公交车信息显示完毕!!!\n");printf("\n\t\t输入回车键返回主菜单:");fflush(stdin); um!='\0'&&i<N;i++) um,cc)==0) {m=1;printf("\n\n\t\t已找到!!!\n");while(1){system("cls");printf("\n\n 正在修改的公交车信息\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - \n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");modmeun();fflush(stdin); um!='\0'&&k<N;k++){if(strcmp(a[k].num,mod)==0){printf("与已有编号重复,按回车键返回主菜单\n");fflush(stdin);um,mod);save();break;}case '2': ame);printf("\n请输入新的公交车票价:");scanf("%d",&a[i].money);save();break;}case '3': +1>12) +1<k){printf("目前共%d个站点,无法添加第%d个站点\n请重新输入:",a[i].n,k);scanf("%d",&k);printf("\n");}a[i].n=a[i].n+1;for(j=a[i].n;j>k-1;j--){a[i].b[j]=a[i].b[j-1];}printf("\n请输入新添加的站点名称:");scanf("%s",a[i].b[k-1].c);save();break;}case '2': [k-1].c);save();break;}case '3': ;j++){a[i].b[j]=a[i].b[j+1];}a[i].n=a[i].n-1;save();break;}case '4': ;printf("\n");while(a[i].n<2||a[i].n>12) ;printf("\n");}for(j=0;j<a[i].n;j++){printf("请输入新的第%d个站台名称:",j+1);scanf("%s",a[i].b[j].c);}printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");save();break;}case '5': open);printf("请输入公交车的终止时间(格式为:时:分): ");scanf("%s",a[i].tclose);save();break;}case '5':{printf("\n\t\t按回车键返回主菜单\n");fflush(stdin);um!='\0'&&i<N;i++) um,cc)==0){m=1;printf("\n已找到:\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");printf("即将删除该公交车信息!!!\n确定请按1:");scanf("%d",&t);if(t==1){if(i+1==N)memset(&a[i],'\0',sizeof(struct bus));um!='\0'&&j+1<N;j++) um!='\0'&&i<N;i++){for(j=0;j<a[i].n;j++)for(k=j+1;k<a[i].n;k++)if(strcmp(a[i].b[j].c,c1)==0&&strcmp(a[i].b[k].c,c2)==0){m=1;printf("\n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}}printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");printf("\t\t\t\t显示完毕\n");if(m==0)printf("\n\n\t\t\t\t抱歉,无途径此路线的公交车\n");printf("\n\t\t\t\t输入回车键返回查询菜单:");fflush(stdin); um!='\0'&&i<N;i++){if(strcmp(a[i].num,cc)==0){m=1;printf("\n已找到:\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");break;}}if(m==0)printf("\n\t\t无此公交车信息\n");printf("\n\t\t输入回车键返回查询菜单:");fflush(stdin); um!='\0'&&i<N;i++){if(strcmp(a[i].b[0].c,cc)==0){m=1;printf("\n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}}printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");printf("\t已全部显示完毕!!!\n");if(m==0)printf("\n\t没有公交车以该站点为起始站台\n");break;}case '2':{printf("请输入您所要查询的终止站台名称:\n");scanf("%s",cc);printf("\n以%s为终止站台的公交车如下:\n",cc);printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");for(i=0;*a[i].num!='\0'&&i<N;i++){k=a[i].n;if(strcmp(a[i].b[k-1].c,cc)==0){m=1;printf("\n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}}printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\n");printf("\t已全部显示完毕!!!\n");if(m==0)printf("\n\t没有公交车以该站点为起始站台\n");break;}case '3':{printf("请输入您所要查询的途径站台名称:\n");scanf("%s",cc);printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");for(i=0;*a[i].num!='\0'&&i<N;i++)for(k=1;k<a[i].n-1;k++)if(strcmp(a[i].b[k].c,cc)==0){m=1;printf("\n");printf("\t路线编号: %-6s\t单程票价: %d 元\t\t司机姓名: %s\n",a[i].num,a[i].money,a[i].name);printf("\t起始时间: %-6s\t终止时间: %-6s\t站台总数: %d\n",a[i].topen,a[i].tclose,a[i].n);printf("\t公交路线:(1) %s",a[i].b[0].c);for(j=1;j<a[i].n;j++)printf(" ---->(%d) %s",j+1,a[i].b[j].c);printf("\n\n");}printf("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - \n\n");printf("\t已全部显示完毕!!!\n");if(m==0)printf("\n\t没有公交车以该站点为途径站台\n");break;}case '4':{printf("\n\t\t按回车键返回查询菜单\n");fflush(stdin); um!='\0'&&i<N;i++) //将内存中的数据输出到磁盘中if(fwrite(&a[i],sizeof(struct bus),1,fp)!=1)break;printf("\n\t保存成功!!!\n");fclose(fp);return;}void mainmeun() //主菜单{printf("\n\t\t 主菜单");printf("\n\t\t****************************************");printf("\n\t\t* 1、信息录入 *");printf("\n\t\t* 2、信息显示 *");printf("\n\t\t* 3、信息修改 *");printf("\n\t\t* 4、信息删除 *");printf("\n\t\t* 5、信息查询 *");printf("\n\t\t* 6、退出系统 *");printf("\n\t\t****************************************");printf("\n\n\t\t\t请输入您的选择:");}//菜单输入检测函数char Test(char a,char b,char c){while(a<b||a>c){printf("\n\t\t\t输入错误,请重新输入: ");fflush(stdin); //清除键盘缓冲区a=getchar();}return a;}。
广东海洋大学公交换乘系统课程设计
广东海洋大学信息学院课程设计报告设计题目公交换乘系统课程名称数据结构姓名(学号)201411621146联系电话专业名称计算机科学与技术所在班级计科1141指导教师谢仕义教师职称教授起止时间2015 年11月20日至2015年12月26日评定成绩目录一、课程设计主要内容………………………………………P31.1 概况…………………………………………………………….P3 1.2 主要内容……………………………..………………….…P41.3 开发环境和工具………………………………..…………….P4二、功能和结构设计………………………………………….P4三、流程图和算法设计……………………………………………P4四、源程序代码………………………………………….…..P9五、课程设计总结………………………………………….…..P175.1 优点……………………………………………………P175.2 缺点……………………………………………………P175.3 自我总结……………………………………………P17六、参考资料……………………………………………….…..P18一、课程设计主要内容1.1 概况名称:公交换乘系统用途:交通运输公司、乘客功能:实现最优路线的显示1.2 主要内容公交换乘在一个城市的公共交通系统设计中占据着极其重要的地位,公交换乘的过程将直接影响居民出行时间的长短,公交换乘的过程如下:指定一起始公交站点与目的公交站点,依据参考因素,例如:换乘路线的路径最短、耗费时间最短、所需车资最少等,经过分析处理得到可达目的站点换乘次数最少的乘车方案,具体可分为:(1)零次换乘起始站点和目的站点之间存在可直达的公交线路,即出行居民无需转乘就可以直接到达目的站点,这也是较为理想的方案。
(2)一次换乘起始站点和目的站点之间没有公交车直接往返,即两站点之间不存在可直达的公交线路,则出行居民需要在途经的某个站点下车,然后转乘另一线路公交车才能达到目的站点。
C++课设 公交车系统 有注释
#include<iostream>#include<fstream>#include<string>#include<iomanip>using namespace std;class bus{public:void save();//录入信息void showall();//显示所有公交路线void searchroute();//根据起始站和终点站查询路线void del();//删除站点private:int route,station,price;string start;string end;string pass[100][30];};void menu();//-------------录入路线信息---------------void bus::save(){string pass[100][30],busstart,busend;int busroute,busstation,busprice,i,m;ofstream outfile("c1.txt",ios::app); //----打开文件----if(!outfile){cerr<<" open error"<<endl;exit(1);}//==========按照提示录入路线信息==========cout<<"============================================================"<<endl;cout<<"线路"<<"全程站点"<<"起始站"<<"终点站"<<"票价"<<"途经站点"<<endl;cin>>busroute;route=busroute;outfile<<left<<setw(10)<<route;cin>>busstation;station=busstation;outfile<<left<<setw(10)<<station;cin>>busstart;start=busstart;outfile<<left<<setw(10)<<start;cin>>busend;end=busend;outfile<<left<<setw(10)<<end;cin>>busprice;price=busprice;outfile<<left<<setw(10)<<price;m=route;for(i=0;i<30;i++){cin>>pass[m][i];if(pass[m][i]=="1")break;elseoutfile<<left<<setw(10)<<pass[m][i];}outfile<<"\r\n";cout<<"路线信息已成功保存!"<<endl;outfile.close();//=========关闭文件==========}//------------------显示所有路线-----------------void bus::showall(){string buspass,busstart,busend,str;ifstream infile("c1.txt",ios::in);if(!infile){cerr<<" 0open error"<<endl;exit(1);}cout<<"路线全程站点起始站终点站票价途经站点"<<endl;while(getline(infile,str)){cout<<"==================================================================== ============"<<endl;cout<<str<<endl;cout<<"==================================================================== ============"<<endl;}infile.close();}//--------------站站查询-------------------void bus::searchroute(){system("cls");string pass[30],start,end,ch1,ch2,a,b,str1,str2=" ";int station,price,j=0;fstream infile("c1.txt",ios::in);if(!infile){cerr<<" open error"<<endl;//fopenexit(1);}cout<<"=========="<<endl;cout<<"= 起始站="<<endl;cout<<"=========="<<endl;cin>>ch1;cout<<"=========="<<endl;cout<<"= 终点站="<<endl;cout<<"=========="<<endl;cin>>ch2;while(!infile.eof()){str2=" ";infile>>route>>station>>start>>end>>price;for(int i=0;i<station-2;i++){infile>>pass[i];str2+=pass[i];str2+="\t\t";}if(start==ch1&&end==ch2){cout<<endl<<"---------------------------------------------------------------"<<endl;cout<<"路线全程站点起始站终点站票价"<<endl;cout<<endl<<"---------------------------------------------------------------"<<endl;cout<<route<<" "<<station<<" "<<start<<" "<<end<<" "<<price<<endl;cout<<"途经站点:"<<str2;cout<<"\n\n\n您应乘坐"<<route<<"路车\n\n";j=1;}}if(j==0)cout<<"系统未收录此站点"<<endl;infile.close();}void bus::del(){string str[100];int k,i=1,a=1;string start[100],end[100],pass[100];ifstream infile("c1.txt",ios::in);if(!infile){cerr<<" open error"<<endl;exit(1);}while(getline(infile,str[a])){cout<<"序号:"<<a<<endl;cout<<str[a]<<endl;a++;}cout<<"你想删除第几路?"<<endl;cin>>k;infile.close();ofstream outfile("c1.txt",ios::out);if(!outfile){cerr<<" open error"<<endl;exit(1); //退出程序}for(i=1;i<a;i++){if(k!=i)outfile<<str[i]<<"\r\n";}outfile.close();cout<<"已删除成功!"<<endl;}//主函数void main(){bus a;void menu();char ch;menu();cin>>ch;while(ch!='0'){system("cls");switch(ch){case '1':a.save();break;case '2':a.showall();break;case '3':a.del();break;case '4':a.searchroute();break;default:cout<<"没有此选项!"<<endl;break;}menu();cin>>ch;}}void menu(){cout<<"★★★★★★★★★★★★★★★★"<<endl;cout<<"★公交线路管理系统★"<<endl;cout<<"★★★★★★★★★★★★★★★★"<<endl;cout<<"★★"<<endl;cout<<"★ 1.输入路线信息★"<<endl;cout<<"★ 2.显示所有路线★"<<endl;cout<<"★ 3.删除线路★"<<endl;cout<<"★ 4.站站查询★"<<endl;cout<<"★★"<<endl;cout<<"★★★★★★★★★★★★★★★★"<<endl; }。
大学课程设计报告公交查询系统的设计-课程设计报告
2016-2017学年第一学期《Windows程序设计》课程设计报告题目:公交查询系统的设计专业:班级:姓名:指导教师:成绩:二0一六年十一月十五日目录1需求分析: (3)2概要设计: (3)2.1设计思想: (3)2.2实现模块: (4)2.2.1普通用户登录,车次查询: (4)2.2.2站站查询: (6)2.2.3两次转车: (10)2.3管理员登录: (12)2.4程序中的创新点: (17)3详细设计: (17)3.1站站查询系统流程图 (17)3.2车次查询系统流程图 (17)3.3 管理员身份登录系统流程图 (18)4测试结果: (18)5小结: (25)6参考文献 (26)1需求分析:随着现在社会的发展,旅游和出差是避免不了的事。
身处一个并不熟悉的城市里,你的出门就会举步维艰。
或许你可以选择坐出租车,但高额的费用并不是一个普通的工薪阶级可以负担的起的。
这时,公交车便成了代步的最佳工具。
因此,开发一个城市的公交车查询系统就显得十分必要,可以说是关系到一个城市的形象问题。
本系统是利用C#语言开发的,结构紧凑、运行速度快、操作简单,更因为拥有自己的源代码,所以保证了软件具有高度的保密、安全性,将帮助出行人士方便、高效的安排自己的行程。
◆该软件为用户提供公交查询的基本功能,用户可以根据需要输入起始地点以及终止地点来查询公交路线。
◆当用户输入起始站时,公交查询系统根据用户输入的起始站和终止站对所有公交线路逐一查询。
若有起始站与终止站存在于同一线路的公交则系统显示出相应的公交线路号,否则,系统显示“没有这路公交车”。
◆如果用户没有找到可以直达的公交路线号,则可以通过中间转车来实现所要到达的地点。
中间转车可能会出现转一次不成功需要转两次车的情况。
故系统需要考虑到转一次车和转两次车的问题。
◆该软件还为用户提供了按照车辆编号来查询该编号下的公交车运行时所经过的路线;如果用户输入的车辆编号超过了系统所给的,则提示“数组越界!”,否则给出正确的行车路线。
c语言公交最优路径查询数据结构(附设计报告,完整代码)
《数据结构》课程设计说明2010.1工学院计算机信息工程学院《数据结构》课程设计报告题目公交路线上优化路径的查询年级2008级专业软件工程学生学号08030334(组长)学生学号08030337指导教师王树峰2010年01 月11 日工学院计算机信息工程学院《数据结构》课程设计任务书设计名称:公交线路上优化路径的查询指导教师:王树峰下达时间: 2010-01-11 学生: XXX (组长)学号:XXXXXXXXX学生: XXXX 学号: XXXXXXXX专业:软件工程一、课程设计的基本要求①根据上述公交线路的输入格式,定义并建立合适的图模型。
②针对上述公交线路,能查询获得任何两个站点之间最便宜的路径,即输入站名S,T后,可以输出从S到T的最便宜的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。
共花费x元。
③针对上述公交线路,能查询获得任何两个站点之间最省时间的路径(不考虑在中间站等下一辆线路的等待时间),即输入站名S,T后,可以输出从S 到T的考虑在中间站等下一辆线路的等待时间的最省时间的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。
共花费x时间。
④针对上述公交线路,能查询获得任何两个站点之间最省时间的路径(要考虑在中间站等下一辆线路的等待时间),即输入站名S,T后,可以输出从S 到T的考虑在中间站等下一辆线路的等待时间的最省时间的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。
共花费x时间。
二、课程设计的主要容(包含分工)主要容:首先将多有要用到的结构体全部定义完全,在课程设计的进程安排1.2010年01月10日之前:完成所有要用到的结构体的定义。
2.2010年01月11日——01月12日:完成建立合适的图模型以及信息的初始化。
C语言课程设计报告公交路线管理系统
合肥学院计算机科学与技术系课程设计报告2021~2021 学年第二学期课程C语言课程设计课程设计名称公交路线管理系统学生姓名杨莉莉学号18专业班级计本〔 4〕班指导教师徐静项向琴2021年6月24日一、需求解析本系统主要功能是实现对公交路线的管理和保护。
我们都知道,每个城市都会有公交路线的改动,若是使用这个系统,就可以及时的对路线信息进行改正和保存,是特别方便的,而且该系统使用起来也很方便。
用户只需依照显示的提示信息进行选择和输入就可以实现你要求的功能。
该系统拥有增加,盘问,删除,改正和显示全部记录的功能。
用户能够依照实质情况进行相应的功能选择。
其详细功能简单描述以下:(1〕保存:立刻信息存入指定文件中。
当用户对原始数据进行相关的改动〔主若是对路线信息进行增加、删除、改正〕此后,用户能够依照自己的选择判断可否要保存到文件中,这样就实现了信息的记录功能,以方便用户随时进行查察。
(2〕增加:即增加一条新的公交路线或许是某一条路线上的站点。
每次能够增加一条路线信息,假设用户想增加多条路线信息的话能够重复执行该功能,同样的,增加站点的话也是每一次增加一个站点,假设用户想增加多条路线信息的话也只需要重复执行该功能即可。
这样,就实现了对公交路线的增加信息管理。
(3〕盘问:即能够查找出你要的公交路线信息和总合有多少站。
简单地说,就是用户先选择你要盘问的公交路线号,在输入起点站和终点站名称,尔后系统就会自动显示出起点站和终点站之间共有多少站点,以及起点站和终点站之间全部站点的序号和名称,从而使用户如数家珍的知道站点信息,而不需要像看地图那样一个站点一个站点的用肉眼进行查找,这就为用户节约了好多时间。
(4〕删除:即能删除掉一条你所不需要的公交路线信息和某一条路线上的站点。
假设要删除路线时只需要输入你要删除的公交路线号即可,假设要删除站点也只需输入你要删除的站点序号,不需要输入该站点名称。
(5) 改正:即能改正一条你需要该的路线信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广东海洋大学信息学院课程设计报告设计题目公交换乘课程名称数据结构姓名(学号)联系电话专业名称所在班级指导教师教师职称起止时间评定成绩一、课程设计的主要内容公交换乘在一个城市的公共交通系统设计中占据着极其重要的地位,公交换乘的过程将直接影响居民出行时间的长短,公交换乘的过程如下:指定一起始公交站点与目的公交站点,依据参考因素,例如:换乘路线的路径最短、耗费时间最短、所需车资最少等,经过分析处理得到可达目的站点换乘次数最少的乘车方案,具体可分为:(1)零次换乘起始站点和目的站点之间存在可直达的公交线路,即出行居民无需转乘就可以直接到达目的站点,这也是较为理想的方案。
(2)一次换乘起始站点和目的站点之间没有公交车直接往返,即两站点之间不存在可直达的公交线路,则出行居民需要在途经的某个站点下车,然后转乘另一线路公交车才能达到目的站点。
(3)多次换乘在起始站点和目的站点之间没有可直达的公交线路,出行居民需要经过一次以上的转乘才能达到目的站点,则得到多次换乘方案。
多次换乘方案可通过一次换乘的递归计算得到,一般情况下,超过两次转乘的方案对于出行居民来说是难以接受的,本课程设计只要求计算零次和一次换乘方案,对于一次以上的公交换乘不作要求。
二、功能和结构设计1、功能设计在这里通过主函数显示程序的主页版,上面是湛江的公交线路图在这里输入出发站点的名字,回车确定!在这里输入最终站点的名字!输入错误会提醒重新输入!输入要查询的起点和终点0次换乘,输出查询结果:按y或Y,可以继续查询!输入出发点和终点,一次换乘的结果如下:2、结构设计设计一个实现公交换乘的算法:指定任一起始站点和目的站点,依据算法得到所有可达目的站点的的公交线路,包括中间站点的换乘方法以及该公交线路所经过的公交站点。
1.分析公交站点和公交线路的数据属性,并依据公交换乘的功能要求,确定算法设计方案;2.设计公交站点信息以及公交线路信息的存储结构;3.设计公交换乘算法,并画出程序流程图;4.使用C++程序设计语言编写实现公交换乘的程序;三、流程图和算法设计四、源程序代码#include<iostream>#include<string>using namespace std;const int pathlen=11;int qd,zd;//起点,终点的下标string a[4]={"农垦医院站","广州湾站","霞湖医院站","海滨宾馆站"}; class Busline{public:Busline(string p[],int n);void zhida(int i,string sp,string fp,string p[],int l);void gjhc(int i,int j,string sp,string fp,string p1[],string p2[]);void tu();private:string bus[pathlen];};Busline::Busline(string p[],int n){if(n>pathlen) throw"上溢";for(int i=0;i<pathlen;i++){bus[i]=p[i];}}void Busline::zhida(int i,string sp,string fp,string p[],int l){qd=i;for(int j=0;j<pathlen;j++)if(fp==p[j]){cout<<"可以直达,乘坐"<<l<<"号车!"<<endl;if(i<j){cout<<"该路线为:"<<endl;for(int k=i;k<=j;k++){cout<<p[k]<<" ";}}elsecout<<"该路线为:"<<endl;for(int k=i;k>=j;k--){cout<<p[k]<<" ";}}}void Busline::gjhc(int i,int j,string sp,string fp,string p1[],string p2[]) {qd=i;zd=j;for(int k=0;k<pathlen;k++)for(int h=0;h<pathlen;h++)if(fp==p1[h]&&sp==p2[k]){for(int x=0;x<4;x++)for(int l=0;l<pathlen;l++)for(int l1=0;l1<pathlen;l1++){if(a[x]==p2[l]&&a[x]==p1[l1]){if(i<l){for(int y=i;y<l;y++){cout<<"经"<<p2[y]<<" ";}if(j<l1){cout<<"在"<<a[x]<<"转程,"<<" ";for(int z=l1;z>=j;z--){cout<<"经"<<p1[z]<<" ";}cout<<"到"<<fp<<endl;}else if(j>l1){cout<<"在"<<a[x]<<"转程,"<<" ";for(int z=l1;z<=j;z++){cout<<"经"<<p1[z]<<" ";}cout<<"到"<<fp<<endl;}}else if(i>l){cout<<"在"<<a[x]<<"转程,"<<" ";for(int y=i;y>l;y--){cout<<"经"<<p2[y]<<" ";}cout<<"到"<<fp<<endl;if(j<l1){for(int z=l1;z>=j;z--){cout<<"转"<<p1[z]<<" ";}}else if(j>l1){cout<<"在"<<a[x]<<"转程,"<<" ";for(int z=l1;z<=j;z++){cout<<"转"<<p1[z]<<" ";}cout<<"到"<<fp<<endl;}}}}}}void Busline::tu(){cout<<" 湛江公交路线图"<<endl;cout<<" 2线|"<<endl;cout<<" |"<<endl;cout<<" 东华站○"<<endl;cout<<" ||"<<endl;cout<<" 湾桥站○潜水运动○海滨医院站"<<endl;cout<<" |学校站|海上城市站"<<endl;cout<<" ̄农垦医院站● ̄ ̄○ ̄ ̄ ̄●海滨宾馆站 ̄ ̄ ̄○ ̄ ̄ ̄|"<<endl;cout<<" |||"<<endl;cout<<" 啤酒厂站○○儿童公园站○市旅游总公司站"<<endl;cout<<" |||"<<endl;cout<<" 俱乐部站○||"<<endl;cout<<" |广州湾站||霞湖医院站"<<endl;cout<<"  ̄○ ̄○ ̄ ̄● ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄● ̄ ̄○ ̄ ̄"<<endl;cout<<" 广医附院站国贸站|建新东路站|霞山汽车运输总站"<<endl;cout<<" ||"<<endl;cout<<" 3线||"<<endl;cout<<"  ̄ ̄○ ̄ ̄○ ̄ ̄ ̄○ ̄○建设路站○海运集团公司站"<<endl;cout<<"世纪广场站人民大道湛江汽车南站|"<<endl;cout<<" 中巴专线|1线"<<endl;cout<<" (●为换乘站点,○为普通站点) "<<endl;cout<<endl;}void main(){string path1[pathlen]={"农垦医院站","潜水运动学校站","海滨宾馆站","海上城市站","市旅游总公司站","霞湖医院站","海运集团公司站"};string path2[pathlen]={"东华站","湾桥站","农垦医院站","啤酒厂站","俱乐部站","广医附院站","国贸站","广州湾站","建新东路站","霞湖医院站","霞山汽车运输总站"};string path3[pathlen]={"海滨医院站","海滨宾馆站","儿童公园站","广州湾站","建设路站","湛江汽车南站","人民大道中巴专线","世纪广场站"};Busline a(path1,7);Busline b(path2,11);Busline c(path3,8);a.tu();string sp,fp;begin:cout<<"请输入出发点:"<<endl;cin>>sp;begin1:cout<<"请输入终点:"<<endl;cin>>fp;int j1=1,jj=1;for(int d=0;d<7;d++){if(sp==path1[d])j1=2;if(fp==path1[d])jj=2;}for( d=0;d<11;d++){if(sp==path2[d])j1=2;if(fp==path2[d])jj=2;}for( d=0;d<8;d++){if(sp==path3[d])j1=2;if(fp==path3[d])jj=2;}if(j1==1){cout<<"输入的出发点有错,请重新输入:"<<endl;goto begin;}if(jj==1){cout<<"输入的终点点有错,请重新输入:"<<endl;goto begin1;}elsefor(int i=0;i<pathlen;i++){for(int k1=0;k1<pathlen;k1++)if(fp==path1[k1]){if(sp==path1[i]){a.zhida(i,sp,fp,path1,1);}else if(sp!=path1[i]){if(sp==path2[i]){cout<<"需要换乘,转程方式为:2路转1路线"<<endl;a.gjhc(i,k1,sp,fp,path1,path2);}if(sp==path3[i]){cout<<"需要换乘,转程方式:3路转1路线"<<endl;a.gjhc(i,k1,sp,fp,path1,path3);}}}else if(fp==path2[k1]){if(sp==path2[i]){b.zhida(i,sp,fp,path2,2);}else if(sp!=path2[i]){if(sp==path1[i]){cout<<"需要换乘,转程方式:1路转2路线"<<endl;b.gjhc(i,k1,sp,fp,path2,path1);}else if(sp==path3[i]){cout<<"需要换乘,转程方式:3路转2路线"<<endl;b.gjhc(i,k1,sp,fp,path2,path3);}}}else if(fp==path3[k1]){if(sp==path3[i]){c.zhida(i,sp,fp,path3,3);}else if(sp!=path3[i]){if(sp==path1[i]){cout<<"转程方式:1路转3路线"<<endl;c.gjhc(i,k1,sp,fp,path3,path1);}else if(sp==path2[i]){cout<<"转程方式:2路转3路线"<<endl;c.gjhc(i,k1,sp,fp,path3,path2);}}}}cout<<"\n"<<"是否继续?继续请输入y或者Y!!!"<<endl;char t;cin>>t;if(t=='y'||t=='Y')goto begin;elseexit(1);}五、课程设计总结在这次关于公交换乘的课程设计中,我了解到了我的不足,如算法的不完善、不细心和耐心不是很好等等。