版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 1.需求分析1</b></p><p><b> 2.概要設(shè)計1</b></p><p><b> 3.詳細設(shè)計2</b></p><p><b> 4.調(diào)試
2、分析4</b></p><p><b> 5.使用說明4</b></p><p><b> 6.心得體會6</b></p><p> 附錄:源程序清單7</p><p><b> 校園導(dǎo)航問題</b></p><p> 摘要
3、:設(shè)計你的學校的平面圖,至少包括10個以上的場所,每兩個場所間可以有不同的路,且路長也可能不同,找出從任意場所到達另一場所的最佳路徑</p><p> 關(guān)鍵字: 校園景點 最短路徑</p><p><b> 需求分析</b></p><p> 本次實驗設(shè)計的任務(wù)是實現(xiàn)一個南京信息工程大學的校園導(dǎo)航平面圖。設(shè)計要求:設(shè)計你的學校的平面圖,
4、至少包括10個以上的場所,每兩個場所間可以有不同的路,且路長也可能不同,找出從任意場所到達另一場所的最佳路徑(最短路徑)。</p><p> 本課題實現(xiàn)校園多個場所(至少10個)的最短路徑求解。</p><p> ?。?)輸入的形式和輸入值的范圍:本系統(tǒng)主要數(shù)據(jù)類型為字符型char及整形int,char型主要包括單位編號,單位名稱,單位簡介,功能編號;輸入功能編號與單位編號進行操作。&l
5、t;/p><p> ?。?) 輸出的形式:輸出則通過已有的信息數(shù)據(jù),通過相關(guān)的操作輸出相應(yīng)信息。</p><p> (3) 程序所能達到的功能:本程序可供任何人使用,主要功能1.瀏覽各單位及簡介;2.查看所有游覽路線;3.選擇出發(fā)點和目的地求出最佳路徑;4.查看某一單位信息。</p><p> ?。?)測試數(shù)據(jù):包括正確的輸入及其輸出結(jié)果和含有錯誤的輸入及其輸出結(jié)果
6、。</p><p><b> 概要設(shè)計</b></p><p> 本系統(tǒng)包含一個文件。設(shè)計分有菜單,顯示信息,弗洛伊德算法,迪杰斯特拉算法,查找景點信息等程序段。主程序為整系統(tǒng)的入口處,菜單主要實現(xiàn)顯示系統(tǒng)功能,顯示信息主要實現(xiàn)顯示景點信息,弗洛伊德算法主要實現(xiàn)求兩景點之間最短路徑,迪杰斯特拉算法實現(xiàn)求兩景點之間最短路徑,查找景點信息主要實現(xiàn)顯示某一景點信息。&l
7、t;/p><p> 系統(tǒng)首先通過主程序調(diào)用void main( );進入系統(tǒng)主菜單函數(shù),根據(jù)用戶的選擇可分別進入:1.瀏覽各景點及簡介;2.查看所有游覽路線;3.選擇出發(fā)點和目的地求出最佳路徑;4.查看景點信息;5.退出系統(tǒng)。</p><p> 選擇“瀏覽各景點及簡介”項,顯示十個景點的有關(guān)信息,包括景點編號,景點名稱,景點簡介。</p><p> 選擇“查看所有
8、游覽路線”項,會進入輸入起始景點編號的界面,輸入正確編號后會顯示起始景點到其余九個景點的最短路線的方案。</p><p> 選擇“選擇出發(fā)點和目的地”項,會進入輸入起始景點與目的景點的界面,輸入起始景</p><p> 點與目的景點,并有空格隔開就得到兩景點之間的最佳路徑。</p><p> 選擇“查看景點信息”項,會進入輸入要查看的景點的界面,如入后會顯示該
9、景點的有關(guān)信息。</p><p> 選擇“退出系統(tǒng)”項,就會退出程序。</p><p><b> 詳細設(shè)計</b></p><p> 1 30 6 10 7 20 8 10 9</p><p> 20 20 30
10、 20</p><p> 0 5 10</p><p> 20 30 </p><p> 2 10 3
11、 10 4 10 100</p><p> 11 20 12</p><p><b> 0:大活</b></p><p><b> 1:賓館 </b></p><p><b> 2:明德樓</b></p&
12、gt;<p><b> 3:校史館</b></p><p><b> 4:老圖書館</b></p><p><b> 5:沁園</b></p><p><b> 6:食堂</b></p><p><b> 7:鴛鴦樓<
13、;/b></p><p><b> 8:新食堂</b></p><p><b> 9:田徑場 </b></p><p><b> 10:新圖書館</b></p><p><b> 11:北辰樓</b></p><p>
14、<b> 12:電子樓</b></p><p> 2、主程序流程圖: </p><p> ?。?)弗洛伊德的算法:</p><p> void Floyd(MGraph *G)</p><p><b> {</b></p><p> int v,u,i,w,k,j,
15、flag=1,p[10][10][10],D[10][10];//定義參數(shù)</p><p> for(v=0;v<G->vexnum;v++)</p><p> for(w=0;w<G->vexnum;w++)</p><p><b> {</b></p><p> D[v][w]=G-&
16、gt;arcs[v][w].adj;</p><p> for(u=0;u<G->vexnum;u++)</p><p> p[v][w][u]=0;</p><p> if(D[v][w]<INFINITY)</p><p><b> {</b></p><p> p
17、[v][w][v]=1;p[v][w][w]=1;</p><p><b> }</b></p><p><b> }</b></p><p> for(u=0;u<G->vexnum;u++)</p><p> for(v=0;v<G->vexnum;v++)<
18、;/p><p> for(w=0;w<G->vexnum;w++)</p><p> if(D[v][u]+D[u][w]<D[v][w])</p><p><b> {</b></p><p> D[v][w]=D[v][u]+D[u][w];</p><p> for(
19、i=0;i<G->vexnum;i++)</p><p> p[v][w][i]=p[v][u][i]||p[u][w][i];</p><p><b> }</b></p><p> while(flag)</p><p><b> {</b></p><p
20、> cout<<"請輸入出發(fā)點和目的地的編號(用空格隔開):";</p><p> cin>>k>>j; </p><p> if(k<0||k>G->vexnum||j<0||j>G->vexnum) //判斷輸入的景點編號正確與否</p><p>
21、;<b> {</b></p><p> cout<<"景點編號不存在!請重新輸入出發(fā)點和目的地的編號:";</p><p> cin>>k>>j;</p><p><b> }</b></p><p> if(k>=0&
22、;&k<G->vexnum&&j>=0&&j<G->vexnum)</p><p><b> flag=0;</b></p><p><b> }</b></p><p> cout<<G->vexs[k].name;
23、 //輸出景點名稱</p><p> for(u=0;u<G->vexnum;u++)</p><p> if(p[k][j][u]&&k!=u&&j!=u) //輸出路線</p><p> cout<<"-->"<<G->ve
24、xs[u].name;</p><p> cout<<"-->"<<G->vexs[j].name;</p><p> cout<<" 總路線長"<<D[k][j]<<endl; //輸出總路線長度</p><p><b> }</
25、b></p><p><b> 調(diào)試分析</b></p><p> 在程序設(shè)計中遇到了輸出景點信息的表不整齊,用setw()解決了;默認的界面太小,不能完整的看到輸出信息,用了system("mode con: cols=100 lines=40")命令語句設(shè)置了行數(shù)和列數(shù)。剛開始做系統(tǒng)缺乏全局觀念,分工也不是很合理,做得很零碎,所以在組
26、合的時候也出現(xiàn)了很多問題。</p><p><b> 使用說明與測試結(jié)果</b></p><p> 打開系統(tǒng),首先會進入系統(tǒng)的主菜單:</p><p> 瀏覽各景點及簡介 </p><p> 查看所有游覽路線 </p><p><b> 選擇出發(fā)點和目的地</b>
27、;</p><p><b> 查看景點信息</b></p><p><b> 退出系統(tǒng)</b></p><p> 用戶可以進行如下操作:</p><p> 1、如果你想瀏覽各景點及簡介的話,請輸入“1”,并回車。此時界面上將顯示出各景點的編號、名稱及其簡介。</p><p
28、> 2、如果你想查看某一景點的所有游覽路線,可選擇2操作。輸入“2”,并回車。此時,系統(tǒng)會提示你輸入某景點的編號。輸入編號后,回車,便可以看到該景點的所有游覽路線。</p><p> 若輸入的景點編號錯誤就會有提示重新輸入。</p><p> 3、如果你想查看兩個景點之間的最短路線的,可選擇3操作。輸入“3”,并回車。此時,系統(tǒng)會提示你要輸入起始景點與終點的編號。輸入編號后,回
29、車,此時,便可以見到這兩個景點之間的最短路徑。</p><p> 4、如果你想查看具體某些景點的簡介及信息,可以選擇4操作。輸入“4”,并回車。此時,系統(tǒng)會提示全部景點的對應(yīng)的編號,選擇你要查看的景點信息,輸入其編號,回車,此時,屏幕上將會顯示出該景點的各種信息。若輸入的景點編號錯誤就會有提示重新輸入。</p><p> 5、在主菜單鍵入“5” ,退出程序。</p>&l
30、t;p><b> 測試結(jié)果</b></p><p><b> 菜單界面</b></p><p> 進入“瀏覽各景點及簡介”后,輸出景點信息的界面。</p><p> 進入“查看所有游覽路線”,顯示輸出景點編號為0的景點到其余九個景點的最佳路線。</p><p> 進入“選擇出發(fā)點和目
31、的地”,輸入出發(fā)點2和目的點9后輸出的的最佳路線的界面。</p><p> 進入“查看景點信息”,輸入要查看的景點編號,輸出景點信息的界面。</p><p> 輸入要查詢的景點編號錯誤,提示重新輸入。</p><p><b> 退出程序界面。</b></p><p><b> 心得體會</b>
32、;</p><p> 經(jīng)過兩個星期的課程設(shè)計實習,我從中學會了許多東西。</p><p> 首先,我明白了理論與實際應(yīng)用相結(jié)合的重要性,并提高了自己組織數(shù)據(jù)集,編寫大型程序的能力。程序的編寫需要有耐心,有些事情看起來很復(fù)雜,但問題需要一點一點去解決,分析問題,把問題一個一個劃分,劃分成小塊以后就逐個去解決。再總體解決大的問題。這樣做起來不僅有條理,也使問題可以得到輕松的解決。,<
33、/p><p> 其次,通過這段時間的課程設(shè)計,我認識到數(shù)據(jù)結(jié)構(gòu)是一門比較難的課程。需要多花時間上機練習。</p><p> 這次的程序訓(xùn)練培養(yǎng)了我實際分析問題、編程和動手能力,使我掌握了程序設(shè)計的基本技能,提高了我適應(yīng)實際,實踐編程的能力。</p><p> 最后,這次的課程設(shè)計使我對專業(yè)課的學習有了更加深刻的認識,曾以為現(xiàn)在學的知識用不上,就加以怠慢,等到想用的
34、時候卻發(fā)現(xiàn)自己的學習原來是那么的不扎實。我決定以后要加倍努力學好專業(yè)課,讓自己的基礎(chǔ)知識更扎實,同時不斷提高自己的實踐操作能力,為以后的工作學習打下堅實的基礎(chǔ)。</p><p> 總的來說,這次課程設(shè)計讓我獲益匪淺,對數(shù)據(jù)結(jié)構(gòu)也有了進一步的認識和理解。</p><p><b> 參考文獻:</b></p><p> [1]《數(shù)據(jù)結(jié)構(gòu)》(C
35、語言版)作者:嚴蔚敏、吳偉民 清華大學出版社[2]《C程序設(shè)計》(第二版)作者:譚浩強 清華大學出版社[3]《數(shù)據(jù)結(jié)構(gòu)題集》(C語言版)作者:嚴蔚敏、吳偉民、米寧 清華大學出版社</p><p><b> 附錄:源程序清單</b></p><p> #define INFINITY 10000 /*無窮大*/</p><
36、;p> #define MAX_VERTEX_NUM 40</p><p> #define MAX 40</p><p> #include<stdlib.h></p><p> #include<string.h></p><p> #include <iostream><
37、;/p><p> using namespace std;</p><p> #include <iomanip></p><p> typedef struct ArCell</p><p><b> {</b></p><p> int adj; //路徑長度</
38、p><p> }ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];</p><p> typedef struct //圖中頂點表示主要景點,存放景點的編號、名稱、簡介等信息,</p><p><b> {</b></p><p> char name[30];&l
39、t;/p><p><b> int num;</b></p><p> char introduction[100];//簡介</p><p> }infotype;</p><p> typedef struct</p><p><b> {</b></p>
40、;<p> infotype vexs[MAX_VERTEX_NUM];</p><p> AdjMatrix arcs;</p><p> int vexnum,arcnum;</p><p><b> }</b></p><p><b> MGraph;</b></
41、p><p><b> MGraph b;</b></p><p> MGraph InitGraph(void);</p><p> void Menu(void);</p><p> void Browser(MGraph *G);</p><p> void ShortestPath_D
42、IJ(MGraph * G);</p><p> void Floyd(MGraph *G);</p><p> void Search(MGraph *G);</p><p> /***********************主函數(shù)*******************************/</p><p> void main
43、(void)</p><p><b> {</b></p><p> system("color 1f");</p><p> system("mode con: cols=100 lines=40");</p><p><b> int i;</b>
44、</p><p> b=InitGraph();</p><p><b> Menu();</b></p><p><b> cin>>i;</b></p><p> while(i!=5)</p><p><b> {</b>&l
45、t;/p><p><b> switch(i)</b></p><p><b> {</b></p><p> case 1:system("cls");Browser(&b);Menu();break;</p><p> case 2:system("cl
46、s");ShortestPath_DIJ(&b);Menu();break;</p><p> case 3:system("cls");Floyd(&b);Menu();break;</p><p> case 4:system("cls");Search(&b);Menu();break;</p>
47、<p> case 5:exit(1);break;</p><p> default:break;</p><p><b> }</b></p><p><b> cin>>i;</b></p><p><b> }</b></p&g
48、t;<p><b> }</b></p><p> /*************************************************************/</p><p> /*************************定義景點編號,名稱及簡介************/</p><p> MG
49、raph InitGraph(void)</p><p><b> {</b></p><p><b> MGraph G;</b></p><p><b> int i,j;</b></p><p> G.vexnum=13; //十個景點</p>
50、;<p> G.arcnum=14; //鄰接矩陣</p><p> for(i=0;i<G.vexnum;i++)</p><p> G.vexs[i].num=i;</p><p> //各景點的代碼,名稱及簡介</p><p> strcpy(G.vexs[0].name,"大活
51、 ");</p><p> strcpy(G.vexs[0].introduction," 大學生活動中心,舉辦各種活動的主要場所 ");</p><p> strcpy(G.vexs[1].name,"賓館");</p><p> strcpy(G.vexs[1].introductio
52、n," 可給開學時的家長提供便利,且價格優(yōu)惠 ");</p><p> strcpy(G.vexs[2].name,"明德樓 ");</p><p> strcpy(G.vexs[2].introduction,"學校的特色教學樓,共六層,可容納多人 ");</p><p>
53、 strcpy(G.vexs[3].name,"校史館 ");</p><p> strcpy(G.vexs[3].introduction,"學校歷史資料的展覽室 ");</p><p> strcpy(G.vexs[4].name,"老圖書館 ");</p><p> strcpy(G.vexs[
54、4].introduction," 擁有全校機房,環(huán)境舒適 ");</p><p> strcpy(G.vexs[5].name,"沁園 ");</p><p> strcpy(G.vexs[5].introduction," 男生公寓 ");</p><p> strcpy(G.vex
55、s[6].name,"食堂 ");</p><p> strcpy(G.vexs[6].introduction," 標準食堂,兩層,清潔衛(wèi)生 ");</p><p> strcpy(G.vexs[7].name,"鴛鴦樓 ");</p><p> strcpy(G.vexs[7].intro
56、duction," 男女混合公寓 ");</p><p> strcpy(G.vexs[8].name,"新食堂");</p><p> strcpy(G.vexs[8].introduction," 標準食堂,兩層,清潔衛(wèi)生 ");</p><p> strcpy(G.vexs[9
57、].name,"田徑場");</p><p> strcpy(G.vexs[9].introduction," 全新塑膠跑道,中間為人工草皮足球場,排球場和籃球場 ");</p><p> strcpy(G.vexs[10].name,"新圖書館");</p><p> strcpy(G.ve
58、xs[10].introduction," 藏書幾十萬冊,設(shè)施良好,每層樓均有閱覽室 ");</p><p> strcpy(G.vexs[11].name,"北辰樓");</p><p> strcpy(G.vexs[11].introduction," 計軟院大一新生晚自習教室樓 ");</p>
59、<p> strcpy(G.vexs[12].name,"電子樓 ");</p><p> strcpy(G.vexs[12].introduction,"計軟院的院辦與學辦 ");</p><p> for(i=0;i<G.vexnum;i++)</p><p> for(j=0;j<
60、;G.vexnum;j++)</p><p> G.arcs[i][j].adj=INFINITY;</p><p> //各景點之間的距離,沒有的均為無窮大</p><p> G.arcs[0][1].adj=20;</p><p> G.arcs[0][2].adj=20;</p><p> G.arc
61、s[1][5].adj=20;</p><p> G.arcs[1][6].adj=30;</p><p> G.arcs[2][3].adj=10;</p><p> G.arcs[2][5].adj=30;</p><p> G.arcs[3][4].adj=10;</p><p> G.arcs[4][
62、11].adj=10;</p><p> G.arcs[5][6].adj=30;</p><p> G.arcs[6][7].adj=10;</p><p> G.arcs[7][8].adj=20;</p><p> G.arcs[8][9].adj=10;</p><p> G.arcs[9][10].
63、adj=20;</p><p> G.arcs[10][12].adj=100;</p><p> G.arcs[11][12].adj=20;</p><p> for(i=0;i<G.vexnum;i++)</p><p> for(j=0;j<G.vexnum;j++)</p><p> G
64、.arcs[j][i].adj=G.arcs[i][j].adj;</p><p><b> return G;</b></p><p><b> }</b></p><p> /*********************************************************************
65、**********************/</p><p> /********************************主菜單(顯示輸入提示)****************************************/</p><p> void Menu()</p><p><b> { </b></p>
66、<p> cout<<" 南京信息工程大學導(dǎo)游圖 "<<endl;</p><p> cout<<" ┏━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p&
67、gt;<p> cout<<" ┃ 1.瀏覽各景點及簡介 ┃"<<endl;</p><p> cout<<" ┃ 2.查看所有游覽路線 ┃"&l
68、t;<endl;</p><p> cout<<" ┃ 3.選擇出發(fā)點和目的地 ┃"<<endl;</p><p> cout<<" ┃ 4.查看景點信息
69、 ┃"<<endl;</p><p> cout<<" ┃ 5.退出系統(tǒng) ┃"<<endl;</p><p> cout<<"
70、 ┗━━━━━━━━━━━━━━━━━━━━┛"<<endl;</p><p> cout<<"Option-:";</p><p><b> }</b></p><p> /************************************顯示景點編號、名稱、簡介*******
71、*********************************/</p><p> void Browser(MGraph *G)</p><p><b> {</b></p><p><b> int v;</b></p><p> cout<<"┏━━┳━━━━
72、━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p> cout<<"┃編號┃景點名稱 ┃ 簡介 ┃ "<<endl;</p><p> fo
73、r(v=0;v<G->vexnum;v++)</p><p> cout<<"┃"<<G->vexs[v].num<<setw(5)<<"┃"<<G->vexs[v].name<<setw(10)<<"┃"<<G->vexs[v
74、].introduction<<setw(3)<<"┃"<<endl;</p><p> cout<<"┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;</p><p><b> }</b></p>
75、<p> /********************迪杰斯特拉算法來計算出起點到各個頂點之間的最短路徑,v0為起點***********************/</p><p> void ShortestPath_DIJ(MGraph * G)</p><p><b> {</b></p><p> int v,w,i,
76、min,t=0,x,flag=1,v0;</p><p> int final[20], D[20], p[20][20];</p><p> cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p> cout<<"┃
77、編號┃景點名稱 ┃ 簡介 ┃ "<<endl;</p><p> for(v=0;v<G->vexnum;v++)</p><p> cout<<"┃"<<G->vexs[v
78、].num<<setw(5)<<"┃"<<G->vexs[v].name<<setw(10)<<"┃"<<G->vexs[v].introduction<<setw(3)<<"┃"<<endl;</p><p> cout<&l
79、t;"┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;</p><p> while(flag)</p><p><b> {</b></p><p> cout<<"請輸入一個起始景點編號:";</p>&
80、lt;p><b> cin>>v0;</b></p><p> if(v0<0||v0>G->vexnum)</p><p><b> {</b></p><p> cout<<"景點編號不存在!請重新輸入景點編號:";</p>&l
81、t;p><b> cin>>v0;</b></p><p><b> }</b></p><p> if(v0>=0&&v0<G->vexnum)</p><p><b> flag=0;</b></p><p>&l
82、t;b> }</b></p><p> for(v=0;v<G->vexnum;v++)</p><p><b> {</b></p><p> final[v]=0;</p><p> D[v]=G->arcs[v0][v].adj;</p><p>
83、; for(w=0;w<G->vexnum;w++)</p><p> p[v][w]=0;</p><p> if(D[v]<INFINITY)</p><p><b> {</b></p><p> p[v][v0]=1;p[v][v]=1;</p><p><
84、;b> }</b></p><p><b> }</b></p><p> D[v0]=0;final[v0]=1;</p><p> for(i=1;i<G->vexnum;i++)</p><p><b> {</b></p><p&g
85、t; min=INFINITY;</p><p> for(w=0;w<G->vexnum;w++)</p><p> if(!final[w])</p><p> if(D[w]<min){v=w;min=D[w];}</p><p> final[v]=1;</p><p> for(
86、w=0;w<G->vexnum;w++)</p><p> if(!final[w]&&(min+G->arcs[v][w].adj<D[w]))</p><p><b> {</b></p><p> D[w]=min+G->arcs[v][w].adj;</p><p&
87、gt; for(x=0;x<G->vexnum;x++) </p><p> p[w][x]=p[v][x];</p><p> p[w][w]=1;</p><p><b> }</b></p><p><b> }</b></p><p> for
88、(v=0;v<G->vexnum;v++)</p><p><b> {</b></p><p> if(v0!=v) cout<<G->vexs[v0].name;</p><p> for(w=0;w<G->vexnum;w++)</p><p><b>
89、{</b></p><p> if(p[v][w]&&w!=v0) cout<<"-->"<<G->vexs[w].name;</p><p><b> t++;</b></p><p><b> }</b></p>&
90、lt;p> if(t>G->vexnum-1&&v0!=v) cout<<" 總路線長"<<D[v]<<endl;</p><p><b> }</b></p><p><b> }</b></p><p> /*
91、********************************Floyd函數(shù)***************************************/</p><p> void Floyd(MGraph *G)</p><p><b> {</b></p><p> int v,u,i,w,k,j,flag=1,p[10][10
92、][10],D[10][10];</p><p> cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p> cout<<"┃編號┃景點名稱 ┃ 簡介
93、 ┃ "<<endl;</p><p> for(v=0;v<G->vexnum;v++)</p><p> cout<<"┃"<<G->vexs[v].num<<setw(5)<<"┃"<<G->vexs
94、[v].name<<setw(10)<<"┃"<<G->vexs[v].introduction<<setw(3)<<"┃"<<endl;</p><p> cout<<"┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"&l
95、t;<endl;</p><p> for(v=0;v<G->vexnum;v++)</p><p> for(w=0;w<G->vexnum;w++)</p><p><b> {</b></p><p> D[v][w]=G->arcs[v][w].adj;</p&g
96、t;<p> for(u=0;u<G->vexnum;u++)</p><p> p[v][w][u]=0;</p><p> if(D[v][w]<INFINITY)</p><p><b> {</b></p><p> p[v][w][v]=1;p[v][w][w]=1;&
97、lt;/p><p><b> }</b></p><p><b> }</b></p><p> for(u=0;u<G->vexnum;u++)</p><p> for(v=0;v<G->vexnum;v++)</p><p> for(w=
98、0;w<G->vexnum;w++)</p><p> if(D[v][u]+D[u][w]<D[v][w])</p><p><b> {</b></p><p> D[v][w]=D[v][u]+D[u][w];</p><p> for(i=0;i<G->vexnum;i++)
99、</p><p> p[v][w][i]=p[v][u][i]||p[u][w][i];</p><p><b> }</b></p><p> while(flag)</p><p><b> {</b></p><p> cout<<"請輸
100、入出發(fā)點和目的地的編號(用空格隔開):";</p><p> cin>>k>>j;</p><p> if(k<0||k>G->vexnum||j<0||j>G->vexnum)</p><p><b> {</b></p><p> cout
101、<<"景點編號不存在!請重新輸入出發(fā)點和目的地的編號:";</p><p> cin>>k>>j;</p><p><b> }</b></p><p> if(k>=0&&k<G->vexnum&&j>=0&&
102、j<G->vexnum)</p><p><b> flag=0;</b></p><p><b> }</b></p><p> cout<<G->vexs[k].name;</p><p> for(u=0;u<G->vexnum;u++)<
103、;/p><p> if(p[k][j][u]&&k!=u&&j!=u)</p><p> cout<<"-->"<<G->vexs[u].name;</p><p> cout<<"-->"<<G->vexs[j].nam
104、e;</p><p> cout<<" 總路線長"<<D[k][j]<<endl;</p><p> }//Floyd end</p><p> /************************************查找景點***************************************
105、****************/</p><p> void Search(MGraph *G)</p><p><b> {</b></p><p> int k,v,flag=1;</p><p> cout<<"┏━━┳━━━━━━━━┓"<<endl;<
106、/p><p> cout<<"┃編號┃景點名稱 ┃"<<endl;</p><p> for(v=0;v<G->vexnum;v++)</p><p> cout<<"┃"<<G->vexs[v].num<<setw(5)<<
107、;"┃"<<G->vexs[v].name<<setw(10)<<"┃"<<endl;</p><p> cout<<"┗━━┻━━━━━━━━┛"<<endl;</p><p> while(flag)</p><p>&l
108、t;b> {</b></p><p> cout<<"請輸入要查詢的景點編號:";</p><p><b> cin>>k;</b></p><p> if(k<0||k>G->vexnum)</p><p><b> {
109、</b></p><p> cout<<"景點編號不存在!請重新輸入景點編號:";</p><p><b> cin>>k;</b></p><p><b> }</b></p><p> if(k>=0&&k&l
110、t;G->vexnum)</p><p><b> flag=0;</b></p><p><b> }</b></p><p> cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p>
111、<p> cout<<"┃編號┃景點名稱 ┃簡介 ┃"<<endl;</p><p> cout<<"┃"<<G->vexs[k].num<<setw(5)<<&q
112、uot;┃"<<G->vexs[k].name<<setw(10)<<"┃"<<G->vexs[k].introduction<<setw(3)<<"┃"<<endl;</p><p> cout<<"┗━━┻━━━━━━━━┻━━━━━━━━━
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計—校園導(dǎo)航問題報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-校園導(dǎo)航
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計校園導(dǎo)航
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-校園導(dǎo)航系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--校園導(dǎo)航系統(tǒng)
- 校園導(dǎo)航系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--校園導(dǎo)航系統(tǒng)
- 校園導(dǎo)航系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計導(dǎo)航圖
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計導(dǎo)航系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計導(dǎo)航系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu),課程設(shè)計,校園最短路徑問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--校園導(dǎo)游咨詢
- 數(shù)據(jù)結(jié)構(gòu)_校園導(dǎo)游系統(tǒng)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---校園導(dǎo)游系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--校園導(dǎo)游咨詢
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-校園導(dǎo)游咨詢
- 數(shù)據(jù)結(jié)構(gòu) 校園導(dǎo)游系統(tǒng)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---校園導(dǎo)游系統(tǒng)設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----huffman編碼
評論
0/150
提交評論