2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課 程 設(shè) 計(jì)</b></p><p><b>  二○一五年六月一日</b></p><p><b>  目錄</b></p><p><b>  1 引 言4</b></p><p>  1.1 問題的提出4<

2、/p><p>  1.2國(guó)內(nèi)外研究的現(xiàn)狀5</p><p>  1.3任務(wù)與分析5</p><p>  2 程序的主要功能5</p><p>  3 程序運(yùn)行平臺(tái)5</p><p><b>  4 總體設(shè)計(jì)5</b></p><p>  4.1數(shù)據(jù)結(jié)構(gòu)類型定義5&l

3、t;/p><p><b>  4.2函數(shù)聲明5</b></p><p>  4.3創(chuàng)建導(dǎo)航圖,即無向圖5</p><p>  4.4最短路徑導(dǎo)航函數(shù)5</p><p>  5 程序方法的說明5</p><p><b>  5.1主菜單6</b></p>&

4、lt;p><b>  5.2主函數(shù)6</b></p><p>  5.3迪杰斯特拉算法實(shí)現(xiàn)9</p><p><b>  6 模塊分析10</b></p><p><b>  7 系統(tǒng)測(cè)試10</b></p><p>  7.1系統(tǒng)登錄界面10</p>

5、;<p>  7.2功能一:學(xué)校簡(jiǎn)介10</p><p>  7.3功能二:兩點(diǎn)最短距離導(dǎo)航10</p><p>  7.4功能三:某點(diǎn)到其他所有點(diǎn)的最短距離11</p><p>  7.5功能四:顯示全校地圖11</p><p>  7.5退出導(dǎo)航系統(tǒng)12</p><p><b> 

6、 8 結(jié)論12</b></p><p><b>  附錄:13</b></p><p>  蚌埠學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系本科課程設(shè)計(jì)成績(jī)?cè)u(píng)定表</p><p>  附件4 分工協(xié)作說明(以列表形式具體說明每個(gè)人所做的工作);</p><p><b>  1 引 言</b></p

7、><p>  1.1 問題的提出 </p><p>  設(shè)計(jì)一個(gè)校園導(dǎo)航系統(tǒng),為來訪的客人提供各種信息查詢服務(wù)。</p><p>  1.2國(guó)內(nèi)外研究的現(xiàn)狀</p><p>  這個(gè)問題一直是國(guó)內(nèi)外研究的熱門話題。</p><p><b>  1.3任務(wù)與分析</b></p><p

8、>  設(shè)計(jì)你的學(xué)校的平面圖,至少包括8個(gè)以上的場(chǎng)所,每?jī)蓚€(gè)場(chǎng)所間可以有不同的路,且路長(zhǎng)也可能不同,找出從任意場(chǎng)所到達(dá)另一場(chǎng)所的最佳路徑(最短路徑)</p><p>  2 程序的主要功能 </p><p>  (1)設(shè)計(jì)校園平面圖,在校園景點(diǎn)選8個(gè)左右景點(diǎn)。以圖中頂點(diǎn)表示校園內(nèi)各景點(diǎn),存放景點(diǎn)名稱、代號(hào)、簡(jiǎn)介等信息;以邊表示路徑,存放路徑長(zhǎng)度等有關(guān)信息。</p><

9、;p> ?。?)為來訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。</p><p>  (3)為來訪客人提供任意景點(diǎn)的問路查詢,即查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的一條最短路徑。</p><p><b>  3 程序運(yùn)行平臺(tái)</b></p><p>  計(jì)算機(jī) windows7 Virtual c++ 6.0</p><

10、p><b>  4 總體設(shè)計(jì)</b></p><p>  4.1數(shù)據(jù)結(jié)構(gòu)類型定義</p><p>  #include<stdio.h></p><p>  #include <stdlib.h> </p><p>  #include <string.h> </p>

11、;<p>  #define MAX_V 30 //最大頂點(diǎn)個(gè)數(shù) </p><p>  #define INFINITY 32767 //最大值 </p><p>  typedef struct </p><p><b>  { </b></p><p>  char* vexs[MA

12、X_V]; //頂點(diǎn)向量 </p><p>  int arcs[MAX_V][MAX_V];//鄰接矩陣 </p><p>  int vexnum,arcnum;//圖的當(dāng)前頂點(diǎn)數(shù)和弧數(shù) </p><p><b>  }MGraph;</b></p><p><b>  4.2函數(shù)聲明</

13、b></p><p>  int CreateUDN(MGraph &G); //創(chuàng)建導(dǎo)航圖函數(shù)聲明 </p><p>  extern have[30];</p><p>  void ShortPath(MGraph &G,int v0,int p[MAX_V][MAX_V],int d[]);//最短路徑導(dǎo)航函數(shù)聲明</p>

14、<p>  int have[30]; </p><p>  void menu(); //導(dǎo)航菜單函數(shù)聲明</p><p>  void show1(); //顯示全校面貌</p><p>  int jianjie();//讀取文件</p><p>  4.3創(chuàng)建導(dǎo)航圖,即無向圖</p><p> 

15、 int CreateUDN(MGraph &G) </p><p>  函數(shù)描述:主要將每個(gè)節(jié)點(diǎn)進(jìn)行命名,每個(gè)定點(diǎn)到其他所有定點(diǎn)的路徑值用鄰接矩陣進(jìn)行存儲(chǔ)。</p><p><b>  例如:</b></p><p>  G.vexs[0] = "小池塘"; </p><p>  G.v

16、exs[1] = "東門"; </p><p>  作用:使0號(hào)定點(diǎn)命名為“小池塘”,1號(hào)節(jié)點(diǎn)命名為“東門”。</p><p>  G.arcs[1][4] = G.arcs[4][1] =260 ;</p><p>  作用:使1號(hào)定點(diǎn)到4號(hào)定點(diǎn)的路徑賦值為260,同時(shí)4號(hào)定點(diǎn)到1號(hào)定點(diǎn)的路徑長(zhǎng)度也為260.</p><

17、p>  4.4最短路徑導(dǎo)航函數(shù)</p><p>  void ShortPath(MGraph &G,int v0,int p[MAX_V][MAX_V],int d[])</p><p>  函數(shù)描述:用迪杰斯特拉算法求最短路徑。</p><p><b>  5 程序方法的說明</b></p><p>&

18、lt;b>  5.1主菜單</b></p><p>  void menu() </p><p><b>  { </b></p><p>  printf("\t\t\t\t☆ ☆ ☆ ☆ 學(xué)院各區(qū)名稱 ☆ ☆ ☆ ☆ \n"); </p><p>  printf("

19、;\t\t\t\t☆ (1) 小池塘 (2) 東門 (3) 西門 ☆ \n"); </p><p>  printf("\t\t\t\t☆ (4) 北門 (5) 東區(qū)宿舍樓 (6) 西南宿舍樓☆ \n"); </p><p>  printf

20、("\t\t\t\t☆ (7) 北區(qū)田徑場(chǎng) (8) 南區(qū)田徑場(chǎng) (9) 一號(hào)食堂 ☆ \n"); </p><p>  printf("\t\t\t\t☆ (10) 二號(hào)食堂 (11) A B C教學(xué)樓 (12) 重行樓 ☆ \n"); </p><p>  prin

21、tf("\t\t\t\t☆ (13) 行政樓 (14) 藝術(shù)樓 (15) 圖書館 ☆ \n"); </p><p>  printf("\t\t\t\t☆ (16) 超市 (17) 醫(yī)務(wù)室 (18) 沒有了 ☆ \n"); </p><p&

22、gt;  printf("\t\t\t\t\t\t\t請(qǐng)選擇導(dǎo)航功能:\n"); </p><p>  printf("\t\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n"); </p><p>  printf("\t\t\t\t\t≈ (1) 學(xué)校簡(jiǎn)介 ≈\n");&

23、lt;/p><p>  printf("\t\t\t\t\t≈ (2) 兩點(diǎn)最短距離導(dǎo)航 ≈\n"); </p><p>  printf("\t\t\t\t\t≈ (3) 某點(diǎn)到其他所有點(diǎn)的最短距離 ≈\n"); </p><p>  printf("\t\t\t\t\t≈ (4

24、) 顯示全校地圖 ≈\n"); </p><p>  printf("\t\t\t\t\t≈ (5) 退出導(dǎo)航系統(tǒng) ≈\n");</p><p>  printf("\t\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n");</p><p&g

25、t;<b>  } </b></p><p>  描述:程序主菜單顯示。</p><p><b>  5.2主函數(shù)</b></p><p>  void main() </p><p><b>  { </b></p><p>  //system(&

26、quot;color 09"); /*修改控制臺(tái)的顏色信息,改為白字藍(lán)底的模式*/ </p><p>  system("mode con: cols=140 lines=130"); /*設(shè)置運(yùn)行時(shí)窗口大小*/ </p><p><b>  MGraph G;</b></p><p>  int v0,i,end

27、,j; </p><p>  int P[MAX_V][MAX_V]; </p><p>  int D[MAX_V];</p><p>  int choice,choice1; </p><p>  printf("\t\t\t\t ≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n"); </p><

28、;p>  printf("\n\t\t\t\t≈≈歡迎光臨蚌埠學(xué)院,祝您旅程愉快!≈≈\n"); </p><p>  printf("\n\t\t\t\t≈≈蚌埠學(xué)院校園導(dǎo)游系統(tǒng)為你服務(wù) ≈≈\n"); </p><p>  printf("\n\t\t\t\t≈≈≈≈≈≈

29、≈≈≈≈≈≈≈≈≈≈≈≈\n\n");</p><p>  CreateUDN(G); </p><p><b>  while(1){</b></p><p><b>  menu();</b></p><p>  scanf("%d",&choice);&l

30、t;/p><p>  switch(choice){</p><p>  case 1: jianjie();</p><p><b>  break;</b></p><p>  case 2: { </p><p><b>  while(1)</b></p>

31、<p><b>  { </b></p><p>  printf("分別輸入起點(diǎn)和終點(diǎn)代號(hào)以空格分開\n"); </p><p>  scanf("%d%d",&v0,&end); </p><p>  ShortPath(G,v0,P,D); </p>

32、<p>  printf("最短路徑:\n "); </p><p>  for(i=0;i<G.vexnum;i++) </p><p><b>  { </b></p><p>  if(P[end-1][have[i]]==1) </p><p>  prin

33、tf("-->%s",G.vexs[have[i]]); </p><p><b>  } </b></p><p>  printf("\n路徑長(zhǎng)度:%d\n",D[end-1]); </p><p>  printf("^_^ 本次導(dǎo)航結(jié)束:\n1.繼續(xù)導(dǎo)航 2.返回

34、主菜單\n"); </p><p>  scanf("%d",&choice1); </p><p>  if(choice1==2) </p><p><b>  break; </b></p><p><b>  } </b>

35、</p><p>  else if(choice1<1||choice1>2){</p><p>  printf("你輸入選項(xiàng)有誤,請(qǐng)繼續(xù)導(dǎo)航?。?!\n");</p><p><b>  }</b></p><p><b>  } </b></p&g

36、t;<p><b>  break; </b></p><p>  case 3: { </p><p>  printf("請(qǐng)輸入出發(fā)點(diǎn):"); </p><p>  scanf("%d",&v0); </p><p>  ShortPath (G,

37、v0,P,D); </p><p>  printf("v0到其他所有點(diǎn)的最短路徑為:\n"); </p><p>  for(i=0;i<G.vexnum;i++) </p><p><b>  { </b></p><p>  for(j=0;j<G.vexnum;j++)

38、 </p><p>  if(P[i][have[j]]==1) </p><p>  printf("-->%s",G.vexs[have[j]]); </p><p>  printf("\n路徑長(zhǎng)度:%d\n",D[i]); </p><p><b>  }

39、</b></p><p><b>  } </b></p><p><b>  break;</b></p><p><b>  case 4: </b></p><p><b>  show1();</b></p><

40、;p><b>  break;</b></p><p><b>  case 5:</b></p><p><b>  break;</b></p><p>  default: </p><p>  printf("選擇錯(cuò)誤,請(qǐng)重新輸入!\n"

41、); </p><p><b>  } </b></p><p>  if(choice==5) </p><p><b>  { </b></p><p>  system("cls");</p><p>  printf("

42、\n\n\n\n\n\n");</p><p>  printf(" \t\t\t ┏━━━━━━━━━━━━━━━━━━━━┓\n"); </p><p>  printf(" \t\t\t ┃ 感謝使用 ┃\n"); </p><p>  pr

43、intf(" \t\t\t ┃ 蚌埠學(xué)院 ┃\n"); </p><p>  printf(" \t\t\t ┃ 智能導(dǎo)航系統(tǒng) ┃\n"); </p><p>  printf(" \t\t\t ┗━━━━━━━━━━━

44、━━━━━━━━━┛\n");</p><p>  printf("\n\n");</p><p>  printf(" \t\t\twelcom to bengbu college,Good Bay!!!回車鍵退出。^_^\n"); </p><p><b>  break; </b><

45、;/p><p><b>  } </b></p><p><b>  } </b></p><p>  printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");</p><p><b>  }</b></p>

46、<p>  5.3迪杰斯特拉算法實(shí)現(xiàn)</p><p>  void ShortPath(MGraph &G,int v0,int p[MAX_V][MAX_V],int d[]) { </p><p>  //迪杰斯特拉發(fā)求最短路徑 </p><p>  int v,w,i,j,min;</p><p>  int

47、final[MAX_V];</p><p><b>  int k=1; </b></p><p>  for(v=0;v<G.vexnum;++v)</p><p><b>  {//初始化 </b></p><p>  final[v]=0;</p><p>  d

48、[v]=G.arcs[v0-1][v]; </p><p>  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[

49、v][v0-1]=1; </p><p>  p[v][v]=1; </p><p><b>  } </b></p><p><b>  }</b></p><p>  d[v0-1]=0;</p><p>  final[v0-1]=1; </p>&l

50、t;p>  have[0]=v0-1; </p><p>  for(i=1;i<G.vexnum;++i) </p><p><b>  {</b></p><p>  //其余的vexnum-1個(gè)頂點(diǎn) </p><p>  min=INFINITY;</p><p>  for

51、(w=0;w<G.vexnum;++w) </p><p>  if(!final[w]) </p><p>  if(d[w]<min) //如有W點(diǎn)離更近 </p><p><b>  { </b></p><p><b>  v=w; </b></p>

52、;<p>  min=d[w]; </p><p><b>  } </b></p><p>  final[v]=1;</p><p>  have[k]=v;</p><p><b>  k++;</b></p><p>  for(w=0;w<G

53、.vexnum;++w)//更新當(dāng)前最短路徑及距離 </p><p>  if(!final[w]&&(min+G.arcs[v][w]<d[w])) </p><p><b>  { </b></p><p>  d[w]=min+G.arcs[v][w]; </p><p>  for

54、(j=0;j<G.vexnum;j++) </p><p>  p[w][j]=p[v][j]; </p><p>  p[w][w]=1; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  

55、} </b></p><p>  描述:迪杰斯特拉算法求最短路徑。</p><p><b>  6 模塊分析。</b></p><p><b>  7 系統(tǒng)測(cè)試</b></p><p><b>  7.1系統(tǒng)登錄界面</b></p><p>

56、  7.2功能一:學(xué)校簡(jiǎn)介</p><p>  7.3功能二:兩點(diǎn)最短距離導(dǎo)航</p><p>  7.4功能三:某點(diǎn)到其他所有點(diǎn)的最短距離</p><p>  7.5功能四:顯示全校地圖</p><p><b>  7.5退出導(dǎo)航系統(tǒng)</b></p><p><b>  8 結(jié)論<

57、;/b></p><p>  在本次課程設(shè)計(jì)所做的校園導(dǎo)航系統(tǒng)中,最關(guān)鍵的問題是最短路徑問題,在教材中有具體的算法——迪杰斯特拉算法求最短路徑問題。但是想一次性就把程序調(diào)試出來是不可能的,我們組也是經(jīng)過多次討論才把程序完整的調(diào)試出來。通過這次的課程設(shè)計(jì),我們學(xué)到了很多知識(shí),也認(rèn)識(shí)到很多不足,那就是知識(shí)的不足和經(jīng)驗(yàn)的缺乏。但是我們相信自己可以在以后的學(xué)習(xí)中不斷進(jìn)步。</p><p>&

58、lt;b>  附錄:</b></p><p>  源代碼:#include<stdio.h></p><p>  #include <stdlib.h> </p><p>  #include <string.h> </p><p>  #define MAX_V 30

59、//最大頂點(diǎn)個(gè)數(shù) </p><p>  #define INFINITY 32767 //最大值 </p><p>  typedef struct </p><p><b>  { </b></p><p>  char* vexs[MAX_V]; //頂點(diǎn)向量 </p><p>

60、;  int arcs[MAX_V][MAX_V];//鄰接矩陣 </p><p>  int vexnum,arcnum;//圖的當(dāng)前頂點(diǎn)數(shù)和弧數(shù) </p><p><b>  }MGraph;</b></p><p>  int CreateUDN(MGraph &G); //創(chuàng)建導(dǎo)航圖函數(shù)聲明 </p><p

61、>  extern have[30];</p><p>  void ShortPath(MGraph &G,int v0,int p[MAX_V][MAX_V],int d[]);//最短路徑導(dǎo)航函數(shù)聲明</p><p>  int have[30]; </p><p>  void menu(); //導(dǎo)航菜單函數(shù)聲明</p>&l

62、t;p>  void show1(); //顯示全校面貌</p><p>  int jianjie();//讀取文件</p><p>  void main() </p><p><b>  { </b></p><p>  //system("color F2"); /*修改控制臺(tái)的顏色

63、信息,改為白字藍(lán)底的模式*/ </p><p>  system("mode con: cols=140 lines=130"); /*設(shè)置批處理運(yùn)行時(shí)窗口大小的*/ </p><p><b>  MGraph G;</b></p><p>  int v0,i,end,j; </p><p>  i

64、nt P[MAX_V][MAX_V]; </p><p>  int D[MAX_V];</p><p>  int choice,choice1; </p><p>  printf("\t\t\t\t ≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n"); </p><p>  print

65、f("\n\t\t\t\t≈≈ 歡迎光臨蚌埠學(xué)院,祝您旅程愉快! ≈≈\n"); </p><p>  printf("\n\t\t\t\t≈≈ 蚌埠學(xué)院校園導(dǎo)游系統(tǒng)為你服務(wù)! ≈≈\n"); </p><p>  printf("\

66、n\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n\n");</p><p>  CreateUDN(G); </p><p><b>  while(1){</b></p><p><b>  menu();</b></p><p>  scanf

67、("%d",&choice);</p><p>  switch(choice){</p><p>  case 1: jianjie();</p><p>  system("cls");</p><p><b>  break;</b></p><p

68、>  case 2: { </p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  printf("分別輸入起點(diǎn)和終點(diǎn)代號(hào)以空格分開\n"); </p><p>  scanf("%d%d",

69、&v0,&end); </p><p>  ShortPath(G,v0,P,D); </p><p>  printf("最短路徑:\n "); </p><p>  for(i=0;i<G.vexnum;i++) </p><p><b>  { </b&g

70、t;</p><p>  if(P[end-1][have[i]]==1) </p><p>  printf("-->%s",G.vexs[have[i]]); </p><p><b>  } </b></p><p>  printf("\n路徑長(zhǎng)度:%d\n&q

71、uot;,D[end-1]); </p><p>  printf("^_^ 本次導(dǎo)航結(jié)束:\n1.繼續(xù)導(dǎo)航 2.返回主菜單\n"); </p><p>  scanf("%d",&choice1); </p><p>  if(choice1==2){</p><p>  sy

72、stem("cls");</p><p><b>  break; </b></p><p><b>  }</b></p><p>  else if(choice1<1||choice1>2){</p><p>  printf("你輸入選項(xiàng)有誤,請(qǐng)

73、繼續(xù)導(dǎo)航?。?!\n");</p><p><b>  }</b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  break; </b></p><

74、p>  case 3: { </p><p>  printf("請(qǐng)輸入出發(fā)點(diǎn):"); </p><p>  scanf("%d",&v0); </p><p>  ShortPath (G,v0,P,D); </p><p>  printf("v0到其他所有點(diǎn)的最短路

75、徑為:\n"); </p><p>  for(i=0;i<G.vexnum;i++) </p><p><b>  { </b></p><p>  for(j=0;j<G.vexnum;j++) </p><p>  if(P[i][have[j]]==1) </p>&l

76、t;p>  printf("-->%s",G.vexs[have[j]]); </p><p>  printf("\n路徑長(zhǎng)度:%d\n",D[i]); </p><p><b>  } </b></p><p>  system("pause");

77、</p><p><b>  } </b></p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  system(

78、"cls");</p><p>  printf("\n\n\n\n");</p><p><b>  show1();</b></p><p>  system("cls");</p><p><b>  break;</b></p

79、><p><b>  case 5:</b></p><p><b>  break;</b></p><p>  default: </p><p>  printf("選擇錯(cuò)誤,請(qǐng)重新輸入!\n"); </p><p><b>  }

80、 </b></p><p>  if(choice==5) </p><p><b>  { </b></p><p>  system("cls");</p><p>  printf("\n\n\n\n\n\n");</p><p&g

81、t;  printf(" \t\t\t ┏━━━━━━━━━━━━━━━━━━━━┓\n"); </p><p>  printf(" \t\t\t ┃ 感謝使用 ┃\n"); </p><p>  printf(" \t\

82、t\t ┃ 蚌埠學(xué)院 ┃\n"); </p><p>  printf(" \t\t\t ┃ 智能導(dǎo)航系統(tǒng) ┃\n"); </p><p>  printf(" \t\t\t

83、 ┗━━━━━━━━━━━━━━━━━━━━┛\n");</p><p>  printf("\n\n");</p><p>  printf(" \t\t\t welcom to BengBu college,Good Bay!!!回車鍵退出。^_^\n"); </p><p&g

84、t;<b>  break; </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");</p><p>

85、<b>  }</b></p><p><b>  //創(chuàng)建無向圖</b></p><p>  int CreateUDN(MGraph &G) </p><p>  {//采用數(shù)組(鄰接矩陣)表示法,構(gòu)造無向網(wǎng)G. </p><p>  int i = 0,j=0; </p>

86、<p>  G.vexnum = 17; //圖的定點(diǎn)數(shù)</p><p>  G.arcnum = 51; //圖的弧數(shù)</p><p>  G.vexs[0] = "小池塘"; </p><p>  G.vexs[1] = "東門"; </p><p>  G.vexs[

87、2] = "西門"; </p><p>  G.vexs[3] = "北門";</p><p>  G.vexs[4] = "東區(qū)宿舍樓"; </p><p>  G.vexs[5] = "西南宿舍樓"; </p><p>  G.vexs[6] = "

88、北區(qū)田徑場(chǎng)"; </p><p>  G.vexs[7] = "南區(qū)田徑場(chǎng)"; </p><p>  G.vexs[8] = "一號(hào)食堂"; </p><p>  G.vexs[9] = "二號(hào)食堂";</p><p>  G.vexs[10] = "A B

89、 C教學(xué)樓"; </p><p>  G.vexs[11] ="重行樓"; </p><p>  G.vexs[12] = "行政樓";</p><p>  G.vexs[13] = "藝術(shù)樓"; </p><p>  G.vexs[14] = "圖書館&

90、quot;;</p><p>  G.vexs[15] = "超市";</p><p>  G.vexs[16] = "醫(yī)務(wù)室";</p><p>  for(i=0;i<G.vexnum;i++) //初始化路徑長(zhǎng)度 </p><p>  for(j=0;j<G.vexnum;j++)

91、 </p><p><b>  { </b></p><p><b>  if(i==j) </b></p><p>  G.arcs[i][j]=0; </p><p><b>  else </b></p><p>  G.arcs[i][j]=I

92、NFINITY; //初始化最大值 默認(rèn)不鄰接</p><p><b>  } </b></p><p>  //為每一條邊賦權(quán) 即路徑長(zhǎng)度 因?yàn)檫吺菍?duì)稱的</p><p>  G.arcs[0][13] = G.arcs[13][0] = 50;</p><p>  G.arcs[0][7] =G.arcs[7][

93、0]= 90;</p><p>  G.arcs[1][4] = G.arcs[4][1] =260 ; </p><p>  G.arcs[4][7] = G.arcs[7][4] =100; </p><p>  G.arcs[5][7] = G.arcs[7][5] =200; </p><p>  G.arcs[4][14]

94、= G.arcs[14][4] =50;</p><p>  G.arcs[6][14] = G.arcs[14][6] =100;</p><p>  G.arcs[7][14] = G.arcs[14][7] =70;</p><p>  G.arcs[7][14] =G.arcs[14][7] =70;</p><p>  G.arcs

95、[4][10] = G.arcs[10][4]=100; </p><p>  G.arcs[3][4] = G.arcs[4][3] =200; </p><p>  G.arcs[3][10] = G.arcs[10][3] =100 ; </p><p>  G.arcs[4][8] = G.arcs[8][4] =60; </p><

96、p>  G.arcs[4][9] = G.arcs[9][4] =50; </p><p>  G.arcs[8][9] = G.arcs[9][8] =150; </p><p>  G.arcs[10][14] = G.arcs[14][10] =100; </p><p>  G.arcs[8][15] = G.arcs[15][8] =70

97、 ; </p><p>  G.arcs[9][15] = G.arcs[15][9] =70; </p><p>  G.arcs[4][16] = G.arcs[16][4]=150; </p><p>  G.arcs[9][16] = G.arcs[16][9] =50; </p><p>  G.arcs[11][12] =

98、 G.arcs[12][11] =200; </p><p>  G.arcs[11][14] = G.arcs[14][11] =220; </p><p>  G.arcs[12][13] = G.arcs[13][12] =50; </p><p>  G.arcs[12][14] = G.arcs[14][12] =70; </p>

99、<p>  G.arcs[13][16] = G.arcs[16][13] =120; </p><p>  G.arcs[2][14] = G.arcs[14][2] =100; </p><p>  return 1; </p><p><b>  } </b></p><p>  void menu(

100、) </p><p><b>  { </b></p><p>  printf("\n\n\n\n");</p><p>  printf("\t\t\t\t☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ 學(xué)院各區(qū)名稱 ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ \n"); </p><p>

101、;  printf("\t\t\t\t☆ (1) 小池塘 (2) 東門 (3) 西門 ☆ \n"); </p><p>  printf("\t\t\t\t☆ (4) 北門 (5) 東區(qū)宿舍樓 (6) 西南宿舍樓☆ \n"); </p>

102、<p>  printf("\t\t\t\t☆ (7) 北區(qū)田徑場(chǎng) (8) 南區(qū)田徑場(chǎng) (9) 一號(hào)食堂 ☆ \n"); </p><p>  printf("\t\t\t\t☆ (10) 二號(hào)食堂 (11) A B C教學(xué)樓 (12) 重行樓 ☆ \n"); </p>

103、<p>  printf("\t\t\t\t☆ (13) 行政樓 (14) 藝術(shù)樓 (15) 圖書館 ☆ \n"); </p><p>  printf("\t\t\t\t☆ (16) 超市 (17) 醫(yī)務(wù)室 (18) 沒有了 ☆ \n"); &

104、lt;/p><p>  printf("\t\t\t\t☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ \n\n"); </p><p>  printf("\n\n");</p><p>  printf("\t\t\t\t\t\t\t請(qǐng)選擇導(dǎo)航功能:\n");

105、 </p><p>  printf("\t\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n"); </p><p>  printf("\t\t\t\t\t≈ (1) 學(xué)校簡(jiǎn)介 ≈\n");</p><p>  printf("\t\t\t\t\t≈ (2

106、) 兩點(diǎn)最短距離導(dǎo)航 ≈\n"); </p><p>  printf("\t\t\t\t\t≈ (3) 某點(diǎn)到其他所有點(diǎn)的最短距離 ≈\n"); </p><p>  printf("\t\t\t\t\t≈ (4) 顯示全校地圖 ≈\n"); </p>&l

107、t;p>  printf("\t\t\t\t\t≈ (5) 退出導(dǎo)航系統(tǒng) ≈\n");</p><p>  printf("\t\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n");</p><p>  printf("\n\n\n\n");</p><p&

108、gt;<b>  } </b></p><p>  //采用迪杰斯特拉算法,求最短路徑</p><p>  void ShortPath(MGraph &G,int v0,int p[MAX_V][MAX_V],int d[]) { </p><p>  //迪杰斯特拉發(fā)求最短路徑 </p><p>  i

109、nt v,w,i,j,min;</p><p>  int final[MAX_V];</p><p><b>  int k=1; </b></p><p>  for(v=0;v<G.vexnum;++v)</p><p><b>  {//初始化 </b></p><

110、p>  final[v]=0;</p><p>  d[v]=G.arcs[v0-1][v]; </p><p>  for(w=0;w<G.vexnum;++w)</p><p>  p[v][w]=0; </p><p>  if(d[v]<INFINITY) </p><p><b>

111、  { </b></p><p>  p[v][v0-1]=1; </p><p>  p[v][v]=1; </p><p><b>  } </b></p><p><b>  }</b></p><p>  d[v0-1]=0;</p>

112、<p>  final[v0-1]=1; </p><p>  have[0]=v0-1; </p><p>  for(i=1;i<G.vexnum;++i) </p><p><b>  {</b></p><p>  //其余的vexnum-1個(gè)頂點(diǎn) </p><p>

113、;  min=INFINITY;</p><p>  for(w=0;w<G.vexnum;++w) </p><p>  if(!final[w]) </p><p>  if(d[w]<min) //如有W點(diǎn)離更近 </p><p><b>  { </b></p>&l

114、t;p><b>  v=w; </b></p><p>  min=d[w]; </p><p><b>  } </b></p><p>  final[v]=1;</p><p>  have[k]=v;</p><p><b>  k++;</

115、b></p><p>  for(w=0;w<G.vexnum;++w)//更新當(dāng)前最短路徑及距離 </p><p>  if(!final[w]&&(min+G.arcs[v][w]<d[w])) </p><p><b>  { </b></p><p>  d[w]=min

116、+G.arcs[v][w]; </p><p>  for(j=0;j<G.vexnum;j++) </p><p>  p[w][j]=p[v][j]; //凡是到v經(jīng)過的頂點(diǎn),到w也要經(jīng)過</p><p>  p[w][w]=1; </p><p><b>  } </b></p>&l

117、t;p><b>  } </b></p><p><b>  } </b></p><p>  void show1(){</p><p>  printf("\t\t\t\t\t\t ★★ 歡迎使用蚌埠學(xué)院智能導(dǎo)航系統(tǒng) ★★\n"); </p><p>  pr

118、intf("\t\t\t\t\t\t\t蚌埠學(xué)院校區(qū)平面圖\n\n"); </p><p>  printf("\t\t\t\t 學(xué)校北門\n"); </p><p>  printf("\t\t\t\t ┃

119、\n"); </p><p>  printf("\t\t\t\t ┏━━━━━━━━━━━━━北門━━━━━北操場(chǎng)\n"); </p><p>  printf("\t\t\t\t ┃ 重行樓 ┃ ┃\n"); </p>

120、;<p>  printf("\t\t\t\t ┃ ┃ ┃\n"); </p><p>  printf("\t\t\t\t ┃ A B C教學(xué)樓 ┃ ┃\n"); </p>

121、<p>  printf("\t\t\t\t ┃━━━━━━━━━━━━━━━━━━━━━┃\n"); </p><p>  printf("\t\t\t\t ┃ ┃ 宿舍樓1 ┃ \n"); </p><p>  printf(

122、"\t\t\t\t ┃ 圖書館━ ┃ . ┃ \n"); </p><p>  printf("\t\t\t\t ┃ ┃ . ┃\n"); </p><p>  printf(&

123、quot;\t\t\t\t ┃ 行政樓 ┃ . ┃\n"); </p><p>  printf("\t\t\t\t 西門 小池塘 ┃ . ┃\n"); </p><p>  printf("

124、\t\t\t\t ┃━┃ 藝術(shù)樓 ┃ . ┃\n"); </p><p>  printf("\t\t\t\t ┃ ┃ . ┃\n"); </p><p>  printf("\t\t\t\t

125、 ┃ ┃ 8 ┃\n"); </p><p>  printf("\t\t\t\t ┃━━━━━━━━━━━━━━━━━━━━━東門\n"); </p><p>  printf("\t\t\t\t ┃9 ┃

126、 ┃\n"); </p><p>  printf("\t\t\t\t ┃. 體育館 ┃ 教職工寓 ┃\n"); </p><p>  printf("\t\t\t\t ┃12 ┃ ┃\n");</p>

127、<p>  printf("\t\t\t\t ┃━━━━━━━━━━━━━━━━━━━━━┃\n"); </p><p>  system("pause");</p><p><b>  }</b></p><p>  int jianjie(void){</p&

128、gt;<p>  system("cls");</p><p><b>  FILE *fp;</b></p><p>  fp = fopen("E:\\in.txt" , "r");</p><p>  fseek( fp , 0 , SEEK_END );</

129、p><p>  int file_size;</p><p>  file_size = ftell( fp );</p><p>  //printf( "%d" , file_size );</p><p>  char *tmp;</p><p>  fseek( fp , 0 , SEEK_SE

130、T);</p><p>  //tmp = (char *)calloc( file_size,sizeof( char ) );</p><p>  tmp = (char *)malloc( file_size * sizeof( char ) );</p><p>  memset(tmp, 0, file_size);</p><p&

131、gt;  fread(tmp,file_size,sizeof(char),fp);</p><p>  printf("%s" ,tmp);</p><p>  system("pause");</p><p>  printf("\n\n\n\n\n\n\n\n\n\n\n\n\n");</p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論