版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)用標(biāo)準(zhǔn)文案設(shè)計(jì)題目<:7.3.4交通咨詢系統(tǒng)設(shè)計(jì)P160一、設(shè)計(jì)求1問(wèn)題描述根據(jù)不同目的的旅客對(duì)交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的時(shí)間盡可能的短出門旅行的旅客希望旅費(fèi)盡可能的少而老年人則要求中轉(zhuǎn)次數(shù)少模擬一個(gè)全國(guó)城市之間的咨詢交通程序?yàn)槁每吞峁﹥煞N或三種最優(yōu)的交通路線。2需求分析二、概要計(jì)1主界面設(shè)計(jì)(圖2.1“交通咨詢系統(tǒng)”主菜單)2存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)采用圖結(jié)構(gòu)類型存儲(chǔ)抽象交通咨詢系統(tǒng)的信息。TrafficNode{name[MAX_STRING_NUM];//班次//MAX_STRING_NUM最為int//起止時(shí)間intEndCity;//該有向邊指向的頂點(diǎn)在數(shù)組中的置,即該城市編號(hào)int//價(jià)精彩文檔
實(shí)用標(biāo)準(zhǔn)文案}VNode{CityTypecity;intTrainNum,//標(biāo)記下面數(shù)組和Flight組里元素個(gè)數(shù)Train[MAX_TRAFFIC_NUM];//組成員為結(jié)構(gòu)體了到達(dá)城市、起止時(shí)間、票價(jià)和班次//int//遍歷時(shí)到達(dá)該城市的耗費(fèi)(時(shí)間或者費(fèi)用)}{intCity;int}3系統(tǒng)功能設(shè)計(jì)(1)添加城市。添加一個(gè)城市的名稱(2)刪除城市。輸入一個(gè)城市名稱,刪除該城市。(3)添加交通路線。輸入起始城市、終點(diǎn)城市、航班或火車、車次、起始時(shí)間、終點(diǎn)時(shí)間和票價(jià)(4)除交通路線。輸入火車或飛機(jī)的班次刪除該交通路線。(5)查詢最小費(fèi)用路線。輸入起始城市、終點(diǎn)城市、航班或火車、車次、起始時(shí)間、終點(diǎn)時(shí)間查詢最小費(fèi)用路線。三、模塊計(jì)1模塊設(shè)計(jì)主程序模塊精彩文檔
工作區(qū)模塊(圖2.2模調(diào)用示意圖)
無(wú)向網(wǎng)操作模塊
實(shí)用標(biāo)準(zhǔn)文案2系統(tǒng)子程序及能設(shè)計(jì)(1)int菜單(2)voidCopyRight()(3)intSeekCity(char//尋找城市(4)intInsertCity(char添加城市(5)intSaveSysInfo()//程序輸入數(shù)據(jù)(6)intDelCity(char//刪除城市(7)intInsertTrain(char*train,char*StartCity,charintEndTime,int添加火車路線(8)int*flight,char*EndCity,intintEndTime,int添加飛機(jī)航線(9)intDelPath(char*name)//刪除路線(10Dijkstra(intmatx[Dij_MAXN][Dij_MAXN],intintp_end,int(11intInitSysData()//存儲(chǔ)數(shù)據(jù)(12intSearchMinTime(CityTypeCity,intintcurPathNo,int查詢最短時(shí)間(13intCalcMinTime(intStartCity,EndCity,int顯示最短時(shí)間(14intintEndCity,最少花費(fèi)(15int函數(shù)3函數(shù)主要調(diào)用系圖15main9
6精彩文檔
6
實(shí)用標(biāo)準(zhǔn)文案(圖2.3函主要調(diào)用關(guān)系)四、詳細(xì)計(jì)1數(shù)據(jù)類型定義(1全局變量的定義int定義短整形的變量TrafficNode{name[MAX_STRING_NUM];//次//MAX_STRING_NUM最為10int//起時(shí)間intEndCity;//有向邊指向的頂點(diǎn)在數(shù)組中的位置,即該城市編號(hào)int//價(jià)}VNode{CityTypecity;intTrainNum,//標(biāo)下面Train組和Flight數(shù)組里元素個(gè)數(shù)Train[MAX_TRAFFIC_NUM];//組成員為結(jié)構(gòu)體達(dá)城市、起止時(shí)間、票價(jià)和班次//int//遍歷時(shí)到達(dá)該城市的耗費(fèi)(時(shí)間或者費(fèi)用)}{精彩文檔
實(shí)用標(biāo)準(zhǔn)文案intCity;int}2系統(tǒng)主要子程詳細(xì)設(shè)計(jì)(1)用戶工作區(qū)模塊的設(shè)計(jì)intShowMenu(){printf("\n|******************迎使用交通咨詢系統(tǒng)*******|\n");printf("\n|------------------1:添加城市----------------|");printf("\n|------------------2:刪除城市----------------|");printf("\n|------------------3:添加交通路線------------|");printf("\n|------------------4:刪除交通路線------------|");printf("\n|------------------5:查詢最小費(fèi)用路線--------|");printf("\n|------------------6:查詢最快路線------------|");printf("\n|------------------7:清除屏幕----------------|");printf("\n|------------------0:退出--------------------|\n");printf("\n|***********o(∩_∩)oo(∩_∩)o**************|printf("\n請(qǐng)輸入你的選擇");return1;}(2)用Dijkstra算法求兩段路程的最短距離voidDijkstra_Output(intmatx[Dij_MAXN][Dij_MAXN],intPreCity[Dij_MAXN],intp_end,intTravelType){inttrack[Dij_MAXN];inti=0,j,k,min,tmp,end,cost=0;j=p_end;track[i++]=j;while(PreCity[j]>=0){精彩文檔
實(shí)用標(biāo)準(zhǔn)文案cost+=matx[PreCity[j]][j];track[i++]=j=PreCity[j];}printf("\nTrackWay:");if(!TravelType){for(i--;i>0;i--){printf("\n%s:",CityName[track[i]]);end=track[i-1];min=32767;for(k=0;k<AdjList[track[i]].TrainNum;k++)if(AdjList[track[i]].Train[k].EndCity==end&&min>AdjList[track[i]].Train[k].Cost){min=AdjList[track[i]].Train[k].Cost;tmp=k;}printf("%s",AdjList[track[i]].Train[tmp].name);printf("%2d:%2d-%2d:%2d",AdjList[track[i]].Train[tmp].StartTime/60,AdjList[track[i]].Train[tmp].StartTime%60,AdjList[track[i]].Train[tmp].StopTime/60,AdjList[track[i]].Train[tmp].StopTime%60);}}else{for(i--;i>0;i--){精彩文檔
實(shí)用標(biāo)準(zhǔn)文案printf("\n%s:",CityName[track[i]]);end=track[i-1];min=32767;for(k=0;k<AdjList[track[i]].FlightNum;k++)if(AdjList[track[i]].Train[k].EndCity==end&&min>AdjList[track[i]].Flight[k].Cost){min=AdjList[track[i]].Flight[k].Cost;tmp=k;}printf("%s",AdjList[track[i]].Flight[tmp].name);printf("%2d:%2d-%2d:%2d",AdjList[track[i]].Flight[tmp].StartTime/60,AdjList[track[i]].Flight[tmp].StartTime%60,AdjList[track[i]].Flight[tmp].StopTime/60,AdjList[track[i]].Flight[tmp].StopTime%60);}}printf("\n%s:DESTINATION!",CityName[track[0]]);printf("\nMinCost:%d\n",cost);}voidDijkstra(intmatx[Dij_MAXN][Dij_MAXN],p_start,intintTravelType){intPreCity[Dij_MAXN];//PreCity[i]==-1,neverused;//PreCity>0,theprecityofCityiinti,j,min,pre,pos;for(i=0;i<CityNum;i++)精彩文檔
實(shí)用標(biāo)準(zhǔn)文案{PreCity[i]=-1;}PreCity[p_start]=-2;while(PreCity[p_end]==-1){min=-1;for(i=0;i<CityNum;i++)if(PreCity[i]!=-1){for(j=0;j<CityNum;j++)if(PreCity[j]==-1&&matx[i][j]>0&&(min<0||matx[i][j]<min)){pre=i;pos=j;min=matx[i][j];}}PreCity[pos]=pre;}Dijkstra_Output(matx,PreCity,p_end,TravelType);}五、測(cè)試析1.添加城市在主菜單下,用戶輸入1添加城市名稱。精彩文檔
實(shí)用標(biāo)準(zhǔn)文案(圖
添加城市
)2.刪除城在主菜單下,用戶輸入2刪除已添加城市名稱。(圖
刪除城市
)3.添加交路線在主菜單下,用戶輸入3,已添加城市名稱。添加起始城市、終點(diǎn)城市名稱、乘車類型、乘車班次、起始時(shí)刻、終點(diǎn)時(shí)刻、和票價(jià)。(圖
添加交通路線)4.刪除交路線輸入班次號(hào),刪除交通路線精彩文檔
實(shí)用標(biāo)準(zhǔn)文案(圖
刪除交通路線)5.查詢最費(fèi)用交通路線(圖
查詢最小費(fèi)用交通路線6.查詢最交通路線(圖
查詢最快交通路線7.清除屏8.退出六、用戶冊(cè)使用本系統(tǒng)時(shí)用戶需先向程序添加城市后在已有城市基礎(chǔ)上添加已有城市的路線和使用各項(xiàng)功能。七、調(diào)試告精彩文檔
實(shí)用標(biāo)準(zhǔn)文案程序運(yùn)行無(wú)錯(cuò)誤但當(dāng)系統(tǒng)輸入其他無(wú)儲(chǔ)存內(nèi)容時(shí)程序會(huì)意外中斷代碼需要優(yōu)化。八、程序單"stdafx.h"<stdio.h><stdlib.h>ERR0OK1Dij_MAXN100100MAX_STRING_NUMMAX_TRAFFIC_NUM100const="city.txt";constTrainFile[]="train.txt";constFlightFile[]="flight.txt";int定義短整形的變量TrafficNode{name[MAX_STRING_NUM];//班次//MAX_STRING_NUM最為int//起止時(shí)間intEndCity;//該有向邊指向的頂點(diǎn)在數(shù)組中的置,即該城市編號(hào)int//價(jià)}精彩文檔
實(shí)用標(biāo)準(zhǔn)文案VNode{CityTypecity;intTrainNum,//標(biāo)記下面數(shù)組和Flight組里元素個(gè)數(shù)Train[MAX_TRAFFIC_NUM];//組成員為結(jié)構(gòu)體了到達(dá)城市、起止時(shí)間、票價(jià)和班次//int//遍歷時(shí)到達(dá)該城市的耗費(fèi)(時(shí)間或者費(fèi)用)}{intCity;int}VNodeDatCityName[MAX_VERTEX_NUM][MAX_STRING_NUM];//城市名,采用第一下標(biāo)為該城市在本程序中的編號(hào)intCityNum;//城市數(shù)目PNodeDat//儲(chǔ)臨時(shí)最小時(shí)間路徑PNodeDatMinPath[MAX_VERTEX_NUM];存儲(chǔ)搜索到當(dāng)前的最小時(shí)間路徑intMinTime,int精彩文檔
實(shí)用標(biāo)準(zhǔn)文案int{printf("\n|******************迎使用交通咨詢系統(tǒng)*******|\n");printf("\n|------------------1:添加城市----------------|");printf("\n|------------------2:刪除城市----------------|");printf("\n|------------------3:添加交通路線------------|");printf("\n|------------------4:刪除交通路線------------|");printf("\n|------------------5:查詢最小費(fèi)用路線--------|");printf("\n|------------------6:查詢最快路線------------|");printf("\n|------------------7:清除屏幕----------------|");printf("\n|------------------0:退出--------------------|\n");n|***********o(∩_∩)oo(∩_∩)oprintf("\n請(qǐng)輸入你的選擇");1;}CopyRight(){printf("\n");}int*name)//尋找城市{inti;for(i=0;i<CityNum;{if(strcmp(name,CityName[i])0)//較函數(shù),若相等,則返回i值{i;}精彩文檔
實(shí)用標(biāo)準(zhǔn)文案}-1;}Info====================================================int向程序輸入數(shù)據(jù){FILE*fp;i,j,fp=fopen(CityFile,"w");//打開(kāi)文"%d\n",CityNum);//往文檔中寫城市的數(shù)量for(i=0;i<CityNum;{"%s\n",CityName[i]);//往文檔中寫市的名字}fclose(fp);//將CityFile文檔關(guān)閉total0;fp=fopen(TrainFile,"w");//打開(kāi)文檔for(i=0;i<CityNum;計(jì)算列車班次的數(shù)量{total+=AdjList[i].TrainNum;}"%d\n",total);//往檔中寫列車班次的數(shù)量for(i=0;i<CityNum;//{for(j=0;j<AdjList[i].TrainNum;j++)//往文檔中寫列車的車次、始發(fā)城市、終點(diǎn)城市{"%s%s%s",AdjList[i].Train[j].name,精彩文檔
實(shí)用標(biāo)準(zhǔn)文案CityName[i],CityName[AdjList[i].Train[j].EndCity]);"%2d:%2d%2d:%2d%d\n",AdjList[i].Train[j].StartTime/60,//往文檔中寫AdjList[i].Train[j].StartTime60,AdjList[i].Train[j].StopTime/AdjList[i].Train[j].StopTime60,AdjList[i].Train[j].Cost);}}fclose(fp);=0;fp=fopen(FlightFile,"w");for(i=0;i<CityNum;{total+=}"%d\n",total);for(i=0;i<CityNum;{for(j=0;j<AdjList[i].FlightNum;{"%s%s%s",AdjList[i].Flight[j].name,CityName[i],CityName[AdjList[i].Flight[j].EndCity]);"%2d:%2d%2d:%2d%d\n",AdjList[i].Flight[j].StartTime/60,AdjList[i].Flight[j].StartTime60,AdjList[i].Flight[j].StopTime/60,AdjList[i].Flight[j].StopTime%60,精彩文檔
實(shí)用標(biāo)準(zhǔn)文案}}fclose(fp);return}intInsertCity(char//添加城市{strcpy(CityName[CityNum],Name);=CityNum;AdjList[CityNum].FlightNum=0;AdjList[CityNum].TrainNum=0;CityNum++;1;}int*Name)//刪除城市{inti,j,o=1,k=1;city=SeekCity(Name);printf("%s",Name);while(true){while(CityName[k]{k++;}if(k>CityNum)精彩文檔
實(shí)用標(biāo)準(zhǔn)文案{找到此城市,請(qǐng)重新輸入!");0;}for(i=iCityNum1;//???可能city是從0始的{strcpy(CityName[i],CityName[i+1]);=AdjList[i+1].FlightNum;AdjList[i].TrainNum=AdjList[i+1].TrainNum;for(j=0;j<//為什么沒(méi)有火車的??{AdjList[i+AdjList[i].Flight[j].EndCity=AdjList[i1].Flight[j].EndCity;strcpy(AdjList[i].Flight[j].name,AdjList[i+AdjList[i].Flight[j].StartTime=AdjList[i+1].Flight[j].StartTime;AdjList[i].Flight[j].StopTime=AdjList[i+1].Flight[j].StopTime;}}CityNum--;}1;}int*train,char*StartCity,charintEndTime,intcost){精彩文檔
實(shí)用標(biāo)準(zhǔn)文案inti,j;//InsertTrain(name,s_city,e_city,s_hour*60+s_minute,e_hour*60+e_minute,cost);ijAdjList[i].Train[AdjList[i].TrainNum].Cost=AdjList[i].Train[AdjList[i].TrainNum].EndCity=j;AdjList[i].Train[AdjList[i].TrainNum].StartTime=AdjList[i].Train[AdjList[i].TrainNum].StopTime=strcpy(AdjList[i].Train[AdjList[i].TrainNum].name,AdjList[i].TrainNum++;//車的數(shù)加1;}int*flight,char*StartCity,*EndCity,intintEndTime,int{inti,j;ij=j;AdjList[i].Flight[AdjList[i].FlightNum].StartTime=StartTime;AdjList[i].Flight[AdjList[i].FlightNum].StopTime=strcpy(AdjList[i].Train[AdjList[i].FlightNum].name,flight);AdjList[i].FlightNum++;1;}intDelPath(char*name){精彩文檔
實(shí)用標(biāo)準(zhǔn)文案inti,j,flag0;for(i=0;i<CityNum;{for(j=0;j<AdjList[i].FlightNum;注意j是從開(kāi)始的if(strcmp(AdjList[i].Flight[j].name,name)==0){flag=1;break;}if(flag){for(;j<AdjList[i].FlightNum-1;j++)//把刪除的航班后的每個(gè)航班向前移一位{AdjList[i].Flight[j+1].Cost;AdjList[i].Flight[j].EndCity=+strcpy(AdjList[i].Flight[j].name,+AdjList[i].Flight[j].StartTime=AdjList[i].Flight[j+AdjList[i].Flight[j].StopTime=+1].StopTime;}break;}for(j=0;j<AdjList[i].TrainNum;j++)if(strcmp(AdjList[i].Train[j].name,name)=={flag=1;break;}if(flag){精彩文檔
實(shí)用標(biāo)準(zhǔn)文案for(;j<AdjList[i].TrainNum1;//把刪除的列車后的每個(gè)列車次都前移一位{AdjList[i].Train[j].Cost+1].Cost;=AdjList[i].Train[j+1].EndCity;+AdjList[i].Train[j].StartTime=AdjList[i].Train[j+AdjList[i].Train[j].StopTime=+1].StopTime;}AdjList[i].TrainNum--;break;}}1;}Info================================================Dijkstra_Output(intmatx[Dij_MAXN][Dij_MAXN],intint{inttrack[Dij_MAXN];inti=0,j,k,min,cost=0;jtrack[i++]=j;while(PreCity[j]>=0){cost+=matx[PreCity[j]][j];track[i++]=jPreCity[j];}Way:");精彩文檔
實(shí)用標(biāo)準(zhǔn)文案if(!TravelType){for(i--;i>0;i--){printf("\n%s:",CityName[track[i]]);=track[i-1];=for(k=0;k<AdjList[track[i]].TrainNum;if(AdjList[track[i]].Train[k].EndCity==end&&min>AdjList[track[i]].Train[k].Cost){min=AdjList[track[i]].Train[k].Cost;tmpk;}printf("%s",AdjList[track[i]].Train[tmp].name);AdjList[track[i]].Train[tmp].StartTime/60,AdjList[track[i]].Train[tmp].StartTime%60,AdjList[track[i]].Train[tmp].StopTime/AdjList[track[i]].Train[tmp].StopTime%60);}}{for(i--;i>0;i--){printf("\n%s:",CityName[track[i]]);=track[i-1];=for(k=0;k<AdjList[track[i]].FlightNum;k++)if(AdjList[track[i]].Train[k].EndCity==end&&min>AdjList[track[i]].Flight[k].Cost){精彩文檔
實(shí)用標(biāo)準(zhǔn)文案min=AdjList[track[i]].Flight[k].Cost;tmpk;}printf("%s",AdjList[track[i]].Flight[tmp].name);/60,60,AdjList[track[i]].Flight[tmp].StopTime/60,AdjList[track[i]].Flight[tmp].StopTime}}CityName[track[0]]);Cost}Dijkstra(intmatx[Dij_MAXN][Dij_MAXN],intintp_end,int{int//PreCity[i]==-1,never//PreCity>0,theprecityofCityiinti,j,min,for(i=0;i<CityNum;{=-1;}PreCity[p_start]=-2;while(PreCity[p_end]=={min=-1;for(i=0;i<CityNum;精彩文檔
實(shí)用標(biāo)準(zhǔn)文案if(PreCity[i]!=-1){for(j=0;j<CityNum;if(PreCity[j]==&&&&matx[i][j]<min)){=i;posj;min=}}PreCity[pos]}PreCity,p_end,TravelType);}intInitSysData(){FILE*fp;inti,j,minute,num,stmp1[MAX_STRING_NUM];stmp2[MAX_STRING_NUM];stmp3[MAX_STRING_NUM];fp=fopen(CityFile,"r");if(!fp){printf("\nError:CannotOpen-1;}fscanf(fp,&CityNum);for(i=0;i<CityNum;精彩文檔
實(shí)用標(biāo)準(zhǔn)文案{fscanf(fp,"%s",&CityName[i]);AdjList[i].city=i;AdjList[i].TrainNum=0;=0;}fclose(fp);fp=fopen(TrainFile,"r");if(!fp){printf("\nError:CannotOpen-1;}fscanf(fp,&num);for(i=0;i++){fscanf(fp,"%s",//車的車次fscanf(fp,"%s",//車的始發(fā)站fscanf(fp,"%s",//車的終點(diǎn)站jSeekCity(stmp2);AdjList[j].Train[AdjList[j].TrainNum].EndCity=//將車的車次、始發(fā)站、終點(diǎn)站、出發(fā)時(shí)間、到達(dá)時(shí)間讀出strcpy(AdjList[j].Train[AdjList[j].TrainNum].name,fscanf(fp,&hour,AdjList[j].Train[AdjList[j].TrainNum].StartTime=*+minute;fscanf(fp,&hour,AdjList[j].Train[AdjList[j].TrainNum].StopTime=*+minute;fscanf(fp,AdjList[j].Train[AdjList[j].TrainNum].Cost=AdjList[j].TrainNum++;精彩文檔
實(shí)用標(biāo)準(zhǔn)文案}fclose(fp);fp=fopen(FlightFile,"r");if(!fp){printf("\nError:CannotOpenFlight-1;}fscanf(fp,&num);for(i=0;i++){fscanf(fp,"%s",//機(jī)的車次fscanf(fp,"%s",//機(jī)的始發(fā)站fscanf(fp,"%s",//機(jī)的終點(diǎn)站jSeekCity(stmp2);=SeekCity(stmp3);fscanf(fp,&hour,AdjList[j].Flight[AdjList[j].FlightNum].StartTime=hour*+fscanf(fp,&hour,AdjList[j].Flight[AdjList[j].FlightNum].StopTime=*60+minute;fscanf(fp,AdjList[j].FlightNum++;}fclose(fp);return}intSearchMinTime(CityTypeCity,intintcurPathNo,int精彩文檔
實(shí)用標(biāo)準(zhǔn)文案{//CityType是種短整形函數(shù),SearchMinTime共有5個(gè)參數(shù)inti;if(CityEndCity){if(MinTime>CurTime{for(i=0;i<=curPathNo;{MinPath[i].CityPath[i].City;Path[i].TraNo;=}MinTime=}}{curPathNo++;Path[curPathNo].CityCity;if(!TravelType){for(i=0;i<AdjList[City].TrainNum;i++){if((AdjList[City].Train[i].StartTime>=(CurTime&&+(CurTime/1440)*-StartTime<MinTime)){=i;SearchMinTime(AdjList[City].Train[i].EndCity,EndCity,+(CurTime/*curPathNo,TravelType);精彩文檔
實(shí)用標(biāo)準(zhǔn)文案}if((AdjList[City].Train[i].StartTime<(CurTime%1440))&&+(CurTime/1440)*-StartTime<MinTime)){=i;SearchMinTime(AdjList[City].Train[i].EndCity,EndCity,+(CurTime/1440+*curPathNo,TravelType);}}}{for(i=0;i<AdjList[City].FlightNum;{if((AdjList[City].Flight[i].StartTime>=CurTime)&&(AdjList[City].Flight[i].StopTime+(CurTime/*{=i;SearchMinTime(AdjList[City].Flight[i].EndCity,EndCity,AdjList[City].Flight[i].StopTime+(CurTime/1440)*curPathNo,TravelType);}if((AdjList[City].Flight[i].StartTime<CurTime)&&(AdjList[City].Flight[i].StopTime+(CurTime/*{=i;精彩文檔
實(shí)用標(biāo)準(zhǔn)文案SearchMinTime(AdjList[City].Flight[i].EndCity,EndCity,AdjList[City].Flight[i].StopTime+(CurTime/1440+1)*curPathNo,TravelType);}}}}1;}intCalcMinTime(intStartCity,EndCity,int{inti;MinTime=0;=if(!TravelType){for(i=0;i<AdjList[StartCity].TrainNum;{Path[0].TraNo=i;StartTime=AdjList[StartCity].Train[i].StartTime;SearchMinTime(AdjList[StartCity].Train[i].EndCity,EndCity,AdjList[StartCity].Train[i].StopTime,}}{for(i=0;{精彩文檔
實(shí)用標(biāo)準(zhǔn)文案Path[0].TraNo=i;StartTime=AdjList[StartCity].Flight[i].StartTime;SearchMinTime(AdjList[StartCity].Flight[i].EndCity,EndCity,AdjList[StartCity].Flight[i].StopTime,0,TravelType);}}if(MinTime=={accesstothatdestination!");0;}//if//StartTime=AdjList[StartCity].Train[MinPath[0].TraNo].StartTime;////printf("\nPath:\n");for(i=0;i<=i++){if(!TravelType):CityName[MinPath[i].City],AdjList[MinPath[i].City].Train[MinPath[i].TraNo].name);:CityName[MinPath[i].City],AdjList[MinPath[i].City].Flight[MinPath[i].TraNo].name);printf("%2d:%2d-%2d:%2d\n",AdjList[MinPath[i].City].Train[MinPath[i].TraNo].StartTime/AdjList[MinPath[i].City].Train[MinPath[i].TraNo].StartTime%60,AdjList[MinPath[i].City].Train[MinPath[i].TraNo].StopTime/AdjList[MinPath[i].City].Train[MinPath[i].TraNo].StopTime60);精彩文檔
實(shí)用標(biāo)準(zhǔn)文案}printf("%s:CityName[EndCity]);Cost:%2d:%2d",MinTime/MinTime60);1;}intintEndCity,{intma[Dij_MAXN][Dij_MAXN];inti,j,min,for(i=0;i<CityNum;for(j=0;j<CityNum;ma[i][j]=-1;if=={for(i=0;i<CityNum;{min=j0;while{min==while(end==AdjList[i].Train[j].EndCity&&j<AdjList[i].TrainNum){if(AdjList[i].Train[j].Cost<min){min=AdjList[i].Train[j].Cost;}精彩文檔
實(shí)用標(biāo)準(zhǔn)文案j++;}=min;}}}{for(i=0;i<CityNum;{min=j0;while(j<AdjList[i].FlightNum){min==AdjList[i].Flight[j].EndCity;while(end=={if(AdjList[i].Flight[j].Cost<min){min=}j++;}=min;}}}Dijkstra(ma,EndCity,TravelType);1;精彩文檔
實(shí)用標(biāo)準(zhǔn)文案}//========================================Main()=================================================int{name[MAX_STRING_NUM];//城市名s_city[MAX_ST
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西商場(chǎng)石材結(jié)晶施工方案
- 俱樂(lè)部隔音墻建設(shè)合同
- 辦公室節(jié)能照明改造合同
- 通信基站挖掘機(jī)聘用合同
- 二零二五年度二手車銷售及二手車售后服務(wù)滿意度調(diào)查合同2篇
- 屋頂燒烤區(qū)租賃合同
- 二零二五年度單休制美容美發(fā)師勞動(dòng)合同范本(美發(fā)美容)3篇
- 鋼筋預(yù)應(yīng)力施工合同
- 二零二五年度廣告發(fā)布合同標(biāo)的為品牌宣傳8篇
- 二零二五年度凈身出戶離婚協(xié)議書定制與離婚后贍養(yǎng)費(fèi)協(xié)議3篇
- GB/T 8574-2024復(fù)合肥料中鉀含量的測(cè)定
- 工程結(jié)算業(yè)務(wù)咨詢服務(wù)協(xié)議書
- 運(yùn)輸公司安全生產(chǎn)隱患排查制度
- 譯林新版(2024)七年級(jí)英語(yǔ)上冊(cè)Unit 5 Reading課件
- 爆破設(shè)計(jì)說(shuō)明書(修改)
- 2025屆天津市南開(kāi)區(qū)南開(kāi)中學(xué)語(yǔ)文高三上期末達(dá)標(biāo)檢測(cè)試題含解析
- 期末試卷(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)滬教版
- 公交公司風(fēng)險(xiǎn)分級(jí)管控臺(tái)賬
- 光伏電站運(yùn)維詳細(xì)版手冊(cè)
- 食品安全應(yīng)急管理和突發(fā)事故報(bào)告制度
- 藝術(shù)學(xué)概論第一章-彭吉象
評(píng)論
0/150
提交評(píng)論