版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計</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國內(nèi)外研究的現(xiàn)狀5</p><p> 1.3任務(wù)與分析5</p><p> 2 程序的主要功能5</p><p> 3 程序運行平臺5</p><p><b> 4 總體設(shè)計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迪杰斯特拉算法實現(xiàn)9</p><p><b> 6 模塊分析10</b></p><p><b> 7 系統(tǒng)測試10</b></p><p> 7.1系統(tǒng)登錄界面10</p>
5、;<p> 7.2功能一:學(xué)校簡介10</p><p> 7.3功能二:兩點最短距離導(dǎo)航10</p><p> 7.4功能三:某點到其他所有點的最短距離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é)院計算機科學(xué)與技術(shù)系本科課程設(shè)計成績評定表</p><p> 附件4 分工協(xié)作說明(以列表形式具體說明每個人所做的工作);</p><p><b> 1 引 言</b></p
7、><p> 1.1 問題的提出 </p><p> 設(shè)計一個校園導(dǎo)航系統(tǒng),為來訪的客人提供各種信息查詢服務(wù)。</p><p> 1.2國內(nèi)外研究的現(xiàn)狀</p><p> 這個問題一直是國內(nèi)外研究的熱門話題。</p><p><b> 1.3任務(wù)與分析</b></p><p
8、> 設(shè)計你的學(xué)校的平面圖,至少包括8個以上的場所,每兩個場所間可以有不同的路,且路長也可能不同,找出從任意場所到達另一場所的最佳路徑(最短路徑)</p><p> 2 程序的主要功能 </p><p> (1)設(shè)計校園平面圖,在校園景點選8個左右景點。以圖中頂點表示校園內(nèi)各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等有關(guān)信息。</p><
9、;p> ?。?)為來訪客人提供圖中任意景點相關(guān)信息的查詢。</p><p> ?。?)為來訪客人提供任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的一條最短路徑。</p><p><b> 3 程序運行平臺</b></p><p> 計算機 windows7 Virtual c++ 6.0</p><
10、p><b> 4 總體設(shè)計</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 //最大頂點個數(shù) </p><p> #define INFINITY 32767 //最大值 </p><p> typedef struct </p><p><b> { </b></p><p> char* vexs[MA
12、X_V]; //頂點向量 </p><p> int arcs[MAX_V][MAX_V];//鄰接矩陣 </p><p> int vexnum,arcnum;//圖的當(dāng)前頂點數(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ù)描述:主要將每個節(jié)點進行命名,每個定點到其他所有定點的路徑值用鄰接矩陣進行存儲。</p><p><b> 例如:</b></p><p> G.vexs[0] = "小池塘"; </p><p> G.v
16、exs[1] = "東門"; </p><p> 作用:使0號定點命名為“小池塘”,1號節(jié)點命名為“東門”。</p><p> G.arcs[1][4] = G.arcs[4][1] =260 ;</p><p> 作用:使1號定點到4號定點的路徑賦值為260,同時4號定點到1號定點的路徑長度也為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ū)田徑場 (8) 南區(qū)田徑場 (9) 一號食堂 ☆ \n"); </p><p> printf("\t\t\t\t☆ (10) 二號食堂 (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請選擇導(dǎo)航功能:\n"); </p><p> printf("\t\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n"); </p><p> printf("\t\t\t\t\t≈ (1) 學(xué)校簡介 ≈\n");&
23、lt;/p><p> printf("\t\t\t\t\t≈ (2) 兩點最短距離導(dǎo)航 ≈\n"); </p><p> printf("\t\t\t\t\t≈ (3) 某點到其他所有點的最短距離 ≈\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"); /*修改控制臺的顏色信息,改為白字藍底的模式*/ </p><p> system("mode con: cols=140 lines=130"); /*設(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("分別輸入起點和終點代號以空格分開\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路徑長度:%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("你輸入選項有誤,請繼續(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("請輸入出發(fā)點:"); </p><p> scanf("%d",&v0); </p><p> ShortPath (G,
37、v0,P,D); </p><p> printf("v0到其他所有點的最短路徑為:\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路徑長度:%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("選擇錯誤,請重新輸入!\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迪杰斯特拉算法實現(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個頂點 </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點離更近 </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)測試</b></p><p><b> 7.1系統(tǒng)登錄界面</b></p><p>
56、 7.2功能一:學(xué)校簡介</p><p> 7.3功能二:兩點最短距離導(dǎo)航</p><p> 7.4功能三:某點到其他所有點的最短距離</p><p> 7.5功能四:顯示全校地圖</p><p><b> 7.5退出導(dǎo)航系統(tǒng)</b></p><p><b> 8 結(jié)論<
57、;/b></p><p> 在本次課程設(shè)計所做的校園導(dǎo)航系統(tǒng)中,最關(guān)鍵的問題是最短路徑問題,在教材中有具體的算法——迪杰斯特拉算法求最短路徑問題。但是想一次性就把程序調(diào)試出來是不可能的,我們組也是經(jīng)過多次討論才把程序完整的調(diào)試出來。通過這次的課程設(shè)計,我們學(xué)到了很多知識,也認識到很多不足,那就是知識的不足和經(jīng)驗的缺乏。但是我們相信自己可以在以后的學(xué)習(xí)中不斷進步。</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、//最大頂點個數(shù) </p><p> #define INFINITY 32767 //最大值 </p><p> typedef struct </p><p><b> { </b></p><p> char* vexs[MAX_V]; //頂點向量 </p><p>
60、; int arcs[MAX_V][MAX_V];//鄰接矩陣 </p><p> int vexnum,arcnum;//圖的當(dāng)前頂點數(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"); /*修改控制臺的顏色
63、信息,改為白字藍底的模式*/ </p><p> system("mode con: cols=140 lines=130"); /*設(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("分別輸入起點和終點代號以空格分開\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路徑長度:%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("你輸入選項有誤,請
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("請輸入出發(fā)點:"); </p><p> scanf("%d",&v0); </p><p> ShortPath (G,v0,P,D); </p><p> printf("v0到其他所有點的最短路
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路徑長度:%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("選擇錯誤,請重新輸入!\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; //圖的定點數(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ū)田徑場"; </p><p> G.vexs[7] = "南區(qū)田徑場"; </p><p> G.vexs[8] = "一號食堂"; </p><p> G.vexs[9] = "二號食堂";</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++) //初始化路徑長度 </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; //初始化最大值 默認不鄰接</p><p><b> } </b></p><p> //為每一條邊賦權(quán) 即路徑長度 因為邊是對稱的</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ū)田徑場 (8) 南區(qū)田徑場 (9) 一號食堂 ☆ \n"); </p><p> printf("\t\t\t\t☆ (10) 二號食堂 (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請選擇導(dǎo)航功能:\n");
105、 </p><p> printf("\t\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n"); </p><p> printf("\t\t\t\t\t≈ (1) 學(xué)校簡介 ≈\n");</p><p> printf("\t\t\t\t\t≈ (2
106、) 兩點最短距離導(dǎo)航 ≈\n"); </p><p> printf("\t\t\t\t\t≈ (3) 某點到其他所有點的最短距離 ≈\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個頂點 </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點離更近 </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)過的頂點,到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 ┏━━━━━━━━━━━━━北門━━━━━北操場\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等.壓縮文件請下載最新的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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《校園導(dǎo)航系統(tǒng)》課程設(shè)計報告
- 校園導(dǎo)航系統(tǒng)課程設(shè)計報告
- 算法課程設(shè)計--校園導(dǎo)航系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-校園導(dǎo)航系統(tǒng)
- 校園導(dǎo)航系統(tǒng)---算法及分析課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--校園導(dǎo)航系統(tǒng)
- 校園導(dǎo)航系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 校園導(dǎo)航系統(tǒng)---算法與分析課程設(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)航系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計導(dǎo)航系統(tǒng)
- c語言課程設(shè)計---交通模擬導(dǎo)航系統(tǒng)
- 校園導(dǎo)航系統(tǒng)需求分析
- 算法課程設(shè)計—校園導(dǎo)航問題
- 基于qt的校園導(dǎo)航系統(tǒng)
- android校園地圖導(dǎo)航系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-校園導(dǎo)航
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計校園導(dǎo)航
- 18643.校園導(dǎo)航系統(tǒng)的設(shè)計與實現(xiàn)
評論
0/150
提交評論