![校園導(dǎo)航系統(tǒng)課程設(shè)計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/27d48086-4e42-4a70-b4dc-87d936ce57f0/27d48086-4e42-4a70-b4dc-87d936ce57f01.gif)
![校園導(dǎo)航系統(tǒng)課程設(shè)計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/27d48086-4e42-4a70-b4dc-87d936ce57f0/27d48086-4e42-4a70-b4dc-87d936ce57f02.gif)
![校園導(dǎo)航系統(tǒng)課程設(shè)計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/27d48086-4e42-4a70-b4dc-87d936ce57f0/27d48086-4e42-4a70-b4dc-87d936ce57f03.gif)
![校園導(dǎo)航系統(tǒng)課程設(shè)計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/27d48086-4e42-4a70-b4dc-87d936ce57f0/27d48086-4e42-4a70-b4dc-87d936ce57f04.gif)
![校園導(dǎo)航系統(tǒng)課程設(shè)計_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/27d48086-4e42-4a70-b4dc-87d936ce57f0/27d48086-4e42-4a70-b4dc-87d936ce57f05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、校園導(dǎo)航課程設(shè)計報告書專 業(yè):計算機科學(xué)與技術(shù) 課程設(shè)計名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題 目:校園導(dǎo)航問題班 級:學(xué)號:姓名:同 組 人 員: 指 導(dǎo) 老 師:完 成 時 間:2012年2月17日摘要校園導(dǎo)航問題是基于校園中的不同的景點,從陌生人的角度,為來往的客人提供校園景點相關(guān)信息的查詢以及為來往的客人提供校園中任意景點的問路查詢,以便客人能用最短的時間從某一地點到達想要去的地方。大大節(jié)約了旅客參觀校園的時間。本文是采用C+作為開發(fā)語言,又最大程度上用了C語言的有關(guān)的語法。以visual c+6.0為開發(fā)工具。旨在實現(xiàn)校園導(dǎo)航系統(tǒng)中,學(xué)校的簡介,景點的介紹,路線查詢等基本的問題。為來往客人參觀校園
2、提供方便。關(guān)鍵詞:C+;C;visual c+6.0;校園導(dǎo)航目錄目錄1第一章開發(fā)環(huán)境和開發(fā)工具11.1C/ C +語言簡介11.2 開發(fā)背景11.3 開發(fā)環(huán)境1第二章 算法思想22.1 系統(tǒng)需求分析22.2 系統(tǒng)總體設(shè)計32.2.1 系統(tǒng)設(shè)計目標(biāo)32.2.2 開發(fā)設(shè)計思想32.2.3 系統(tǒng)功能模塊設(shè)計32.3 算法思想描述4第三章算法實現(xiàn)63.1 數(shù)據(jù)結(jié)構(gòu)63.2 程序模塊63.3 各模塊之間的調(diào)用關(guān)系上123.4 源程序代碼12第四章測試與分析224.1 測試數(shù)據(jù)選擇224.2 測試結(jié)果分析26總 結(jié)27心得體會28參考文獻29第一章 開發(fā)環(huán)境和開發(fā)工具1.1 C/ C +語言簡介C語言是
3、一種計算機程序設(shè)計語言。它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie于1972年推出。1978后,C語言已先后被移植到大、中、小及微型機上。它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動畫。具體應(yīng)用比如單片機以及嵌入式系統(tǒng)開發(fā)。C+是一種靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的通用程序設(shè)計語言。它支持過程化程序設(shè)計、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計、制作圖標(biāo)等等泛型程序設(shè)
4、計等多種程序設(shè)計風(fēng)格。1.2 開發(fā)背景 隨著科學(xué)技術(shù)的不斷發(fā)展,計算機科學(xué)日漸成熟,其強大的功能已為人們所深刻認識,它己進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。采用計算機進行校園導(dǎo)航已成為衡量校園數(shù)字化的重要標(biāo)志。校園導(dǎo)航效率的好壞對于來校參觀的客人和學(xué)校管理者來說都至關(guān)重要,在很大程度上影響著校園的數(shù)字化建設(shè)和學(xué)校的影響力。因此,本文所研究的校園導(dǎo)航系統(tǒng)具有一定的使用價值和現(xiàn)實意義。1.3 開發(fā)環(huán)境本文所采用的開發(fā)環(huán)境主要是基于c+的visual stadio c+。它是一個系統(tǒng)的集成開發(fā)環(huán)境。很適合CC+程序的開發(fā)。我們?nèi)粘5膶W(xué)習(xí)和生活中大多就用這個開發(fā)環(huán)境進行學(xué)習(xí)和編程。第二章
5、算法思想2.1 系統(tǒng)需求分析1、設(shè)計你的學(xué)校的校園平面圖,所選的景點不少于10個。以圖中頂點表示校內(nèi)各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。2、為來往客人提供圖中任意景點相關(guān)信息的查詢。3、為來往的客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點間的一條最短的簡單路徑。根據(jù)以上分析和抽象可得到本系統(tǒng)的抽象數(shù)據(jù)類型如下:ADT graph 數(shù)據(jù)對象 R:V是校園中景點的集合,稱為頂點集。 R=VR VR=<v,w,>|v,wV且P(v,w),(v,w)表示從景點v到景點w的路徑長度基本操作 P:Creatgraph(&G,V,VR)初始
6、條件:V是圖的頂點集,VR是圖中邊的集合。操作結(jié)果:按V和VR的定義構(gòu)造圖G。Output(G)初始條件:圖G已經(jīng)存在。操作結(jié)果:打印出圖的信息ShortestPath(G,v)初始條件:圖G已存在,v是圖中的一個頂點。操作結(jié)果:返回從v出發(fā)到圖中任意頂點的最短的路徑。ADT graph; 2.2 系統(tǒng)總體設(shè)計2.2.1 系統(tǒng)設(shè)計目標(biāo) 本文研究開發(fā)的校園導(dǎo)航系統(tǒng)用于支持來往校園參觀的客人提供最省時的導(dǎo)航服務(wù),有如下三個方面的目標(biāo): 1、為來往的客人提供校園的簡介。2、為來往的客人提供校園中各景點的簡介,以及各景點的距離等情況。3、為來往的客人提供到達目的地的最短的路線。2.2.2 開發(fā)設(shè)計思想
7、 基于以上系統(tǒng)設(shè)計目標(biāo),本文在開發(fā)校園導(dǎo)航系統(tǒng)時遵循了以下開發(fā)設(shè)計思想: 1、采用現(xiàn)有的軟硬件環(huán)境及先進的管理系統(tǒng)開發(fā)方案,從而達到充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。2、盡量達到操作過程中的直觀、方便、實用、安全等要求。3、系統(tǒng)采用模塊化程序設(shè)計方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護人員補充、維護。2.2.3 系統(tǒng)功能模塊設(shè)計 本系統(tǒng)分為四個模塊:菜單模塊、景點介紹模塊、路徑查詢模塊、最短路徑模塊。得到如圖3-1所示的系統(tǒng)功能模塊圖。主菜單校園導(dǎo)航系統(tǒng)菜單景點介紹路徑查詢最短路徑查詢子菜單退出學(xué)校簡介景點簡介各景點間距離最短路徑長度最短路線圖3-1系
8、統(tǒng)功能模塊圖2.3 算法思想描述 1、迪杰斯特拉算法思想:按路徑長度遞增次序產(chǎn)生最短路徑算法:把V分成兩組:(1)S:已求出最短路徑的頂點的集合(2)V-S=T:尚未確定最短路徑的頂點集合將T中頂點按最短路徑遞增的次序加入到S中,保證:(1)從源點V0到S中各頂點的最短路徑長度都不大于從V0到T中任何頂點的最短路徑長度(2)每個頂點對應(yīng)一個距離值S中頂點:從V0到此頂點的最短路徑長度T中頂點:從V0到此頂點的只包括S中頂點作中間頂點的最短路徑長度依據(jù):可以證明V0到T中頂點Vk的最短路徑,或是從V0到Vk的直接路徑的權(quán)值;或是從V0經(jīng)S中頂點到Vk的路徑權(quán)值之和2、鄰接矩陣建立有無向權(quán)圖的算法
9、思想:用兩個數(shù)組分別存儲數(shù)據(jù)元素的信息和數(shù)據(jù)之間的關(guān)系的信息其形式描述如下:#define Max 32767/最大值#define NUM 11/最大頂點個數(shù)typedef struct ArcCellint adj; / 相鄰接的景點之間的路程 char *info;ArcCell; / 定義邊的類型 typedef struct VertexTypeint number; / 景點編號 char *sight; / 景點名稱 char *description; / 景點描述 VertexType; / 定義頂點的類型 typedef structVertexType vexNUM; /
10、 圖中的頂點,即為景點 ArcCell arcsNUMNUM; / 圖中的邊,即為景點間的距離 int vexnum,arcnum; / 頂點數(shù),邊數(shù) MGraph; / 定義圖的類型 其中用二維數(shù)組表示途中個邊之間的關(guān)系。第三章 算法實現(xiàn)3.1 數(shù)據(jù)結(jié)構(gòu)1、頂點、邊和圖類型:typedef struct ArcCellint adj; / 相鄰接的景點之間的路程 char *info;ArcCell; / 定義邊的類型 typedef struct VertexTypeint number; / 景點編號 char *sight; / 景點名稱 char *description; / 景點
11、描述 VertexType; / 定義頂點的類型 typedef structVertexType vexNUM; / 圖中的頂點,即為景點 ArcCell arcsNUMNUM; / 圖中的邊,即為景點間的距離 int vexnum,arcnum; / 頂點數(shù),邊數(shù) MGraph; / 定義圖的類型3.2 程序模塊 1.main函數(shù) void main() / 主函數(shù) int v0,v1;char ck;system("color cb");CreateUDN(NUM,11);do ck=Menu();switch(ck)case'1':introduce
12、();printf("nnttt%-25snn",G.vex0.description);getchar();getchar();break;case '2':system("cls");pingmu();printf("nnttt請選擇起點景點(110):");scanf("%d",&v0);printf("ttt請選擇終點景點(110):");scanf("%d",&v1);ShortestPath(v0); / 計算兩個景點之間的最短路徑
13、 output(v0,v1); / 輸出結(jié)果 printf("nntttt請按回車鍵繼續(xù).n");getchar();getchar();break;case '3':search();break;case'5':PrintMGraph();printf("nntttt請按回車鍵繼續(xù).n");getchar();getchar();break;while(ck!='e');2.主菜單 char Menu() / 主菜單 /char c;int flag;doflag=1;system("cls&q
14、uot;);pingmu();printf("nttn");printf("tt n");printf("tt 1.學(xué)校簡介 n");printf("tt 2.查詢景點路徑 n");printf("tt 3.查詢景點信息 n");printf("tt 5.查詢各景點之間的距離 n");printf("tt e.退出 n");printf("tt n");printf("ttn");printf("tttt請
15、輸入您的選擇:");scanf("%c",&c);if(c='1'|c='2'|c='3'|c='5'|c='e')flag=0;while(flag);return c;3.查詢子菜單char SearchMenu() / 查詢子菜單 char c;int flag;doflag=1;system("cls");pingmu();printf("nttn");printf("tt n");printf("t
16、t 1、按照景點編號查詢 n");printf("tt 2、按照景點名稱查詢 n");printf("tt e、返回 n");printf("tt n");printf("ttn");printf("ttt請輸入您的選擇:");scanf("%c",&c);if(c='1'|c='2'|c='e')flag=0;while(flag);return c;4.查詢景點信息void search() / 查詢景點信
17、息 int num;int i;char c;char name20;dosystem("cls");c=SearchMenu();switch (c)case '1': system("cls");/introduce();pingmu();printf("nntt請輸入您要查找的景點編號:");scanf("%d",&num);for(i=0;i<NUM;i+)if(num=G.vexi.number)printf("nnttt您要查找景點信息如下:");pri
18、ntf("nnttt%-25snn",G.vexi.description);printf("nttt按任回車返回.");getchar();getchar();break;if(i=NUM)printf("nnttt沒有找到!");printf("nnttt按回車鍵返回.");getchar();getchar();break;case '2':system("cls");pingmu();introduce();printf("nntt請輸入您要查找的景點名稱:&q
19、uot;);scanf("%s",name);for(i=1;i<NUM;i+)if(!strcmp(name,G.vexi.sight)printf("nnttt您要查找景點信息如下:");printf("nnttt%-25snn",G.vexi.description);printf("nttt按回車鍵返回.");getchar();getchar();break;if(i=NUM)printf("nnttt沒有找到!");printf("nnttt按回車鍵返回."
20、);getchar();getchar();break;while(c!='e');5.創(chuàng)建圖的函數(shù)void CreateUDN(int v,int a) / 創(chuàng)建圖的函數(shù) 6. 打印出鄰接矩陣void PrintMGraph()int i,j;cout<<"n =nn "for(i=1;i<G.vexnum;+i)cout<<G.vexi.sight<<" "cout<<endl;for(i=1;i<G.vexnum;+i)cout<<"nn"&
21、lt;<G.vexi.sight<<" "for(j=1;j<G.vexnum;+j)if(G.arcsij.adj=Max)cout<<" no "elsecout<<" "<<G.arcsij.adj;cout<<"nnnn=nnn"7.迪杰斯特拉算法void ShortestPath(int num) / 迪杰斯特拉算法最短路徑函數(shù) num為入口點的編號 int v,w,i,t; / i、w和v為計數(shù)變量 int finalNUM; in
22、t min;for(v=1;v<NUM;v+)finalv=0; / 假設(shè)從頂點num到頂點v沒有最短路徑 Dv=G.arcsnumv.adj;/ 將與之相關(guān)的權(quán)值放入D中存放 for(w=1;w<NUM;w+) / 設(shè)置為空路徑 Pvw=0;if(Dv<32767) / 存在路徑 Pvnum=1; / 存在標(biāo)志置為一 Pvv=1; / 自身到自身 Dnum=0;finalnum=1; / 初始化num頂點屬于S集合 / 開始主循環(huán),每一次求得num到某個頂點的最短路徑,并將其加入到S集合 for(i=1;i<NUM;+i) / 其余G.vexnum-1個頂點 min=
23、Max; / 當(dāng)前所知離頂點num的最近距離 for(w=1;w<NUM;+w)if(!finalw) / w頂點在v-s中 if(Dw<min) / w頂點離num頂點更近 v=w;min=Dw; finalv=1; / 離num頂點更近的v加入到s集合 for(w=1;w<NUM;+w) / 更新當(dāng)前最短路徑極其距離 if(!finalw&&(min+G.arcsvw.adj)<Dw)/ 不在s集合,并且比以前所找到的路徑都短就更新當(dāng)前路徑 /Dw=min+G.arcsvw.adj;for(t=0;t<NUM;t+)Pwt=Pvt;Pww=1;
24、8、輸出:屏幕輸出函數(shù):void pingmu();最短路線輸出函數(shù)void output;3.3 各模塊之間的調(diào)用關(guān)系上 模塊調(diào)用關(guān)系如圖32所示:mainCreateUDNmenusearchShortestPathoutputPrintMGraphpingmusearchmenu圖32模塊調(diào)用關(guān)系圖3.4 源程序代碼#include<iostream.h> #include "string.h" #include "stdio.h" #include "stdlib.h"#define Max 32767#defin
25、e NUM 11typedef struct ArcCellint adj; / 相鄰接的景點之間的路程 char *info;ArcCell; / 定義邊的類型 typedef struct VertexTypeint number; / 景點編號 char *sight; / 景點名稱 char *description; / 景點描述 VertexType; / 定義頂點的類型 typedef structVertexType vexNUM; / 圖中的頂點,即為景點 ArcCell arcsNUMNUM; / 圖中的邊,即為景點間的距離 int vexnum,arcnum; / 頂點數(shù)
26、,邊數(shù) MGraph; / 定義圖的類型 MGraph G; / 把圖定義為全局變量 int PNUMNUM; / /long int DNUM; / 輔助變量存儲最短路徑長度 int x13=0; void CreateUDN(int v,int a); / 創(chuàng)建圖的函數(shù) void pingmu(); /屏幕輸出函數(shù)void introduce();void ShortestPath(int num); /最短路徑函數(shù)void output(int sight1,int sight2); /輸出函數(shù)void PrintMGraph();char Menu(); / 主菜單 void sear
27、ch(); ;/ 查詢景點信息 char SearchMenu(); / 查詢子菜單 void NextValue(int); void display(); / 顯示遍歷結(jié)果 void main() / 主函數(shù) int v0,v1;char ck;system("color 4b");CreateUDN(NUM,11);do ck=Menu();switch(ck)case'1':introduce();printf("nnttt%-25snn",G.vex0.description);getchar();getchar();break
28、;case '2':system("cls");pingmu();printf("nnttt請選擇起點景點(110):");scanf("%d",&v0);printf("ttt請選擇終點景點(110):");scanf("%d",&v1);ShortestPath(v0); / 計算兩個景點之間的最短路徑 output(v0,v1); / 輸出結(jié)果 printf("nntttt請按回車鍵繼續(xù).n");getchar();getchar();b
29、reak;case '3':search();break;case'5':PrintMGraph();printf("nntttt請按回車鍵繼續(xù).n");getchar();getchar();break;while(ck!='e');char Menu() / 主菜單 /char c;int flag;doflag=1;system("cls");pingmu();introduce();printf("nttn");printf("tt n");printf(&q
30、uot;tt 1.學(xué)校簡介 n");printf("tt 2.查詢景點路徑 n");printf("tt 3.查詢景點信息 n");printf("tt 5.查詢各景點之間的距離 n");printf("tt e.退出 n");printf("tt n");printf("tt n");printf("tttt請輸入您的選擇:");scanf("%c",&c);if(c='1'|c='2'
31、;|c='3'|c='5'|c='e')flag=0;while(flag);return c;char SearchMenu() / 查詢子菜單 char c;int flag;doflag=1;system("cls");pingmu();introduce();printf("ntt n");printf("tt n");printf("tt 1、按照景點編號查詢 n");printf("tt 2、按照景點名稱查詢 n");printf(&q
32、uot;tt e、返回 n");printf("tt n");printf("tt n");printf("ttt請輸入您的選擇:");scanf("%c",&c);if(c='1'|c='2'|c='e')flag=0;while(flag);return c;void search() / 查詢景點信息 int num;int i;char c;char name20;dosystem("cls");c=SearchMenu(
33、);switch (c)case '1': system("cls");introduce();pingmu();printf("nntt請輸入您要查找的景點編號:");scanf("%d",&num);for(i=0;i<NUM;i+)if(num=G.vexi.number)printf("nnttt您要查找景點信息如下:");printf("nnttt%-25snn",G.vexi.description);printf("nttt按任回車返回.&q
34、uot;);getchar();getchar();break;if(i=NUM)printf("nnttt沒有找到!");printf("nnttt按回車鍵返回.");getchar();getchar();break;case '2':system("cls");pingmu();introduce();printf("nntt請輸入您要查找的景點名稱:");scanf("%s",name);for(i=1;i<NUM;i+)if(!strcmp(name,G.vexi
35、.sight)printf("nnttt您要查找景點信息如下:");printf("nnttt%-25snn",G.vexi.description);printf("nttt按回車鍵返回.");getchar();getchar();break;if(i=NUM)printf("nnttt沒有找到!");printf("nnttt按回車鍵返回.");getchar();getchar();break;while(c!='e');void CreateUDN(int v,int
36、a) / 創(chuàng)建圖的函數(shù) int i,j;G.vexnum=v; / 初始化結(jié)構(gòu)中的景點數(shù)和邊數(shù) G.arcnum=a;for(i=1;i<G.vexnum;+i) G.vexi.number=i; / 初始化每一個景點的編號 / 初始化沒一個景點名及其景點描述 G.vex0.sight="學(xué)校簡介"G.vex1.sight="校大門"G.vex2.sight="教學(xué)樓"G.vex3.sight="中心廣場"G.vex4.sight="山頂操場"G.vex5.sight="學(xué)生宿舍
37、"G.vex6.sight="圖書館"G.vex7.sight="體育館"G.vex8.sight="二食堂"G.vex9.sight="服務(wù)樓"G.vex10.sight="北門"/ 這里把所有的邊假定為32767,含義是這兩個景點之間是不可到達 for(i=1;i<G.vexnum;+i)for(j=1;j<G.vexnum;+j) G.arcsij.adj=Max;G.=NULL;/下邊是可直接到達的景點間的距離,由于兩個景點間距離是互相的,/
38、所以要對圖中對稱的邊同時賦值。G.arcs14.adj=G.arcs41.adj=200;G.arcs13.adj=G.arcs31.adj=500;G.arcs35.adj=G.arcs53.adj=100;G.arcs310.adj=G.arcs103.adj=400;G.arcs46.adj=G.arcs64.adj=200;G.arcs25.adj=G.arcs52.adj=200;G.arcs24.adj=G.arcs42.adj=300;G.arcs57.adj=G.arcs75.adj=500;G.arcs46.adj=G.arcs64.adj=400;G.arcs47.adj=
39、G.arcs74.adj=600;G.arcs68.adj=G.arcs86.adj=500;G.arcs78.adj=G.arcs87.adj=300;G.arcs69.adj=G.arcs96.adj=500;/ 打印出鄰接矩陣void PrintMGraph()int i,j;cout<<"n =nn "for(i=1;i<G.vexnum;+i)cout<<G.vexi.sight<<" "cout<<endl;for(i=1;i<G.vexnum;+i)cout<<&quo
40、t;nn"<<G.vexi.sight<<" "for(j=1;j<G.vexnum;+j)if(G.arcsij.adj=Max)cout<<" no "elsecout<<" "<<G.arcsij.adj;cout<<"nnnn=nnn"void introduce() / 介紹函數(shù) int i;for(i=1;i<=NUM;i+) G.vex0.description="河南城建學(xué)院坐落在國家旅游城市nn
41、tt國家歷史文化名城-平頂山,校園椰風(fēng)流韻、芳林疊翠、風(fēng)景秀麗。nntt經(jīng)過二十多年的發(fā)展,學(xué)?,F(xiàn)已形成以城建為主要辦學(xué)特色nntt文、管、理、經(jīng)等多學(xué)科協(xié)調(diào)發(fā)展的格局,是河南省培養(yǎng)城建類nntt高級應(yīng)用型人才的重要基地.目前,學(xué)校確立了立足河南nntt逐漸面向全國服務(wù)面向定位,充分發(fā)揮學(xué)校特色nntt積極擴大對外交流與合作,學(xué)術(shù)交流日趨nntt頻繁,國際影響不斷增強nntt下面幾點是河南城建學(xué)院的辦學(xué)特色:nntt辦學(xué)歷史較為悠久nntt學(xué)科專業(yè)較為齊全nntt師資隊伍素質(zhì)優(yōu)良nntt教學(xué)成果較為豐碩nntt科研水平不斷提高nntt校園文化豐富活躍nntt人才培養(yǎng)成效顯著nntt合作交流日趨
42、頻繁nntt"G.vex1.description="學(xué)校大門,對面是祥云公園ntt是我們學(xué)生休閑娛樂的好地方"G.vex2.description="計教系辦公大樓,計算機科學(xué)技術(shù)的科研中心"G.vex3.description="這里是學(xué)校的主要的風(fēng)景區(qū),是學(xué)校的標(biāo)志之一"G.vex4.description="在這破地方什么鳥人都 有,拿書吶喊的,失戀的,打KISS的,暗送秋波的,ntt可千萬別來這鴛鴦之地,你來了,一個電燈泡亮那兒ntt你說人家兩口子咋親熱啊,還是閃為上策"G.vex5.descr
43、iption="學(xué)生生活的天堂"G.vex6.description="河南城建學(xué)院信息中心,各種書籍應(yīng)有盡有"G.vex7.description="排球籃球比賽,晚會,各種報告,開學(xué)典禮舉行都在這破地方舉行"G.vex8.description="老師和同學(xué)們吃飯的地方,這里的飯比一食堂好吃,菜不錯ntt看你肚皮有沒有豬八戒大,你要是吃不飽可以考慮來這吃,準(zhǔn)讓你撐死"G.vex9.description="學(xué)生可以在這里買到日常必須品。"G.vex10.description="北
44、門雄偉壯觀,十分氣派!"void pingmu() / 屏幕輸出函數(shù) int i;printf("nntt%c%c%c%c%c%c%c%c%c%c%c歡迎來到河南城建學(xué)院%c%c%c%c%c%c%c%c%c%cnn",6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6);printf("tt%c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %cn",3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3);print
45、f("tt%ctt學(xué)校簡介tt%cn",1,1);printf("tt%c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %cn",3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3);printf("tt%ctt學(xué)校概況tt%cn",6,6);printf("tt%c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %c %cn",3,3,3,3,3,3,
46、3,3,3,3,3,3,3,3,3,3,3,3,3,3,3);for(i=1;i<NUM;i+)printf("tt%ctt(%2d)%-20s%cttt",1,i,G.vexi.sight,1); / 輸出景點列表 printf("tt%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%cnn",1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
47、6,6,6,6,1);void ShortestPath(int num) / 迪杰斯特拉算法最短路徑函數(shù) num為入口點的編號 int v,w,i,t; / i、w和v為計數(shù)變量 int finalNUM; int min;for(v=1;v<NUM;v+)finalv=0; / 假設(shè)從頂點num到頂點v沒有最短路徑 Dv=G.arcsnumv.adj;/ 將與之相關(guān)的權(quán)值放入D中存放 for(w=1;w<NUM;w+) / 設(shè)置為空路徑 Pvw=0;if(Dv<32767) / 存在路徑 Pvnum=1; / 存在標(biāo)志置為一 Pvv=1; / 自身到自身 Dnum=0;f
48、inalnum=1; / 初始化num頂點屬于S集合 / 開始主循環(huán),每一次求得num到某個頂點的最短路徑,并將其加入到S集合 for(i=1;i<NUM;+i) / 其余G.vexnum-1個頂點 min=Max; / 當(dāng)前所知離頂點num的最近距離 for(w=1;w<NUM;+w)if(!finalw) / w頂點在v-s中 if(Dw<min) / w頂點離num頂點更近 v=w;min=Dw; finalv=1; / 離num頂點更近的v加入到s集合 for(w=1;w<NUM;+w) / 更新當(dāng)前最短路徑極其距離 if(!finalw&&(m
49、in+G.arcsvw.adj)<Dw)/ 不在s集合,并且比以前所找到的路徑都短就更新當(dāng)前路徑 /Dw=min+G.arcsvw.adj;for(t=0;t<NUM;t+)Pwt=Pvt;Pww=1;void output(int sight1,int sight2) / 輸出函數(shù) int a,b,c,d,q=0;a=sight2; / 將景點二賦值給a if(a!=sight1) / 如果景點二不和景點一輸入重合,則進行. printf("nt從%s到%s的最短路徑是",G.vexsight1.sight,G.vexsight2.sight);/ 輸出提示信息 printf("t(最短距離為 %dm.)nnt",Da); / 輸出sight1到sight2的最短路徑長度,存放在D數(shù)組中 printf("t%s",G.vexsight1.sight); / 輸出景點一的名稱 d=sight1; / 將景點一的編號賦值給d for(c=0;c<NUM;+c)gate:; / 標(biāo)號,可以作為goto語句跳轉(zhuǎn)的位置 Pasight1=0; f
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 申請委托研發(fā)合同
- 2025年度家庭水電工程環(huán)保驗收合同
- 2025年度城市綜合體施工專業(yè)分包合同
- 2025年度綠色生態(tài)園區(qū)景觀亮化工程標(biāo)準(zhǔn)合同書
- 2025年度保險產(chǎn)品居間代理服務(wù)合同參考
- 2025年度人力資源外包合同管理與監(jiān)督協(xié)議
- 2025年度四川離婚協(xié)議書起草與離婚財產(chǎn)分割及子女撫養(yǎng)全程服務(wù)合同
- 2025年度工傷死亡事故賠償協(xié)議執(zhí)行與評估合同
- 2025年度國際貨物倉儲合同規(guī)范文本
- 2025年度化工產(chǎn)品國際貿(mào)易運輸合同范本
- 黑龍江省哈爾濱市2024屆中考數(shù)學(xué)試卷(含答案)
- 前程無憂測評題庫及答案
- 《軌道交通工程盾構(gòu)施工技術(shù)》 課件 項目3 盾構(gòu)選型
- 造價咨詢進度控制措施全
- 高三日語一輪復(fù)習(xí)助詞「と」的用法課件
- 物業(yè)管理服務(wù)房屋及公用設(shè)施維修養(yǎng)護方案
- 醫(yī)療器械法規(guī)培訓(xùn)
- 無子女離婚協(xié)議書范文百度網(wǎng)盤
- 2023中華護理學(xué)會團體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 一年級數(shù)學(xué)個位數(shù)加減法口算練習(xí)題大全(連加法-連減法-連加減法直接打印版)
- 2024河南省鄭州市公安局輔警招聘2024人歷年高頻難、易錯點500題模擬試題附帶答案詳解
評論
0/150
提交評論