全國(guó)交通咨詢(xún)模擬系統(tǒng)C++實(shí)現(xiàn)(課程設(shè)計(jì)報(bào)告)_第1頁(yè)
全國(guó)交通咨詢(xún)模擬系統(tǒng)C++實(shí)現(xiàn)(課程設(shè)計(jì)報(bào)告)_第2頁(yè)
全國(guó)交通咨詢(xún)模擬系統(tǒng)C++實(shí)現(xiàn)(課程設(shè)計(jì)報(bào)告)_第3頁(yè)
全國(guó)交通咨詢(xún)模擬系統(tǒng)C++實(shí)現(xiàn)(課程設(shè)計(jì)報(bào)告)_第4頁(yè)
全國(guó)交通咨詢(xún)模擬系統(tǒng)C++實(shí)現(xiàn)(課程設(shè)計(jì)報(bào)告)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、全國(guó)交通咨詢(xún)模擬、設(shè)計(jì)目的掌握線性表、棧、圖結(jié)構(gòu)和對(duì)文件的操作,學(xué)習(xí)屏幕編輯和菜單技術(shù),掌握用最短路徑及其搜索算法編制較綜合性的程序,能用圖的鄰接存儲(chǔ)結(jié)構(gòu)求解最優(yōu)路線問(wèn)題,解決有關(guān)實(shí)際問(wèn)題。得到軟件設(shè)計(jì)技能的訓(xùn)練。二、問(wèn)題描述交通咨詢(xún)模擬。根據(jù)旅客的不同需要,要考慮到旅客希望在旅途中的時(shí)間盡可能短、希望旅費(fèi)盡可能省等的要求。旅途用火車(chē)或飛機(jī)作為交通工具。用計(jì)算機(jī)編制程序,為旅客提供兩種最優(yōu)決策的交通咨詢(xún)系統(tǒng)。三、基本要求1、對(duì)城市信息(城市名、城市間的里程)進(jìn)行編輯:具備添加、修改、刪除功能;2、對(duì)城市間的兩種交通工具:飛機(jī)和火車(chē)。對(duì)飛機(jī)航班和列車(chē)時(shí)刻表進(jìn)行編輯:里程、航班和列車(chē)班次的添加、修

2、改、刪除;3、提供兩種最優(yōu)決策:最快到達(dá)或最省錢(qián)到達(dá)。全程只考慮一種交通工具,可以不考慮回程;4、旅途中的耗費(fèi)的總時(shí)間應(yīng)包括中轉(zhuǎn)站的等候時(shí)間。其中飛機(jī)至少二小時(shí),火車(chē)至少一小時(shí);5、咨詢(xún)以用戶(hù)和計(jì)算機(jī)對(duì)話方式進(jìn)行,要注意人機(jī)交互的屏幕界面。由用戶(hù)選擇最優(yōu)決策原則和交通工具,輸入起始站、終點(diǎn)站、出發(fā)時(shí)間,輸出信息:最快需要多長(zhǎng)時(shí)間才能到達(dá)及旅費(fèi),或者最少需要多少旅費(fèi)才能到達(dá)及時(shí)間,并詳細(xì)說(shuō)明依次于何時(shí)何地乘坐哪一趟班機(jī)或列車(chē)何時(shí)到達(dá)何地。四、實(shí)現(xiàn)提示1、算法思路(1)數(shù)據(jù)存儲(chǔ)。城市信息(城市名、代碼)、交通信息(城市間的里程、各航班和列車(chē)時(shí)刻)存儲(chǔ)于磁盤(pán)文件。建議把城市信息存于文件前面,交通信息

3、存于文件的后面,用fread和fwrite函數(shù)操作。(2)數(shù)據(jù)的邏輯結(jié)構(gòu)。根據(jù)設(shè)計(jì)任務(wù)的描述,其城市之間的旅游交通問(wèn)題是典型的圖結(jié)構(gòu),可看作為有向圖,圖的頂點(diǎn)是城市,邊是城市之間所耗費(fèi)的時(shí)間(要包括中轉(zhuǎn)站的等候時(shí)間)或旅費(fèi)。(3)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。采用鄰接表和鄰接矩陣都可作為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),但當(dāng)鄰接邊不多時(shí),宜采用鄰接表,以提高空間的存儲(chǔ)效率。這里建議采用鄰接表作為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。(4)用不同的功能模塊對(duì)城市信息和交通信息進(jìn)行編輯。添加、修改、刪除功能可用菜單方式或命令提示方式。只要能方便的對(duì)城市信息和交通信息進(jìn)行管理即可,但要注意人機(jī)界面,具體實(shí)現(xiàn)由學(xué)生自行設(shè)計(jì),也可參考有關(guān)程序(屆時(shí)在網(wǎng)上提

4、供)。這些工作有不小的工作量。(5)最優(yōu)決策功能模塊(fastorprovince)。讀入城市信息和交通信息,用鄰接表生成含權(quán)網(wǎng)絡(luò),表頭數(shù)組中的元素存放城市名及對(duì)方城市到達(dá)該元素所代表城市的所有信息;表頭數(shù)組中的元素所對(duì)應(yīng)的單鏈表存放與該元素所代表的城市有交通聯(lián)系的城市(代碼、里程、航班、列車(chē)車(chē)次)。根據(jù)具體最優(yōu)決策的要求,用Dijkstra算法求出出發(fā)城市到其它各城市的最優(yōu)值(最短時(shí)間或最小的費(fèi)用),搜索過(guò)程中所經(jīng)過(guò)城市的局部最優(yōu)信息都保存在鄰接表的表頭數(shù)組中。其目的城市所代表的元素中就保存了所需的最優(yōu)決策結(jié)果。這過(guò)程中,要用隊(duì)列或棧保存局部最優(yōu)決策值(局部最短的時(shí)間或最省的費(fèi)用)變小的城市

5、,其相應(yīng)的初始值可為并在表頭數(shù)組對(duì)應(yīng)的城市元素中保存響應(yīng)的信息。開(kāi)始時(shí),棧(隊(duì))中只有出發(fā)地城市,隨著對(duì)棧(隊(duì))頂(首)城市有交通聯(lián)系的城市求得決策值(最短時(shí)間或最小的費(fèi)用),若該值是局部最優(yōu)值且該城市不在棧(隊(duì))中,則進(jìn)棧(隊(duì)),直至棧(隊(duì))為空。輸出結(jié)果。從目的城市出發(fā),搜索到出發(fā)城市,所經(jīng)過(guò)的城市均入棧,再逐一出棧棧中的城市,輸出保存在表頭數(shù)組中對(duì)應(yīng)城市的信息(對(duì)方城市的出發(fā)信息,里程、時(shí)間、費(fèi)用等)及最終結(jié)果。即輸出依次于何時(shí)何地乘坐幾點(diǎn)的飛機(jī)或火車(chē)于何時(shí)到達(dá)何地;最終所需的最快需要多長(zhǎng)時(shí)間才能到達(dá)及旅費(fèi),或者最少需要多少旅費(fèi)才能到達(dá)及時(shí)間。(6)主程序可以有系統(tǒng)界面、菜單;也可用命令

6、提示方式;選擇功能模塊執(zhí)行,要求在程序運(yùn)行過(guò)程中可以反復(fù)操作。2、數(shù)據(jù)結(jié)構(gòu)本程序運(yùn)用了關(guān)于圖這種數(shù)據(jù)結(jié)構(gòu)。他的抽象數(shù)據(jù)類(lèi)型定義如下:typedefstructunDiGraphintnumVerts;/結(jié)點(diǎn)costAdjcost;/鄰接矩陣unDiGraph,*UNG;基本操作:unDiGraph*CreateCostG()操作結(jié)果:構(gòu)造帶權(quán)(費(fèi)用)圖。unDiGraph*CreateTimeG()操作結(jié)果:構(gòu)造帶權(quán)(時(shí)間)圖。構(gòu)造飛機(jī)帶權(quán)(費(fèi)用)圖。PathMat*Floyed(unDiGraph*D)操作結(jié)果:Floyed函數(shù)求任意兩點(diǎn)的最短路徑。3、算法思想本程序運(yùn)用了圖的知識(shí),構(gòu)造了無(wú)

7、向帶權(quán)費(fèi)用圖和無(wú)向帶權(quán)時(shí)間圖。(如圖1,圖2所示)圖1.十三城市之間火車(chē)費(fèi)用表(權(quán)值表示費(fèi)用)圖2.十三城市之間火車(chē)行駛時(shí)間表(權(quán)值表示時(shí)間)并利用Floyed函數(shù)求帶權(quán)圖兩點(diǎn)之間的最短路徑。通過(guò)對(duì)帶權(quán)費(fèi)用圖和帶權(quán)時(shí)間圖求最短路徑,就可以最短道從一城市到另一城市之間最省時(shí)間和最省費(fèi)用的走法。為了簡(jiǎn)潔直觀,本設(shè)計(jì)對(duì)課本內(nèi)的交通網(wǎng)進(jìn)行了簡(jiǎn)化,原來(lái)的25個(gè)城市縮減為13個(gè)。但是基本實(shí)現(xiàn)了設(shè)計(jì)的目的。滿(mǎn)足了基本要求。4、程序模塊1程序是用dos版做的界面。2主界面包括1.選擇火車(chē)最短時(shí)間路線2.選擇火車(chē)最節(jié)約費(fèi)用路線3.選擇坐飛機(jī)4.管理員程序確5.退出本程序3程序的模塊為#include#inclu

8、de#include#include#include#includevmalloc.h引用的文本件#defineINF65535/定義一個(gè)最大數(shù)定為無(wú)窮值#defineMAX13typedefintcostAdjMAX+lMAX+l;圖鄰接矩陣從1開(kāi)始記數(shù)intPathMAX+1MAX+1;圖鄰接矩陣從1開(kāi)始記數(shù)into13,h;typedefstructunDiGraphintnumVerts;/結(jié)點(diǎn)costAdjcost;/鄰接矩陣unDiGraph,*UNG;/圖的定義costAdjB,L;voidpr(inti)選擇城市voidpri()輸出城市unDiGraph*CreateCost

9、G()構(gòu)造帶權(quán)(費(fèi)用)圖返回首地址G:unDiGraph*CreateTimeG()構(gòu)造帶權(quán)(時(shí)間)圖返回首地址G:unDiGraph*CreateFlyG()飛機(jī)的相關(guān)信息voidFloyed(unDiGraph*D,unDiGraph*M)/Floyed函數(shù)求任意兩點(diǎn)的最短路徑:voidprn_pass(inti,intj)/為了求從i到j(luò)的最短路徑,只需要調(diào)用如下的過(guò)程voidtime()求最少時(shí)間路徑。voidmoney()求最少花費(fèi)路徑voidadministrator。/管理員功能voidmain()/main函數(shù)五、主程序#include#include#include#incl

10、ude#include#include#defineINF65535/定義一個(gè)最大數(shù)定為無(wú)窮值#defineMAX23staticintc_number=13;staticintk=0;staticintv=0,z=0,r=0,t=0;typedefstructzhuintc_cost;intc_time;intf_cost;intf_time;zhu;zhum20,x20,n20;typedefintcostAdjMAX+1MAX+1;圖鄰接矩陣從1開(kāi)始記數(shù)intPathMAX+1MAX+1;圖鄰接矩陣從1開(kāi)始記數(shù)typedefstructunDiGraphintnumVerts;/結(jié)點(diǎn)co

11、stAdjcost;/鄰接矩陣unDiGraph,*UNG;/圖的定義typedefstructc_editchara10;c_edit;c_editadd10;costAdjB,L;intpr(inti,intj)inth=0;if(j=0)h=i;elseif(j=1)cinaddi.a;switch(h)/運(yùn)用switch語(yǔ)句。case(0):cout;break;TOC o 1-5 h zcase(1):coutvv成都;break;case(2):coutvv西安;break;case(3):coutvv鄭州;break;case(4):coutvv武漢;break;case(5):

12、coutvv株洲;break;case(6):coutvv貴陽(yáng);break;case(7):coutvv柳州;break;case(8):coutvv廣州;break;case(9):coutvv南寧;break;case(10):coutvv徐州;break;case(11):coutvv北京;break;case(12):coutvv天津;break;case(13):coutvv上海;break;default:coutvvaddi-13.a;return1;/輸出城市列表及相應(yīng)代碼voidpri()inti;coutvv城市及其代碼vvendlvvendlvvendl;coutvv*v

13、vendl;for(i=1;iv=c_number;i+)coutvvivv.;pr(i,0);coutvvendlvv*vvendlvvendlvvendlvvendlvvendlvvendl;/構(gòu)造帶權(quán)(費(fèi)用)圖返回首地址G:unDiGraph*CreateCostG(into)/火車(chē)的花費(fèi)的存貯和編輯功能unDiGraph*G;inti,j;inta=0,b=0,f,h=1;if(!(G=(unDiGraph*)malloc(sizeof(unDiGraph)/為G分配存儲(chǔ)空間。return(NULL);for(i=1;ic_number+1;i+)for(j=1;jcostij=INF

14、;/初始化使G-costij偽無(wú)窮。G-numVerts=c_number;G-cost16=G-cost61=96;G-cost12=G-cost21=84;G-cost23=G-cost32=51;G-cost34=G-cost43=53;G-cost45=G-cost54=40;G-cost56=G-cost65=90;G-cost58=G-cost85=67;G-cost57=G-cost75=67;G-cost67=G-cost76=60;G-cost79=G-cost97=25;G-cost311=G-cost113=69;G-cost1112=G-cost1211=13;G-co

15、st1210=G-cost1012=67;G-cost310=G-cost103=34;G-cost1310=G-cost1013=65;G-cost135=G-cost513=118;if(o)while(h=1)v=v+1;pri();coutvv火車(chē)花費(fèi)編輯vvendl;coutvv請(qǐng)輸入開(kāi)始城市的代碼vvendl;cina;coutvv請(qǐng)輸入結(jié)尾城市的代碼vvendl;cinb;coutvv請(qǐng)輸入你的兩地花費(fèi)vvendl;cinmv.c_cost;nv.c_cost=a;xv.c_cost=b;coutvv請(qǐng)選擇vvendl;vv*coutvvT:繼續(xù)更改城市費(fèi)用vvendl;cout

16、vv0:返回上一級(jí)菜單vvendl;99-_.flIcinh;switch(h)case1:h=1;break;case0:h=0;break;default:coutvv選擇出錯(cuò)vvendl;f=v+1;while(v-)G-costnv.c_costxv.c_cost=mv.c_cost;v=f;return(G);/構(gòu)造帶權(quán)(時(shí)間)圖返回首地址G:unDiGraph*CreateTimeG(into)/火車(chē)的時(shí)間的存貯和編輯功能unDiGraph*G;inti,j;inta=0,b=0,f,h=1;if(!(G=(unDiGraph*)malloc(sizeof(unDiGraph)/為

17、G分配存儲(chǔ)空間。return(NULL);for(i=1;ic_number+1;i+)for(j=1;jcostij=INF;初始化使G-costij為無(wú)窮。G-numVerts=c_number;G-cost16=G-cost61=9;G-cost12=G-cost21=8;G-cost23=G-cost32=5;G-cost34=G-cost43=5;G-cost45=G-cost54=4;G-cost56=G-cost65=9;G-cost57=G-cost75=6;G-cost58=G-cost85=6;G-cost67=G-cost76=6;G-cost79=G-cost97=2;

18、G-cost311=G-cost113=6;G-cost1112=G-cost1211=1;G-cost1210=G-cost1012=6;G-cost310=G-cost103=3;G-cost1310=G-cost1013=6;G-cost135=G-cost513=11;if(o)while(h=1)z=z+1;pri();coutvv火車(chē)時(shí)間編輯a;coutvv請(qǐng)輸入結(jié)尾城市的代碼vvendl;cinb;coutvv請(qǐng)輸入你的兩地時(shí)間vvendl;cinmz.c_time;nz.c_time=a;xz.c_time=b;coutvv請(qǐng)選擇vvendl;coutvv*coutvvT:繼續(xù)

19、更改城市時(shí)間vvendl;coutvv0:返回上一級(jí)菜單vvendl;9W_.flIcinh;switch(h)case1:h=1;break;case0:h=0;break;default:coutvv選擇出錯(cuò)vvendl;f=z+1;while(z-)G-costnz.c_timexz.c_time=mz.c_time;z=f;return(G);unDiGraph*CreateTimeF(into)飛機(jī)的時(shí)間的存貯和編輯功能unDiGraph*G;inti,j;inta=0,b=0,f,h=1;if(!(G=(unDiGraph*)malloc(sizeof(unDiGraph)/為G分

20、配存儲(chǔ)空間return(NULL);for(i=1;ivc_number+1;i+)for(j=1;jvc_number+1;j+)G-costij=INF;初始化使G-costij為無(wú)窮。G-numVerts=c_number;G-cost16=G-cost61=3;G-cost12=G-cost21=2;G-cost23=G-cost32=1;G-cost34=G-cost43=2;G-cost45=G-cost54=4;G-cost56=G-cost65=3;G-cost57=G-cost75=6;G-cost58=G-cost85=6;G-cost67=G-cost76=6;G-cos

21、t79=G-cost97=2;G-cost311=G-cost113=6;G-cost1112=G-cost1211=1;G-cost1210=G-cost1012=2;G-cost310=G-cost103=3;G-cost1310=G-cost1013=6;G-cost135=G-cost513=1;if(o)while(h=1)t=t+1;pri();coutvv飛機(jī)時(shí)間編輯vvendl;coutvv請(qǐng)輸入開(kāi)始城市的代碼vvendl;cina;coutvv請(qǐng)輸入結(jié)尾城市的代碼vvendl;cinb;coutvv請(qǐng)輸入你的兩地時(shí)間vvendl;cinmt.f_time;nt.f_time=

22、a;xt.f_time=b;coutvv請(qǐng)選擇vvendl;coutvv1:繼續(xù)更改城市時(shí)間vvendl;coutvv0:返回上一級(jí)菜單vvendl;丄B0*_.X*fVvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvpvp”Icinh;switch(h)case1:h=1;break;case0:h=0;break;default:coutvv選擇出錯(cuò)vvendl;f=t+1;while(t-)G-costnt.f_ti

23、mext.f_time=mt.f_time;t=f;return(G);unDiGraph*CreateCostF(into)飛機(jī)花費(fèi)的存貯和編輯功能unDiGraph*G;inti,j;inta=0,b=0,f,h=1;if(!(G=(unDiGraph*)malloc(sizeof(unDiGraph)/為G分配存儲(chǔ)空間。return(NULL);for(i=1;ic_number+1;i+)for(j=1;jcostij=INF;/初始化使G-costij偽無(wú)窮。G-numVerts=c_number;G-cost16=G-cost61=960;G-cost12=G-cost21=840

24、;G-cost23=G-cost32=501;G-cost34=G-cost43=530;G-cost45=G-cost54=400;G-cost56=G-cost65=900;G-cost58=G-cost85=670;G-cost57=G-cost75=670;G-cost67=G-cost76=600;G-cost79=G-cost97=200;G-cost311=G-cost113=690;G-cost1112=G-cost1211=310;G-cost1210=G-cost1012=670;G-cost310=G-cost103=340;G-cost1310=G-cost1013=6

25、50;G-cost135=G-cost513=1180;if(o)while(h=1)r=r+1;pri();coutvv飛機(jī)花費(fèi)編輯vvendl;coutvv請(qǐng)輸入開(kāi)始城市的代碼vvendl;cina;coutvv請(qǐng)輸入結(jié)尾城市的代碼vvendl;cinb;coutvv請(qǐng)輸入你的兩地花費(fèi)vvendl;cinmr.f_cost;nr.f_cost=a;xr.f_cost=b;coutvv請(qǐng)選擇vvendl;coutvv*coutvv1:繼續(xù)更改城市費(fèi)用vvendl;coutvv0:返回上一級(jí)菜單vvendl;coutvv*vvendl;cinh;switch(h)case1:h=1;break

26、;case0:h=0;break;default:coutvv選擇出錯(cuò)vvendl;f=r+1;while(r-)G-costnr.f_costxr.f_cost=mr.f_cost;r=f;return(G);/Floyed函數(shù)求任意兩點(diǎn)的最短路徑:voidFloyed(unDiGraph*D,unDiGraph*M)inti,j,k,n;costAdjA,C;n=c_number;for(i=1;i=n;i+)for(j=1;jcostij;/初始化矩陣A。Cij=M-costij;Pathij=-1;初始化矩陣p,置-1for(k=1;k=n;k+)/k為逐步加入的中間結(jié)點(diǎn)for(i=1

27、;iv=n;i+)i為A中行號(hào)for(j=1;jv=n;j+)if(Aik+AkjvAij)Aij=Aik+Akj;Cij=Cik+Ckj;Pathij=k;若i經(jīng)過(guò)k到j(luò)比i到j(luò)小,則令A(yù)ij=Aik+Akj。Bij=Aij;Lij=Cij;elseBij=Aij;Lij=Cij;/end-forcoutvvn最短路徑為:vvendl;/end-Floyed為了求從i到j(luò)的最短路徑,只需要調(diào)用如下的過(guò)程:voidprn_pass(inti,intj)if(Pathij!=-1)prn_pass(i,Pathij);輸出最短路徑經(jīng)過(guò)的所有點(diǎn)pr(Pathij,0);/求最少時(shí)間路徑。voidt

28、ime()intBcity,Ecity;/起始成市號(hào)碼和終點(diǎn)城市號(hào)碼intl,h=1;dopri();/輸出城市列表及相應(yīng)代碼。coutvv請(qǐng)輸入起始城市和目的城市的代碼,中間以空格隔開(kāi),范圍(1-c_numberBcity;cinEcity;輸入起始城市和終點(diǎn)城市的代碼。if(!(0vBcity&Bcityvc_number+1)&(0vEcity&Ecityvc_number+1)&Bcity!=Ecity)coutvvn出錯(cuò)啦輸入城市號(hào)碼請(qǐng)?jiān)?-vvc_numbervv之間,且兩城市不能相等!vvendl;Floyed(CreateTimeG(0),CreateCostG(0);/調(diào)用F

29、loyed函數(shù)。pr(Bcity,0);/顯示起始城市。prn_pass(Bcity,Ecity);調(diào)用prn_pass函數(shù),顯示最短路徑經(jīng)過(guò)的城市。pr(Ecity,0)“/顯示終點(diǎn)城市。if(BBcityEcity5000|LBcityEcity10000)coutvv兩地間還沒(méi)有線路通過(guò)vvendl;elsecoutvv火車(chē)花的錢(qián)是vvLBcityEcityvv元vvendl;coutvv火車(chē)花的時(shí)間是vvBBcityEcityvv小時(shí)vvendl;printf(nn1繼續(xù)最少花費(fèi)査找n2返回主菜單n清選擇“.);scanf(%d,&l);/輸入1或2選擇是否繼續(xù)。h=l;while(h

30、=1);printf(n);voidf_time()intBcity,Ecity“/起始成市號(hào)碼和終點(diǎn)城市號(hào)碼intl,h=1;dopri();/輸出城市列表及相應(yīng)代碼。coutvv請(qǐng)輸入起始城市和目的城市的代碼,中間以空格隔開(kāi),范圍(1-vvc_numbervv);cinBcity;cinEcity;/輸入起始城市和終點(diǎn)城市的代碼。(!(0Bcity&Bcityc_number+1)&(0Ecity&Ecityc_number+1)&Bcity!=Ecity)coutn出錯(cuò)啦5000|LBcityEcity10000)coutvv兩地間還沒(méi)有線路通過(guò)vvendl;elsecoutvv飛機(jī)花的

31、錢(qián)是vBcity;cinEcity;輸入起始城市和終點(diǎn)城市的代碼。if(!(0vBcity&Bcityvc_number+1)&(0vEcity&Ecityvc_number+1)&Bcity!=Ecity)coutvvn出錯(cuò)啦vvendl;輸入出錯(cuò)Floyed(CreateCostG(0),CreateTimeG(0);/調(diào)用Floyed函數(shù)。pr(Bcity,0);顯示起始城市。prn_pass(Bcity,Ecity);調(diào)用prn_pass函數(shù),顯示最短路徑經(jīng)過(guò)的城市。pr(Ecity,0);顯示終點(diǎn)城市。if(BBcityEcity5000|LBcityEcity10000)coutv

32、v兩地間還沒(méi)有線路通過(guò)vvendl;elsecoutvv火車(chē)花的錢(qián)是vvBBcityEcityvv元vvendl;coutvv火車(chē)花的時(shí)間vvLBcityEcityvv小時(shí)vvendl;printf(nn1繼續(xù)最少花費(fèi)査找n2返回主菜單n清選擇);scanf(%d,&l);/輸入1或2選擇是否繼續(xù)。h=l;while(h=1);printf(n);/求飛機(jī)的情況voidf_money()coutvv1vvendl;intBcity,Ecity“/起始成市號(hào)碼和終點(diǎn)城市號(hào)碼charl,h=1;/*unDiGraph*G;*/docoutvv2vvendl;pri()“/輸出城市列表及相應(yīng)代碼。c

33、outvv請(qǐng)輸入起始城市和目的城市的代碼,中間以空格隔開(kāi),范圍(1-vvc_numbervv);cinBcity;cinEcity;輸入起始城市和終點(diǎn)城市的代碼。if(!(0vBcity&Bcityvc_number+1)&(0vEcity&Ecityvc_number+1)&Bcity!=Ecity)coutvvn出錯(cuò)啦vvendl;輸入出錯(cuò)Floyed(CreateCostF(0),CreateTimeF(0);/調(diào)用Floyed函數(shù)。pr(Bcity,0);/Z顯示起始城市。prn_pass(Bcity,Ecity);調(diào)用prn_pass函數(shù),顯示最短路徑經(jīng)過(guò)的城市。pr(Ecity,0

34、);顯示終點(diǎn)城市。if(BBcityEcity5000|LBcityEcity10000)coutvv兩地間還沒(méi)有線路通過(guò)vvendl;elsecoutvv飛機(jī)花的錢(qián)是vvBBcityEcityvv元vvendl;coutvv飛機(jī)花的時(shí)間vvLBcityEcityvv小時(shí)vvendl;printf(nn1繼續(xù)最少花費(fèi)査找n2返回主菜單n清選擇);scanf(%d,&l);/輸入1或2選擇是否繼續(xù)。h=l;while(h=1);printf(n);voidadd_city()對(duì)城市的增加staticinti=1;intj;coutvv請(qǐng)輸入你要增加的城市的個(gè)數(shù)vvendl;cinj;for(i=

35、1;iv=j;i+)coutvv請(qǐng)輸入你要增加的城市名vvendl;pr(i,1);c_number=c_number+1;coutvv城市增加完畢vvendl;voidchose_money()花最少錢(qián)的算法inth;coutvvT:火車(chē)vvendl;coutvv2:飛機(jī)vvendl;coutvv請(qǐng)選擇:vvendl;cinh;if(h=1)money();elsef_money();voidchose_time()花最少時(shí)間的算法inth;coutvvT:火車(chē)vvendl;coutvv2:飛機(jī)vvendl;coutvv請(qǐng)選擇:vvendl;cinh;if(h=1)time();elsef_

36、time();voidedit_line()/增加編輯火車(chē)的費(fèi)用CreateCostG(1);voidedit_hour()增加編輯火車(chē)的時(shí)間CreateTimeG(1);voidedit_fline()/增加編輯飛機(jī)的費(fèi)用CreateCostF(1);voidedit_fhour()/增加編輯飛機(jī)的時(shí)間CreateTimeF(1);voidadministrator。/管理員功能inth=1;while(h)coutvvT:增加城市vvendl;coutvv2:添加或編輯火車(chē)費(fèi)用vvendl;coutvv3:添加或編輯火車(chē)時(shí)間vvendl;coutvv4:添加或編輯飛機(jī)費(fèi)用vvendl;co

37、utvv5:添加或編輯飛機(jī)時(shí)間vvendl;coutvv0:返回主菜單vvendl;coutvv*vvendl;coutvv請(qǐng)選擇vvendl;cinh;switch(h)case1:add_city();break;case2:edit_line();break;case3:edit_hour();break;case4:edit_fline();break;case5:edit_fhour();break;case0:h=0;break;default:coutvv選擇出錯(cuò)!vvendl;/主函數(shù)voidmain()/人機(jī)對(duì)話界面設(shè)置,輸入選項(xiàng),再輸入你的起始成市號(hào)碼和終點(diǎn)城市號(hào)碼,你將被給出你所要的/最短時(shí)間

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論