數(shù)據(jù)結構課程設計-校園導航_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程名稱 數(shù)據(jù)結構課程設計 </p><p>  題 目 校園導航 </p><p>  指導教師 </p><p>  設計起始日期 5.9~5.16 </p><

2、;p>  學 院 計算機學院 </p><p>  系 別 計算機科學與工程 </p><p>  學生姓名 </p><p>  班級/學號 </p>&

3、lt;p>  成 績 </p><p><b>  需求分析</b></p><p>  本次實驗設計的任務是實現(xiàn)一個簡易的北京信息科技大學的校園導航平面圖。設計要包括下列要求:</p><p>  設計你的學校的平面圖,至少包括10個以上的場所,每兩個場所間可以有不同的路

4、,且路長也可能不同,找出從任意場所到達另一場所的最佳路徑(最短路徑)。</p><p>  本課題實現(xiàn)校園多個場所(至少10個)的最短路徑求解。</p><p>  (1)輸入的形式和輸入值的范圍:本系統(tǒng)主要數(shù)據(jù)類型為字符型char及整形int,char型主要包括單位編號,單位名稱,單位簡介,功能編號;輸入功能編號與單位編號進行操作。</p><p>  (2 )

5、輸出的形式:輸出則通過已有的信息數(shù)據(jù),通過相關的操作輸出相應信息。</p><p>  (3) 程序所能達到的功能:本程序可供任何人使用,主要功能1.瀏覽各單位及簡介;2.查看所有游覽路線;3.選擇出發(fā)點和目的地求出最佳路徑;4.查看某一單位信息。</p><p> ?。?)測試數(shù)據(jù):包括正確的輸入及其輸出結果和含有錯誤的輸入及其輸出結果。</p><p>  a

6、.首先看到的是校園導航系統(tǒng)的菜單:</p><p>  b.查看瀏覽路線等待輸入起始景點:</p><p>  C.選擇出發(fā)點與目的地 等待輸入起始景點與目的地編號:</p><p>  d.參看景點信息等待輸入景點編號:</p><p><b>  概要設計</b></p><p>  本系統(tǒng)包

7、含一個文件。設計分有菜單,顯示信息,弗洛伊德算法,迪杰斯特拉算法,查找景點信息等程序段。主程序為整系統(tǒng)的入口處,菜單主要實現(xiàn)顯示系統(tǒng)功能,顯示信息主要實現(xiàn)顯示景點信息,弗洛伊德算法主要實現(xiàn)求兩景點之間最短路徑,迪杰斯特拉算法實現(xiàn)求兩景點之間最短路徑,查找景點信息主要實現(xiàn)顯示某一景點信息。</p><p>  系統(tǒng)首先通過主程序調(diào)用void main( );進入系統(tǒng)主菜單函數(shù),根據(jù)用戶的選擇可分別進入:1.瀏覽各景

8、點及簡介;2.查看所有游覽路線;3.選擇出發(fā)點和目的地求出最佳路徑;4.查看景點信息;5.退出系統(tǒng)。</p><p>  選擇“瀏覽各景點及簡介”項,顯示十個景點的有關信息,包括景點編號,景點名稱,景點簡介。</p><p>  選擇“查看所有游覽路線”項,會進入輸入起始景點編號的界面,輸入正確編號后會顯示起始景點到其余九個景點的最短路線的方案。</p><p> 

9、 選擇“選擇出發(fā)點和目的地”項,會進入輸入起始景點與目的景點的界面,輸入起始景</p><p>  點與目的景點,并有空格隔開就得到兩景點之間的最佳路徑。</p><p>  選擇“查看景點信息”項,會進入輸入要查看的景點的界面,如入后會顯示該景點的有關信息。</p><p>  選擇“退出系統(tǒng)”項,就會退出程序。</p><p><b

10、>  詳細設計</b></p><p> ?。?)十三個單位的圖</p><p><b>  0: 前門</b></p><p><b>  1:圖書館 </b></p><p><b>  2:教二樓</b></p><p><

11、;b>  3:實驗樓</b></p><p><b>  4:操場</b></p><p><b>  5:教一樓</b></p><p><b>  6:食堂</b></p><p><b>  7: 水房</b></p>

12、<p><b>  8:學一公寓</b></p><p><b>  9:學二公寓</b></p><p><b>  10:學三公寓</b></p><p><b>  11:學四公寓</b></p><p><b>  12:后門

13、</b></p><p> ?。?)主程序流程圖: </p><p> ?。?)弗洛伊德的算法:</p><p>  void Floyd(MGraph *G)</p><p><b>  {</b></p><p>  int v,u,i,w,k,j,flag=1,p[10][10]

14、[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->arcs[v][w].ad

15、j;</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[v][w][v]=1;p[v]

16、[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++)</p><p&g

17、t;  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(i=0;i<G->v

18、exnum;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>  cout<&l

19、t;"請輸入出發(fā)點和目的地的編號(用空格隔開):";</p><p>  cin>>k>>j; </p><p>  if(k<0||k>G->vexnum||j<0||j>G->vexnum) //判斷輸入的景點編號正確與否</p><p><b>  {<

20、;/b></p><p>  cout<<"景點編號不存在!請重新輸入出發(fā)點和目的地的編號:";</p><p>  cin>>k>>j;</p><p><b>  }</b></p><p>  if(k>=0&&k<G->

21、;vexnum&&j>=0&&j<G->vexnum)</p><p><b>  flag=0;</b></p><p><b>  }</b></p><p>  cout<<G->vexs[k].name; //輸出景點

22、名稱</p><p>  for(u=0;u<G->vexnum;u++)</p><p>  if(p[k][j][u]&&k!=u&&j!=u) //輸出路線</p><p>  cout<<"-->"<<G->vexs[u].name;</

23、p><p>  cout<<"-->"<<G->vexs[j].name;</p><p>  cout<<" 總路線長"<<D[k][j]<<endl; //輸出總路線長度</p><p><b>  }</b></p>

24、<p><b>  調(diào)試分析</b></p><p> ?。?) 在程序設計中遇到了輸出景點信息的表不整齊,用setw()解決了;默認的界面太小,不能完整的看到輸出信息,用了system("mode con: cols=100 lines=40")命令語句設置了行數(shù)和列數(shù)。</p><p><b> ?。?)經(jīng)驗和體會<

25、/b></p><p>  經(jīng)過一段時間來的努力,終于初步實現(xiàn)系統(tǒng)功能,但肯定還存在不少漏洞。這是我們第三次做課程設計,也是第三次編寫一個比較完整和具有一定功能的的系統(tǒng)代碼,第二次幾個人合作制作系統(tǒng),制作過程中存在儲多的不足,遇到過許多的困難,曾經(jīng)灰心喪氣過,但是最終還是堅持了下來,雖然做得不怎么樣,但我們已經(jīng)努力地去做了,由于基礎也不怎么扎實,所以困難會比其它組更多更艱巨。剛開始做系統(tǒng)缺乏全局觀念,分工也

26、不是很合理,做得很零碎,所以在組合的時候也出現(xiàn)了很多問題。</p><p><b>  使用說明和測試結果</b></p><p>  打開系統(tǒng),首先會進入系統(tǒng)的主菜單:</p><p>  瀏覽各景點及簡介 </p><p>  查看所有游覽路線 </p><p><b>  選擇

27、出發(fā)點和目的地</b></p><p><b>  查看景點信息</b></p><p><b>  退出系統(tǒng)</b></p><p>  用戶可以進行如下操作:</p><p>  1、如果你想瀏覽各景點及簡介的話,請輸入“1”,并回車。此時界面上將顯示出各景點的編號、名稱及其簡介。&

28、lt;/p><p>  2、如果你想查看某一景點的所有游覽路線,可選擇2操作。輸入“2”,并回車。此時,系統(tǒng)會提示你輸入某景點的編號。輸入編號后,回車,便可以看到該景點的所有游覽路線。</p><p>  若輸入的景點編號錯誤就會有提示重新輸入。</p><p>  3、如果你想查看兩個景點之間的最短路線的,可選擇3操作。輸入“3”,并回車。此時,系統(tǒng)會提示你要輸入起始

29、景點與終點的編號。輸入編號后,回車,此時,便可以見到這兩個景點之間的最短路徑。</p><p>  4、如果你想查看具體某些景點的簡介及信息,可以選擇4操作。輸入“4”,并回車。此時,系統(tǒng)會提示全部景點的對應的編號,選擇你要查看的景點信息,輸入其編號,回車,此時,屏幕上將會顯示出該景點的各種信息。若輸入的景點編號錯誤就會有提示重新輸入。</p><p>  5、在主菜單鍵入“5” ,退出程

30、序。</p><p><b>  測試結果</b></p><p><b>  菜單界面</b></p><p>  進入“瀏覽各景點及簡介”后,輸出景點信息的界面。</p><p>  進入“查看所有游覽路線”,顯示輸出景點編號為0的景點到其余九個景點的最佳路線。</p><p

31、>  進入“選擇出發(fā)點和目的地”,輸入出發(fā)點1和目的點9后輸出的的最佳路線的界面。</p><p>  進入“查看景點信息”,輸入要查看的景點編號,輸出景點信息的界面。</p><p>  輸入要查詢的景點編號錯誤,提示重新輸入。</p><p><b>  退出程序界面。</b></p><p><b>

32、;  心得體會</b></p><p>  做一個系統(tǒng)之前還應該做好全面的安排,對一個系統(tǒng)的整個流程及功能實現(xiàn)有一個很好的統(tǒng)籌,幾個人合作的功能可拆才拆,不可則由一個人主要負責,其它人幫忙思考,出意見,做系統(tǒng)之前幾個人必須先做對系統(tǒng)做一次較詳細的探討研究,然后才開始分工,一個階段后組員應互相交流情況,以達到一致。另在遇到困難時組員不能解決,應查資料或問其它懂的同學,參考一下意見,再結合自己的想法,最后

33、實現(xiàn)自己想實現(xiàn)的功能。</p><p><b>  附錄</b></p><p>  #define INFINITY 10000 /*無窮大*/</p><p>  #define MAX_VERTEX_NUM 40</p><p>  #define MAX 40</p>

34、<p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #include <iostream></p><p>  using namespace std;</p><p>  #include <iomanip>

35、;</p><p>  typedef struct ArCell</p><p><b>  {</b></p><p>  int adj; //路徑長度</p><p>  }ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];</p><p&

36、gt;  typedef struct //圖中頂點表示主要景點,存放景點的編號、名稱、簡介等信息,</p><p><b>  {</b></p><p>  char name[30];</p><p><b>  int num;</b></p><p>  char introducti

37、on[100];//簡介</p><p>  }infotype;</p><p>  typedef struct</p><p><b>  {</b></p><p>  infotype vexs[MAX_VERTEX_NUM];</p><p>  AdjMatrix arcs;<

38、/p><p>  int vexnum,arcnum;</p><p><b>  }</b></p><p><b>  MGraph;</b></p><p><b>  MGraph b;</b></p><p>  MGraph InitGraph(

39、void);</p><p>  void Menu(void);</p><p>  void Browser(MGraph *G);</p><p>  void ShortestPath_DIJ(MGraph * G);</p><p>  void Floyd(MGraph *G);</p><p>  voi

40、d Search(MGraph *G);</p><p>  /***********************主函數(shù)*******************************/</p><p>  void main(void)</p><p><b>  {</b></p><p>  system("c

41、olor 1f");</p><p>  system("mode con: cols=100 lines=40");</p><p><b>  int i;</b></p><p>  b=InitGraph();</p><p><b>  Menu();</b>

42、</p><p><b>  cin>>i;</b></p><p>  while(i!=5)</p><p><b>  {</b></p><p><b>  switch(i)</b></p><p><b>  {<

43、/b></p><p>  case 1:system("cls");Browser(&b);Menu();break;</p><p>  case 2:system("cls");ShortestPath_DIJ(&b);Menu();break;</p><p>  case 3:system(&q

44、uot;cls");Floyd(&b);Menu();break;</p><p>  case 4:system("cls");Search(&b);Menu();break;</p><p>  case 5:exit(1);break;</p><p>  default:break;</p><

45、;p><b>  }</b></p><p><b>  cin>>i;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /***************************

46、**********************************/</p><p>  /*************************定義景點編號,名稱及簡介************/</p><p>  MGraph InitGraph(void)</p><p><b>  {</b></p><p>&l

47、t;b>  MGraph G;</b></p><p><b>  int i,j;</b></p><p>  G.vexnum=10; //十個景點</p><p>  G.arcnum=14; //鄰接矩陣</p><p>  for(i=0;i<G.vexnum;i

48、++)</p><p>  G.vexs[i].num=i;</p><p>  //各景點的代碼,名稱及簡介</p><p>  strcpy(G.vexs[0].name,"前門 ");</p><p>  strcpy(G.vexs[0].introduction,"面南.對面為北京外國專家大廈

49、 ");</p><p>  strcpy(G.vexs[1].name,"圖書館 ");</p><p>  strcpy(G.vexs[1].introduction,"藏書幾十萬冊,設施良好,一二樓均有閱覽室 ");</p><p>

50、  strcpy(G.vexs[2].name,"教二樓 ");</p><p>  strcpy(G.vexs[2].introduction,"學校的主要教學樓,共六層,有多個專業(yè)實驗 ");</p><p>  strcpy(G.vexs[3].name,"實驗樓 ");</p>

51、<p>  strcpy(G.vexs[3].introduction,"緊鄰教二樓,共七層,主要為公共實驗室,六層有通宵自習室 ");</p><p>  strcpy(G.vexs[4].name,"操場 ");</p><p>  strcpy(G.vexs[4].introduction,"全新塑膠跑道,中間為人工草

52、皮足球場,排球場和籃球場 ");</p><p>  strcpy(G.vexs[5].name,"教一樓 ");</p><p>  strcpy(G.vexs[5].introduction,"學校各機關單位辦公樓和雙語教室 ");</p><p>  

53、strcpy(G.vexs[6].name,"食堂 ");</p><p>  strcpy(G.vexs[6].introduction,"標準食堂,兩層,清潔衛(wèi)生 ");</p><p>  strcpy(G.vexs[7].name,"水房 ");<

54、/p><p>  strcpy(G.vexs[7].introduction,"配備自動刷卡系統(tǒng) ");</p><p>  strcpy(G.vexs[8].name,"學一公寓");</p><p>  strcpy(G.vexs[8].introd

55、uction,"光電通信學院男生公寓 ");</p><p>  strcpy(G.vexs[9].name,"學二公寓");</p><p>  strcpy(G.vexs[9].introduction,"女生公寓

56、 ");</p><p>  strcpy(G.vexs[10].name,"學三公寓");</p><p>  strcpy(G.vexs[10].introduction,"計算機學院男生公寓 ");</p>&

57、lt;p>  strcpy(G.vexs[11].name,"學四公寓");</p><p>  strcpy(G.vexs[11].introduction,"大一新生公寓 ");</p><p>  strcpy(G.vexs[12].name,"

58、后門 ");</p><p>  strcpy(G.vexs[12].introduction,"面北,對面有便利的小超市 ");</p><p>  for(i=0;i<G.vexnum;i++)</p><p>  for(j=0;j<G.vexnum;j++)

59、</p><p>  G.arcs[i][j].adj=INFINITY;</p><p>  //各景點之間的距離,沒有的均為無窮大</p><p>  G.arcs[0][1].adj=50;</p><p>  G.arcs[0][2].adj=100;</p><p>  G.arcs[1][5].adj=2

60、0;</p><p>  G.arcs[1][6].adj=75;</p><p>  G.arcs[2][3].adj=10;</p><p>  G.arcs[2][5].adj=60;</p><p>  G.arcs[3][4].adj=20;</p><p>  G.arcs[4][11].adj=30;&l

61、t;/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].adj=20;</p

62、><p>  G.arcs[10][12].adj=120;</p><p>  G.arcs[11][12].adj=150;</p><p>  for(i=0;i<G.vexnum;i++)</p><p>  for(j=0;j<G.vexnum;j++)</p><p>  G.arcs[j][i].

63、adj=G.arcs[i][j].adj;</p><p><b>  return G;</b></p><p><b>  }</b></p><p>  /*********************************************************************************

64、**********/</p><p>  /********************************主菜單(顯示輸入提示)****************************************/</p><p>  void Menu()</p><p><b>  { </b></p><p>  

65、cout<<" 北京信息科技大學大學導游圖 "<<endl;</p><p>  cout<<" ┏━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p

66、>  cout<<" ┃ 1.瀏覽各景點及簡介 ┃"<<endl;</p><p>  cout<<" ┃ 2.查看所有游覽路線 ┃"<<endl

67、;</p><p>  cout<<" ┃ 3.選擇出發(fā)點和目的地 ┃"<<endl;</p><p>  cout<<" ┃ 4.查看景點信息

68、┃"<<endl;</p><p>  cout<<" ┃ 5.退出系統(tǒng) ┃"<<endl;</p><p>  cout<<" ┗━━━━━━━━

69、━━━━━━━━━━━━┛"<<endl;</p><p>  cout<<"Option-:";</p><p><b>  }</b></p><p>  /************************************顯示景點編號、名稱、簡介*****************

70、***********************/</p><p>  void Browser(MGraph *G)</p><p><b>  {</b></p><p><b>  int v;</b></p><p>  cout<<"┏━━┳━━━━━━━━┳━━━━━

71、━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p>  cout<<"┃編號┃景點名稱 ┃ 簡介 ┃ "<<endl;</p><p>  for(v=0;v<

72、;G->vexnum;v++)</p><p>  cout<<"┃"<<G->vexs[v].num<<setw(5)<<"┃"<<G->vexs[v].name<<setw(10)<<"┃"<<G->vexs[v].introduc

73、tion<<setw(3)<<"┃"<<endl;</p><p>  cout<<"┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;</p><p><b>  }</b></p><p>

74、  /********************迪杰斯特拉算法來計算出起點到各個頂點之間的最短路徑,v0為起點***********************/</p><p>  void ShortestPath_DIJ(MGraph * G)</p><p><b>  {</b></p><p>  int v,w,i,min,t=0,x,

75、flag=1,v0;</p><p>  int final[20], D[20], p[20][20];</p><p>  cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p>  cout<<"┃編號┃景點名稱

76、 ┃ 簡介 ┃ "<<endl;</p><p>  for(v=0;v<G->vexnum;v++)</p><p>  cout<<"┃"<<G->vexs[v].num<&

77、lt;setw(5)<<"┃"<<G->vexs[v].name<<setw(10)<<"┃"<<G->vexs[v].introduction<<setw(3)<<"┃"<<endl;</p><p>  cout<<"┗━

78、━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;</p><p>  while(flag)</p><p><b>  {</b></p><p>  cout<<"請輸入一個起始景點編號:";</p><p>&l

79、t;b>  cin>>v0;</b></p><p>  if(v0<0||v0>G->vexnum)</p><p><b>  {</b></p><p>  cout<<"景點編號不存在!請重新輸入景點編號:";</p><p><

80、;b>  cin>>v0;</b></p><p><b>  }</b></p><p>  if(v0>=0&&v0<G->vexnum)</p><p><b>  flag=0;</b></p><p><b>  }

81、</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>  for(w=0

82、;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><b>  }&

83、lt;/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>  min=IN

84、FINITY;</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(w=0;w<G

85、->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>  for(x

86、=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(v=0;v<

87、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>  {</b>

88、;</p><p>  if(p[v][w]&&w!=v0) cout<<"-->"<<G->vexs[w].name;</p><p><b>  t++;</b></p><p><b>  }</b></p><p>  

89、if(t>G->vexnum-1&&v0!=v) cout<<" 總路線長"<<D[v]<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  /***********

90、**********************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][10],D[10

91、][10];</p><p>  cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p>  cout<<"┃編號┃景點名稱 ┃ 簡介

92、┃ "<<endl;</p><p>  for(v=0;v<G->vexnum;v++)</p><p>  cout<<"┃"<<G->vexs[v].num<<setw(5)<<"┃"<<G->vexs[v].name&l

93、t;<setw(10)<<"┃"<<G->vexs[v].introduction<<setw(3)<<"┃"<<endl;</p><p>  cout<<"┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl

94、;</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><p&

95、gt;  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;</p>

96、<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=0;w<G-&

97、gt;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++)</p>

98、<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<<"請輸入出發(fā)點和目的地的編

99、號(用空格隔開):";</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<<&q

100、uot;景點編號不存在!請重新輸入出發(fā)點和目的地的編號:";</p><p>  cin>>k>>j;</p><p><b>  }</b></p><p>  if(k>=0&&k<G->vexnum&&j>=0&&j<G->

101、;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++)</p>&

102、lt;p>  if(p[k][j][u]&&k!=u&&j!=u)</p><p>  cout<<"-->"<<G->vexs[u].name;</p><p>  cout<<"-->"<<G->vexs[j].name;</p&g

103、t;<p>  cout<<" 總路線長"<<D[k][j]<<endl;</p><p>  }//Floyd end</p><p>  /************************************查找景點*************************************************

104、******/</p><p>  void Search(MGraph *G)</p><p><b>  {</b></p><p>  int k,v,flag=1;</p><p>  cout<<"┏━━┳━━━━━━━━┓"<<endl;</p>&l

105、t;p>  cout<<"┃編號┃景點名稱 ┃"<<endl;</p><p>  for(v=0;v<G->vexnum;v++)</p><p>  cout<<"┃"<<G->vexs[v].num<<setw(5)<<"┃&q

106、uot;<<G->vexs[v].name<<setw(10)<<"┃"<<endl;</p><p>  cout<<"┗━━┻━━━━━━━━┛"<<endl;</p><p>  while(flag)</p><p><b>  {

107、</b></p><p>  cout<<"請輸入要查詢的景點編號:";</p><p><b>  cin>>k;</b></p><p>  if(k<0||k>G->vexnum)</p><p><b>  {</b>

108、</p><p>  cout<<"景點編號不存在!請重新輸入景點編號:";</p><p><b>  cin>>k;</b></p><p><b>  }</b></p><p>  if(k>=0&&k<G->ve

109、xnum)</p><p><b>  flag=0;</b></p><p><b>  }</b></p><p>  cout<<"┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"<<endl;</p><p>

110、;  cout<<"┃編號┃景點名稱 ┃簡介 ┃"<<endl;</p><p>  cout<<"┃"<<G->vexs[k].num<<setw(5)<<"┃"

111、;<<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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論