全国交通咨询模拟 数据结构 源代码.doc_第1页
全国交通咨询模拟 数据结构 源代码.doc_第2页
全国交通咨询模拟 数据结构 源代码.doc_第3页
全国交通咨询模拟 数据结构 源代码.doc_第4页
全国交通咨询模拟 数据结构 源代码.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

/ 全国交通咨询模拟.cpp : 定义控制台应用程序的入口点。/#include stdafx.h#include #include #include #include #includeusing namespace std;#define INF 9999999 /定义一个最大数定为无穷值#define MAX 30/最多可以添加15个城市int addcityflag=0;/标记添加城市的个数int delcityflag=0;/标记删除城市的个数int delcity6;/delcity0不用static int c_number=25;/当前城市个数typedef int costAdjMAX+1MAX+1;/邻接矩阵从1开始记数/定义该类型int PathMAX+1MAX+1MAX+1;/三维矩阵用来输出Pathii“二维”中的路径costAdj h_cost,h_time,h_transer,p_cost,p_time,p_transer;/全局矩阵costAdj COST,ELSE;/乘放不同类型的领接矩阵string addcity6;/addcity0不用,最多添加5个城市信息/用来添加城市名称void set_h_cost()/构造火车费用的邻接矩阵for(int i=1;i=MAX;i+)/矩阵各值置为INFfor(int j=1;j=MAX;j+)h_costij=INF;h_cost12=h_cost21=842;/成都-西安h_cost16=h_cost61=967;/成都-贵阳h_cost23=h_cost32=511;/西安-郑州h_cost310=h_cost103=349;/郑州-徐州h_cost34=h_cost43=534;/郑州-武汉h_cost45=h_cost54=409;/武汉-株洲h_cost58=h_cost85=675;/株洲-广州h_cost56=h_cost65=902;/株洲-贵阳h_cost67=h_cost76=607;/贵阳-柳州h_cost57=h_cost75=672;/株洲-柳州h_cost97=h_cost79=255;/柳州-南宁h_cost611=h_cost116=639;h_cost111=h_cost111=1100;h_cost513=h_cost135=367;h_cost812=h_cost128=140;h_cost1314=h_cost1413=622;h_cost1315=h_cost1513=825;h_cost1015=h_cost1510=651;h_cost1017=h_cost1710=674;h_cost316=h_cost163=695;h_cost1617=h_cost1716=137;h_cost1718=h_cost1817=704;h_cost1819=h_cost1918=397;h_cost1820=h_cost2018=305;h_cost2021=h_cost2110=242;h_cost1623=h_cost2316=668;h_cost222=h_cost222=676;h_cost2223=h_cost2322=1145;h_cost2225=h_cost2522=216;h_cost2224=h_cost2422=1892;void set_p_cost()/构造飞机费用的邻接矩阵for(int i=1;i=MAX;i+)/矩阵各值置为INFfor(int j=1;j=MAX;j+)p_costij=INF;p_cost12=p_cost21=842*2;/成都-西安p_cost16=p_cost61=967*2;/成都-贵阳p_cost23=p_cost32=511*2;/西安-郑州p_cost310=p_cost103=349*2;/郑州-徐州p_cost34=p_cost43=534*2;/郑州-武汉p_cost45=p_cost54=409*2;/武汉-株洲p_cost58=p_cost85=675*2;/株洲-广州p_cost56=p_cost65=902*2;/株洲-贵阳p_cost67=p_cost76=607*2;/贵阳-柳州p_cost57=p_cost75=672*2;/株洲-柳州p_cost97=p_cost79=255*2;/柳州-南宁p_cost611=p_cost116=639*2;p_cost111=p_cost111=1100*2;p_cost513=p_cost135=367*2;p_cost812=p_cost128=140*2;p_cost1314=p_cost1413=622*2;p_cost1315=p_cost1513=825*2;p_cost1015=p_cost1510=651*2;p_cost1017=p_cost1710=674*2;p_cost316=p_cost163=695*2;p_cost1617=p_cost1716=137*2;p_cost1718=p_cost1817=704*2;p_cost1819=p_cost1918=397*2;p_cost1820=p_cost2018=305*2;p_cost2021=p_cost2110=242*2;p_cost1623=p_cost2316=668*2;p_cost222=p_cost222=676*2;p_cost2223=p_cost2322=1145*2;p_cost2225=p_cost2522=216*2;p_cost2224=p_cost2422=1892*2;void set_h_time()/构造火车费用的邻接矩阵for(int i=1;i=MAX;i+)/矩阵各值置为INFfor(int j=1;j=MAX;j+)h_timeij=INF;h_time12=h_time 21=8;/成都-西安h_time16=h_time61=9;/成都-贵阳h_time23=h_time32=5;/西安-郑州h_time310=h_time103=3;/郑州-徐州h_time34=h_time43=5;/郑州-武汉h_time45=h_time54=4;/武汉-株洲h_time58=h_time85=6;/株洲-广州h_time56=h_time65=9;/株洲-贵阳h_time67=h_time76=6;/贵阳-柳州h_time57=h_time75=6;/株洲-柳州h_time97=h_time79=2;/柳州-南宁h_time611=h_time116=6;h_time111=h_time111=11;h_time513=h_time135=3;h_time812=h_time128=1;h_time1314=h_time1413=6;h_time1315=h_time1513=8;h_time1015=h_time1510=6;h_time1017=h_time1710=6;h_time316=h_time163=6;h_time1617=h_time1716=1;h_time1718=h_time1817=7;h_time1819=h_time1918=3;h_time1820=h_time2018=3;h_time2021=h_time2110=2;h_time1623=h_time2316=6;h_time222=h_time222=6;h_time2223=h_time2322=11;h_time2225=h_time2522=2;h_time2224=h_time2422=18;void set_p_time()/构造飞机费用的邻接矩阵for(int i=1;i=MAX;i+)for(int j=1;j=MAX;j+)p_timeij=INF;p_time12=p_time 21=8/2;/成都-西安p_time16=p_time61=9/2;/成都-贵阳p_time23=p_time32=5/2;/西安-郑州p_time310=p_time103=3/2;/郑州-徐州p_time34=p_time43=5/2;/郑州-武汉p_time45=p_time54=4/2;/武汉-株洲p_time58=p_time85=6/2;/株洲-广州p_time56=p_time65=9/2;/株洲-贵阳p_time67=p_time76=6/2;/贵阳-柳州p_time57=p_time75=6/2;/株洲-柳州p_time97=p_time79=2/2;/柳州-南宁p_time611=p_time116=6/2;p_time111=p_time111=11/2;p_time513=p_time135=3/2;p_time812=p_time128=1/2;p_time1314=p_time1413=6/2;p_time1315=p_time1513=8/2;p_time1015=p_time1510=6/2;p_time1017=p_time1710=6/2;p_time316=p_time163=6/2;p_time1617=p_time1716=1/2;p_time1718=p_time1817=7/2;p_time1819=p_time1918=3/2;p_time1820=p_time2018=3/2;p_time2021=p_time2110=2/2;p_time1623=p_time2316=6/2;p_time222=p_time222=6/2;p_time2223=p_time2322=11/2;p_time2225=p_time2522=2/2;p_time2224=p_time2422=18/2;void set_p_transer()/构造飞机中转次数的邻接矩阵for(int i=1;i=MAX;i+)for(int j=1;j=MAX;j+)p_transerij=INF;p_transer12=p_transer21=1;/成都-西安p_transer16=p_transer61=1;/成都-贵阳p_transer23=p_transer32=1;/西安-郑州p_transer310=p_transer103=1;/郑州-徐州p_transer34=p_transer43=1;/郑州-武汉p_transer45=p_transer54=1;/武汉-株洲p_transer58=p_transer85=1;/株洲-广州p_transer56=p_transer65=1;/株洲-贵阳p_transer67=p_transer76=1;/贵阳-柳州p_transer57=p_transer75=1;/株洲-柳州p_transer97=p_transer79=1;/柳州-南宁p_transer611=p_transer116=1;p_transer111=p_transer111=1;p_transer513=p_transer135=1;p_transer812=p_transer128=1;p_transer1314=p_transer1413=1;p_transer1315=p_transer1513=1;p_transer1015=p_transer1510=1;p_transer1017=p_transer1710=1;p_transer316=p_transer163=1;p_transer1617=p_transer1716=1;p_transer1718=p_transer1817=1;p_transer1819=p_transer1918=1;p_transer1820=p_transer2018=1;p_transer2021=p_transer2110=1;p_transer1623=p_transer2316=1;p_transer222=p_transer222=1;p_transer2223=p_transer2322=1;p_transer2225=p_transer2522=1;p_transer2224=p_transer2422=1;void set_h_transer()/构造火车中转次数的邻接矩阵for(int i=1;i=MAX;i+)for(int j=1;j=MAX;j+)h_transerij=INF;h_transer12=h_transer21=1;/成都-西安h_transer16=h_transer61=1;/成都-贵阳h_transer23=h_transer32=1;/西安-郑州h_transer310=h_transer103=1;/郑州-徐州h_transer34=h_transer43=1;/郑州-武汉h_transer45=h_transer54=1;/武汉-株洲h_transer58=h_transer85=1;/株洲-广州h_transer56=h_transer65=1;/株洲-贵阳h_transer67=h_transer76=1;/贵阳-柳州h_transer57=h_transer75=1;/株洲-柳州h_transer97=h_transer79=1;/柳州-南宁h_transer611=h_transer116=1;h_transer111=h_transer111=1;h_transer513=h_transer135=1;h_transer812=h_transer128=1;h_transer1314=h_transer1413=1;h_transer1315=h_transer1513=1;h_transer1015=h_transer1510=1;h_transer1017=h_transer1710=1;h_transer316=h_transer163=1;h_transer1617=h_transer1716=1;h_transer1718=h_transer1817=1;h_transer1819=h_transer1918=1;h_transer1820=h_transer2018=1;h_transer2021=h_transer2110=1;h_transer1623=h_transer2316=1;h_transer222=h_transer222=1;h_transer2223=h_transer2322=1;h_transer2225=h_transer2522=1;h_transer2224=h_transer2422=1;void pr(int i)/用来选择输出第i个城市的名称if(i=1 & delcity1!=1 & delcity2!=1 & delcity3!=1 & delcity4!=1 & delcity5!=1 )cout成都.;if(i=2 & delcity1!=2 & delcity2!=2 & delcity3!=2 & delcity4!=2 & delcity5!=2 )cout西安.;if(i=3 & delcity1!=3 & delcity2!=3 & delcity3!=3 & delcity4!=3 & delcity5!=3 )cout郑州.;if(i=4 & delcity1!=4 & delcity2!=4 & delcity3!=4 & delcity4!=4 & delcity5!=4 )cout武汉.;if(i=5 & delcity1!=5 & delcity2!=5 & delcity3!=5 & delcity4!=5 & delcity5!=5 )cout株洲.;if(i=6 & delcity1!=6 & delcity2!=6 & delcity3!=6 & delcity4!=6 & delcity5!=6 )cout贵阳.;if(i=7 & delcity1!=7 & delcity2!=7 & delcity3!=7 & delcity4!=7 & delcity5!=7 )cout柳州.;if(i=8 & delcity1!=8 & delcity2!=8 & delcity3!=8 & delcity4!=8 & delcity5!=8 )cout广州.;if(i=9 & delcity1!=9 & delcity2!=9 & delcity3!=9 & delcity4!=9 & delcity5!=9 )cout南宁.;if(i=10 & delcity1!=10 & delcity2!=10 & delcity3!=10 & delcity4!=10 & delcity5!=10 )cout徐州.;if(i=11 & delcity1!=11 & delcity2!=11 & delcity3!=11 & delcity4!=11 & delcity5!=11 )cout昆明.;if(i=12 & delcity1!=12 & delcity2!=12 & delcity3!=12 & delcity4!=12 & delcity5!=12 )cout深圳.;if(i=13 & delcity1!=13 & delcity2!=13 & delcity3!=13 & delcity4!=13 & delcity5!=13 )cout南昌.;if(i=14 & delcity1!=14 & delcity2!=14 & delcity3!=14 & delcity4!=14 & delcity5!=14 )cout福州.;if(i=15 & delcity1!=15 & delcity2!=15 & delcity3!=15 & delcity4!=15 & delcity5!=15 )cout上海.;if(i=16 & delcity1!=16 & delcity2!=16 & delcity3!=16 & delcity4!=16 & delcity5!=16 )cout北京.;if(i=17 & delcity1!=17 & delcity2!=17 & delcity3!=17 & delcity4!=17 & delcity5!=17 )cout天津.;if(i=18 & delcity1!=18 & delcity2!=18 & delcity3!=18 & delcity4!=18 & delcity5!=18 )cout沈阳.;if(i=19 & delcity1!=19 & delcity2!=19 & delcity3!=19 & delcity4!=19 & delcity5!=19 )cout大连.;if(i=20 & delcity1!=20 & delcity2!=20 & delcity3!=20 & delcity4!=20 & delcity5!=20)cout长春.;if(i=21 & delcity1!=21 & delcity2!=21 & delcity3!=21 & delcity4!=21 & delcity5!=21 )cout哈尔滨.;if(i=22 & delcity1!=22 & delcity2!=22 & delcity3!=22 & delcity4!=22 & delcity5!=22 )cout兰州.;if(i=23 & delcity1!=23 & delcity2!=23 & delcity3!=23 & delcity4!=23 & delcity5!=23 )cout呼和浩特.;if(i=24 & delcity1!=24 & delcity2!=24 & delcity3!=24 & delcity4!=24 & delcity5!=24 )cout乌鲁木齐.;if(i=25 & delcity1!=25 & delcity2!=25 & delcity3!=25 & delcity4!=25 & delcity5!=25 )cout0 & delcity1!=26 & delcity2!=26 & delcity3!=26 & delcity4!=26 & delcity5!=26 ) coutaddcity11 & delcity1!=27 & delcity2!=27 & delcity3!=27 & delcity4!=27 & delcity5!=27 ) coutaddcity22 & delcity1!=28 & delcity2!=28 & delcity3!=28 & delcity4!=28 & delcity5!=28 ) coutaddcity33 & delcity1!=29 & delcity2!=29 & delcity3!=29 & delcity4!=29 & delcity5!=29 ) coutaddcity44 & delcity1!=30 & delcity2!=30 & delcity3!=30 & delcity4!=30 & delcity5!=30 ) coutaddcity5.;/输出城市列表及相应代码void pri()/用来输出当前存在的所有城市名称int i; cout-endl; for (i=1;i=c_number;i+)if(delcity1& delcity2& delcity3 & delcity4 &delcity5)!=i)couti.; pr(i);if(i%5=0)coutendl;cout-endl;void Floyed_new(costAdj D,costAdj M)/弗洛伊德算法int i,j,k,n;n=MAX;costAdj A,C; for(i=1;i=n;i+)for(j=1;j=n;j+) Aij=Dij;/初始化矩阵ACij=Mij;for(k=1;k=n;k+) Pathijk=0; /初始化矩阵path, 置-1.if(AijINF)Pathiji=1;Pathijj=1; int t,flag=1; for(k=1;k=n;k+) for(i=1;i=n;i+) for(j=1;j=n;j+) if(Aik+AkjAij)Aij=Aik+Akj;Cij=Cik+Ckj;for(t=1;t=n;t+)Pathijt=(Pathikt|Pathkjt);/添加路径COSTij=Aij;/输出邻接矩阵(最省) ELSEij=Cij;/输出邻接矩阵 elseCOSTij=Aij;ELSEij=Cij; cout最短路径为:endl;cout-endl;void pr_pass(int i,int j)/Pathij为邻接矩阵cout途径的城市为:;cout(;for(int k=1;k=c_number;k+)if(Pathijk=1 & i!=k &j!=k)pr(k); cout);void time_new()/求最少时间路径int begin,end;/起始成市号码和终点城市号码 pri();/输出城市 coutbegin; coutend;if(begin25+addcityflag)cerrerror!endl;exit(0);if(begin=end)cerrerror!endl;exit(0);if(end25+addcityflag)cerrerror!INF/2|ELSEbeginendINF/2)cout两地间还没有线路通过!endl; else pr_pass(begin,end);/显示最短路径经过的城市 pr(end); coutendl火车花的钱是ELSEbeginend元endl; cout火车花的时间是COSTbeginend小时endl; cout-endl; getchar();void transer_new()/火车最少中转 int begin,end; pri();/输出城市列表 coutbegin; coutend; if(begin=end)cerrerror!endl;exit(0); if(begin25+addcityflag)cerrerror!endl;exit(0);if(end25+addcityflag)cerrerror!INF/2|ELSEbeginendINF/2) cout两地间还没有线路通过endl; else pr_pass(begin,end);/显示最短路径经过的城市 pr(end);/显示终点城市 coutendl火车最少中转次数是ELSEbeginend-1次endl;/多加一次 cout火车总票价是COSTbeginend元endl; cout-endl;getchar();void money_new() int begin,end;/起始成市号码和终点城市号码 pri();/输出城市列表 coutbegin; coutend;if(begin25+addcityflag)cerrerror!endl;exit(0);if(end25+addcityflag)cerrerror!endl;exit(0);if(begin=end)cerrerror!INF/2|ELSEbeginendINF/2) cout两地间还没有线路通过endl;elsepr_pass(begin,end);/显示最短路径经过的城市pr(end);/显示终点城市 cout火车花的钱是COSTbeginend元endl; cout火车花的时间ELSEbeginend小时endl; cout-endl;getchar();void f_transer_new()/飞机最小中转路线 int begin,end; pri();/输出城市列表。 coutbegin; coutend;if(begin=end)cerrerror!endl;exit(0); if(begin25+addcityflag)cerrerror!endl;exit(0);if(end25+addcityflag)cerrerror!INF/2|ELSEbeginendINF/2)cout两地间还没有线路通过endl; else pr_pass(begin,end); pr(end);/显示终点城市。 cout飞机花的钱是COSTbeginend元endl; cout飞机最少中转次数是ELSEbeginend次endl; cout-endl;getchar();void f_time_new()int begin,end;/起始成市号码和终点城市号码 pri();/输出城市列表及相应代码。 coutbegin; coutend;if(begin=end)cerrerror!endl;exit(0); if(begin25+addcityflag)cerrerror!endl;exit(0);if(end25+addcityflag)cerrerror!INF/2|ELSEbeginendINF/2) cout两地间还没有线路通过endl; else pr_pass(begin,end);/显示最短路径经过的城市 pr(end);/显示终点城市 cout飞机花的钱是ELSEbeginend元endl; cout飞机花的时间是COSTbeginend小时endl; cout-endl;getchar();/求飞机的情况void f_money_new()int begin,end;/起始成市号码和终点城市号码 pri();/输出城市列表及相应代码 coutbegin; coutend;if(begin=end)cerrerror!endl;exit(0);if(begin25+addcityflag)cerrerror!endl;exit

温馨提示

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

评论

0/150

提交评论