九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

校園導游咨詢系統(tǒng)---數(shù)據(jù)結構課程設計(共35頁)

上傳人:20022****wzdgj 文檔編號:46403142 上傳時間:2021-12-13 格式:DOC 頁數(shù):35 大?。?02KB
收藏 版權申訴 舉報 下載
校園導游咨詢系統(tǒng)---數(shù)據(jù)結構課程設計(共35頁)_第1頁
第1頁 / 共35頁
校園導游咨詢系統(tǒng)---數(shù)據(jù)結構課程設計(共35頁)_第2頁
第2頁 / 共35頁
校園導游咨詢系統(tǒng)---數(shù)據(jù)結構課程設計(共35頁)_第3頁
第3頁 / 共35頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《校園導游咨詢系統(tǒng)---數(shù)據(jù)結構課程設計(共35頁)》由會員分享,可在線閱讀,更多相關《校園導游咨詢系統(tǒng)---數(shù)據(jù)結構課程設計(共35頁)(35頁珍藏版)》請在裝配圖網上搜索。

1、精選優(yōu)質文檔-傾情為你奉上石家莊經濟學院 本科生課程設計報告書 題 目 校園導游咨詢系統(tǒng) 姓名 顏建學 學號 1 學 院 信息工程學院 專業(yè) 計算機方向 指導教師 XXXXXX 完成日期: 2012-07-5校園導游咨詢系統(tǒng)1 需求分析本程序的主要目的是為了提供本學校的景點的路徑咨詢和來訪客人以及剛來報到的新生提供一個快捷方便的路徑咨詢,快速有效的提高了用戶的熟悉度。滿足用戶查詢的需要:1、從石家莊經濟學院的平面地圖中選取出10個有代表性的景點。2、為來訪的客人提供圖中任意景點相關信息的查詢。當用戶輸入正確時,為用戶輸出景點的相關信息;當用戶輸入不合法時,提示用戶輸入有誤并返回讓用戶重新輸入。

2、3、為來訪的客人提供圖中任意景點的路徑查詢,即查詢任意兩個景點之間的最短簡單路徑。當用戶輸入正確時,為用戶輸出任意兩景點的最短路徑;當用戶輸入不合法時,提示用戶輸入有誤并返回讓用戶重新輸入。4、為來訪客人推薦參觀路線。2 概要設計1、抽象數(shù)據(jù)類型圖的定義如下:ADT Graph數(shù)據(jù)對象V:V是具有相同特性的數(shù)據(jù)元素的集合,稱為頂點集。數(shù)據(jù)關系R:R=VRVR=(v,w)|v,wV,(v,w)表示v和w之間存在路徑基本操作P:CreatGraph70321(&G,V,VR)初始條件:V是圖的頂點集,VR是圖中邊的集合。操作結果:按V和VR的定義構造圖G。DestroyGraph70321

3、(&G)初始條件:圖G存在。操作結果:銷毀圖G。LocateVex70321(G,u)初始條件:圖G存在,u和G中頂點有相同特征。操作結果:若G中存在頂點u,則返回該頂點在圖中位置;否則返回其他信息。GetVex70321(G,v)初始條件:圖G存在,v是G中某個頂點。操作結果:返回v的信息。FirstEdge70321(G,v)初始條件:圖G存在,v是G中某個頂點。操作結果:返回依附于v的第一條邊。若該頂點在G中沒有鄰接點,則返回“空”。 NextEdge70321(G,v,w)初始條件:圖G存在,v是G中某個頂點,w是v的鄰接頂點。操作結果:返回依附于v的(相對于w的)下一條邊。若

4、不存在,則返回“空”。 InsertVex70321(&G,v)初始條件:圖G存在,v和圖中頂點有相同特征。操作結果:在圖中增添新頂點v。DeleteVex70321(&G,v)初始條件:圖G存在,v是G中某個頂點。操作結果:刪除G中頂點v及其相關的邊。InsertEdge70321(&G,v,w)初始條件:圖G存在,v和w是G中兩個頂點。操作結果:在G中增添邊(v,w).DeleteEdge70321(&G,v,w)初始條件:圖G存在,v和w是G中兩個頂點。操作結果:在G中刪除邊(v,w)。GetShortestPath70321(G,st,nd,&P

5、ath)初始條件:圖G存在,st和nd是G中兩個頂點。操作結果:若st和nd之間存在路徑,則以Path返回兩點之間一條最短路徑,否則返回其他信息。ADT Graph主程序void main()初始化; do 接受命令(輸入景點信息或輸出最短路徑); 處理命令; while(“命令”!=“退出”);2、調用的函數(shù)有如下:void CreateUDN70321(int v,int a); /* 造圖函數(shù) */void narrate70321(); /*說明函數(shù)*/void ShortestPath70321(int num); /*最短路徑函數(shù)*/void output70321(int sig

6、ht1,int sight2); /*輸出函數(shù)*/char Menu70321(); /* 主菜單 */void search70321(); /* 查詢景點信息 */char SearchMenu70321(); /* 查詢子菜單 */void HaMiTonian70321(int); /* 哈密爾頓圖的遍歷 */void NextValue70321(int); void display70321(); /* 顯示遍歷結果 */3、運行主界面:*歡 迎 使 用 校 園 導 游 程 序*石*家*莊*經*濟*學*院*制作者:信息工程學院 1 顏建學 !歡迎您的使用! 景點名稱 (0)教學主樓

7、 (1)足球場 (2)燈光籃球場 (3)惠馨園 (4)實驗樓 (5)計算機實驗室 (6)地球科學博物館 (7)學術報告廳 (8)圖書館 (9)噴泉 1、查詢景點路徑 2、查詢景點信息 3、推薦參觀路線 e、退出 子界面如下: 1、按照景點編號查詢 2、按照景點名稱查詢 e、返回 3、模塊圖表示如下:主程序模塊處理功能模塊無向圖存儲模塊為用戶輸出景點信息為用戶輸出兩景點最佳路徑推薦參觀路徑3 詳細設計從石家莊經濟學院的平面地圖中選取出10個有代表性的景點,將其抽象成無向帶權網并用鄰接矩陣來表示。以圖中的頂點代表景點,存放景點名稱、代號、簡介等信息,權值代表兩地之間的距離。1、 圖的存儲結構如下:

8、#define Max 20000#define NUM 9typedef struct ArcCell int adj; /* 相鄰接的景點之間的路程 */ArcCell; /* 定義邊的類型 */typedef struct VertexType70321 int number; /* 景點編號 */ char *sight; /* 景點名稱 */ char *description; /* 景點描述 */VertexType; /* 定義頂點的類型 */typedef struct VertexType vexNUM; /* 圖中的頂點,即為景點 */ ArcCell arcsNUMNU

9、M; /* 圖中的邊,即為景點間的距離 */ int vexnum,arcnum; /* 頂點數(shù),邊數(shù) */MGraph; /* 定義圖的類型2、該程序的算法如下:1)void CreateUDN70321(MGraph&G) /* 造圖函數(shù) */ /采用鄰接矩陣表示法,構造無向網Gscanf(&G.vexnum,&G.arcnum,&IncInfo);/ IncInfo為0則各弧不含其它信息for(i=0;i< G.vexnum;+i)scanf(&G.vexsi);/構造頂點向量for(i=0;i< G.vexnum;+i)/初始化鄰接矩

10、陣for(j=0;j< G.vexnum;+j)G.arcsij=INFINITY,NULLfor(k=0;k< G.arcnum;+k)/構造鄰接矩陣scanf(&v1,&v2,&w);/輸入一條邊依附的頂點及權值i=LocateVex(G,v1);j= LocateVex(G,v2);/確定V1和V2在G中的位置G.arcsij.adj=w;/弧<v1,v2>的權值If(IncInfo)Input(*G.arcsij.info);/若弧含有相關信息,則輸入G.arcsji= G.arcsij;/置<v1,v2>的對稱弧<v2

11、,v1> Return OK; 2)void narrate70321() /* 說明函數(shù) */k=0;printf("ntt*歡 迎 使 用 校 園 導 游 程 序*n");printf("ntt*石*家*莊*經*濟*學*院*n");printf("ntt制作者: 信息工程學院 1 顏建學 !歡迎您使用!n");printf("ntt_n");printf("ttttt 景點名稱ttn");printf("tt_n");for(i=0;i<NUM;i+)prin

12、tf("tt (%2d)%-15stt",i,G.vexi.sight);if(i%2=(NUM-1)%2)printf("n");/奇數(shù)編號景點在右邊,偶數(shù)編號景點在左邊k=k+1;printf("tt_n");3) void ShortestPath70321(int num) /用迪杰斯特拉算法求G的v0頂點到其余頂點的最短路徑Pv及其帶權長度 Dv/若Pvw為TRUE,則 w是從v0到v當前求得最短路徑上的頂點 /finalv為TRUE當且僅當v屬于S,即已經 求得從 v0到v的最短路徑 for(v=0;v<G.vexn

13、um;+v) Finalv=FALSE;Dv= G.arcsv0v; For(w=0;w< G.vexnum;+w)Pvw=FALSE; If (Dv<INFINITY)Pvv0=TRUE;Pvv=TRUE; /forDv0=0;finalv0=TRUE;/開始主循環(huán),每次求得v0到某個頂點的最短路徑,并加v到S集For(i=1;i< G.vexnum;+i) Min=INFINITY; For(w=0;w< G.vexnum;+w) If(!finalw) If(Dw<min)v=w;min=Dw; Finalv=TRUE; For(w=0;w< G.ve

14、xnum;+w) If(!finalw&&(min+G.arcsvw<Dw) Dw= min+G.arcsvw; Pw=Pv;Pww=TRUE; /if /for / ShortestPath4) void output70321(int sight1,int sight2) /* 輸出函數(shù) */ if(sight2!=sight1) /* 如果景點二不和景點一輸入重合,則進行. */ printf(從G.vexsight1.sight到G.vexsight2.sight的最短路徑是:);/* 輸出提示信息 */ printf(Da); /* 輸出sight1到sight

15、2的最短路徑長度,存放在D數(shù)組中 */ printf(G.vexsight1.sight); /* 輸出景點一的名稱 */ d=sight1; /* 將景點一的編號賦值給d */ for(c=0;c<NUM;+c) Pasight1=0; for(b=0;b<NUM;b+) if(G.arcsdb.adj<20000&&Pab) /* 如果景點一和它的一個臨界點之間存在路徑且最短路徑 */ printf(G.vexb.sight); /* 輸出此節(jié)點的名稱 */ q=q+1; /* 計數(shù)變量加一,滿8控制輸出時的換行 */ Pab=0; d=b; /* 將b作

16、為出發(fā)點進行下一次循環(huán)輸出,如此反復 */ if(q%8=0) returnOK; 5)void main() /* 主函數(shù) */CreateUDN70321(NUM,11); do switch(Menu() case '1': narrate70321(); scanf(v0); scanf(v1); ShortestPath70321(v0); /* 計算兩個景點之間的最短路徑 */ Output70321(v0,v1); /* 輸出結果 */ break; case '2':search(); break; case '3': narra

17、te70321(); HaMiTonian(x0); break; ; while(Menu()!='e'); 6) char Menu() /* 主菜單 */ do flag=1; narrate70321(); scanf(c); if(c='1'|c='2'|c='3'|c='e') flag=0; while(flag); return c;7) char SearchMenu70321() /* 查詢子菜單 */ do flag=1; narrate70321(); scanf(&c); if(c

18、='1'|c='2'|c='e') flag=0; while(flag); return c;8) void search70321() /* 查詢景點信息 */do switch 70321(SearchMenu() case '1': narrate70321(); scanf(&num); for(i=0;i<NUM;i+) if(num=G.vexi.number) printf(G.vexi.description); break; if(i=NUM) printf(沒有找到!"); getch

19、ar70321(); break; case '2': narrate70321(); scanf(name); for(i=0;i<NUM;i+) if(!strcmp(name,G.vexi.sight) printfG.vexi.description); break; if(i=NUM) printf(沒有找到!"); break; while(SearchMenu()!='e');3、流程圖如下:開始造圖輸入您的選擇您的選擇是1?您的選擇是2?您的選擇是3?您的選擇是100?結束輸入您的第一個景點選擇輸入您的第二個景點選擇您的選擇是e?

20、符合條件?計算最短路徑輸出結果按編號查詢?推薦最佳路徑輸入景點編號輸入景點名稱輸出結果輸出結果輸出結果否是否是否否是是否是是否是石家莊經濟學院校園導游系統(tǒng)設計流程圖信息工程學院 計算機三班顏建學 14 編碼調試校園導游咨詢系統(tǒng)主界面如下圖1所示,輸入1進行景點路徑查詢,輸入2進行景點信息查詢,輸入3時推薦參觀路線,輸入e時則退出本系統(tǒng)。圖1當輸入1時進入一個選擇子菜單(輸入錯誤時,保持原有狀態(tài)),正確輸入起點(2)(燈光籃球場)和終點(4)(實驗樓),屏幕將打印出兩景點之間的最短路徑:燈光籃球場惠馨園實驗樓,最短路徑為約430m。如下圖2所示: 圖2當輸入的景點代號不在(0-9)之間時,程序提

21、示重新輸入,直到輸入正確。測試數(shù)據(jù):當起點輸入10終點輸入12時,景點不存在,程序提示重新輸入;當起點輸入0(教學主樓)終點輸入12時,終點景點不存在,程序提示重新輸入;當起點輸入0(教學樓)終點輸入8(圖書館)時,景點都存在,屏幕打印出兩景點最短路徑:教學樓噴泉學術報告廳圖書館,最短路徑約為200m。如下圖3所示: 圖3按100推出此環(huán)節(jié),當在選擇主菜單選擇2時,出現(xiàn)如下圖4所示子菜單: 圖4當輸入1時,則按景點編號查詢,當輸入6(地球科學博物館)時,屏幕上打印出此景點信息:里面有著名的不尋??铸埢?;當輸入4(實驗樓)時,屏幕上打印出此景點信息:各專業(yè)實驗的重要場地;當輸入12時,此景點不

22、存在,屏幕上顯示:!沒*有*找*到?。划斴斎?0時,此景點不存在,屏幕上顯示:!沒*有*找*到!。如下圖5所示: 圖5當輸入2時,則按景點名稱查詢,當輸入“圖書館”時,屏幕上打印出此景點信息:圖書館是莘莘學子學習的園地,里面有各科資料,每人可以任借五本書;當輸入“計算機實驗室”時,屏幕上打印出此景點信息:計算機專業(yè)實驗實習場所;當輸入“教學三號樓”時,此景點不存在,屏幕上顯示:!沒*有*找*到!;如下圖6所示: 圖6當在選擇主菜單中輸入3時,則系統(tǒng)推薦旅游路徑:1)教學主樓足球場燈光籃球場惠馨園實驗樓噴泉學術報告廳地球科學博物館計算機實驗室圖書館校園出口2)教學主樓足球場燈光籃球場惠馨園實驗樓

23、噴泉學術報告廳圖書館計算機實驗室地球科學博物館校園出口3)教學主樓地球科學博物館計算機實驗室圖書館學術報告廳噴泉實驗樓惠馨園燈光籃球場足球場校園出口如下圖7所示 圖7在選擇主菜單輸入錯誤時,程序不作反應,當輸入e時,則退出,如下圖8所示 圖8由于本人的設計能力有限,在設計過程中難免出現(xiàn)錯誤。本程序在調試時,出現(xiàn)了一個很棘手的錯誤,出現(xiàn)了結構體變量G的重復定義,經過自己的多次修改,沒有成功,最后在老師的幫助下,將變量的定義從函數(shù)定義里放到了函數(shù)聲明里,成功的修改了那個問題。當然還有一些簡單的語法錯誤,這些錯誤都是比較好改的,在此就不一一列舉了。5 設計體會本次課程設計使我提高了應用計算能力、編寫

24、代碼的基本能力、繪畫流程圖能力,熟悉了規(guī)范和標準,同時對于本設計的課程都有了全面的復習,獨立思考的能力也有了提高。1、當寫第一步需求分析時,本以為是問題的簡單描述,所以寫的比較簡單,但是讓老師驗收沒有通過,經過進一步改進,將問題詳細化了,并正確而準確的描述了校園導游的輸入輸出問題,順利通過第一步的驗收。概要設計還是比較簡單的,畢竟還沒有到算法的描述部分,這一過程很簡單的就通過了,但是自己感覺對主界面的設計不是很滿意,然后幾經思索,設計出了自己較為滿意的界面。當前兩步完成后心里便有壓力了,因為算法描述對我來說真的有點難。我多次查看書籍并上網查詢相關資料,終于把詳細設計部分做好了。在調試程序時有一

25、個很棘手的問題,結構體變量G出現(xiàn)了重復定義,最初在函數(shù)定義的文件中,后來把定義放到了函數(shù)聲明那個文件中才通過了2、 測試數(shù)據(jù):當輸入1時進入一個選擇子菜單(輸入錯誤時,保持原有狀態(tài)),正確輸入起點(2)(燈光籃球場)和終點(4)(實驗樓),屏幕將打印出兩景點之間的最短路徑:燈光籃球場惠馨園實驗樓,最短路徑為約430m。當輸入的景點代號不在(0-9)之間時,程序提示重新輸入,直到輸入正確。測試數(shù)據(jù):當起點輸入10終點輸入12時,景點不存在,程序提示重新輸入;當起點輸入0(教學主樓)終點輸入12時,終點景點不存在,程序提示重新輸入;當起點輸入0(教學樓)終點輸入8(圖書館)時,景點都存在,屏幕打印

26、出兩景點最短路徑:教學樓噴泉學術報告廳圖書館,最短路徑約為200m。當輸入1時,則按景點編號查詢,當輸入6(地球科學博物館)時,屏幕上打印出此景點信息:里面有著名的不尋??铸埢?;當輸入4(實驗樓)時,屏幕上打印出此景點信息:各專業(yè)實驗的重要場地;當輸入12時,此景點不存在,屏幕上顯示:!沒*有*找*到??;當輸入20時,此景點不存在,屏幕上顯示:!沒*有*找*到!。當輸入2時,則按景點名稱查詢,當輸入“圖書館”時,屏幕上打印出此景點信息:圖書館是莘莘學子學習的園地,里面有各科資料,每人可以任借五本書;當輸入“計算機實驗室”時,屏幕上打印出此景點信息:計算機專業(yè)實驗實習場所;當輸入“教學三號樓”

27、時,此景點不存在,屏幕上顯示:!沒*有*找*到??;當在選擇主菜單中輸入3時,則系統(tǒng)推薦旅游路徑:1)教學主樓足球場燈光籃球場惠馨園實驗樓噴泉學術報告廳地球科學博物館計算機實驗室圖書館出口2)教學主樓足球場燈光籃球場惠馨園實驗樓噴泉學術報告廳圖書館計算機實驗室地球科學博物館出口3)教學主樓地球科學博物館計算機實驗室圖書館學術報告廳噴泉實驗樓惠馨園燈光籃球場足球場出口在選擇主菜單輸入錯誤時,程序不作反應,當輸入e時,則退出。本程序的時間復雜度主要發(fā)生在求最短路徑時,即算法里面的for循環(huán)語句,for循環(huán)語句三層嵌套,所以時間復雜度為n3。3、在圖的存儲時本程序采用的鄰接矩陣,也可以采用鄰接表;在求

28、兩景點之間的最短路徑時本程序采用的迪杰斯特拉算法,也可以采用弗洛伊德算法。4、在本次課程設計中讓我進一步熟悉了各種算法的使用,但感到自己在算法設計中還存在很大的不足,寫算法時無法脫離課本,更是需要老師、同學的幫助,甚至有的算法不得不從網上查詢,今后自己將更努力學習這門語言,多接觸解決各種問題的各種算法,這樣才能提高自己。6 致謝非常高興能和同學們一起在實驗室做實驗,感謝各位老師以及同學們對我的幫助,特別是老師循循善誘的教導和不拘一格的思路給予我無盡的啟迪;這次數(shù)據(jù)結構設計的每個實驗細節(jié)和每個數(shù)據(jù),都離不開老師您的細心指導。在您們的幫助下讓我順利完成了這次課程設計。平時注重的理論知識多了些,造成

29、我上機操作遇到了很多困難,但是老師和同學都很熱情的幫助我,在此我表示我誠摯的謝意。7 參考文獻1. 嚴蔚敏數(shù)據(jù)結構(語言版)M清華大學出版社 2008年11月2. 嚴蔚敏數(shù)據(jù)結構題集(語言版)M清華大學出版社 2008年11月3. 何欽銘數(shù)據(jù)結構課程設計M浙江大學出版社 2007年8月18 源程序/daoyouzixunxitong70321.cpp: implementation of the daoyouzixunxitong70321 class.#include "StdAfx70321.h"#include "daoyouzixunxitong70321

30、.h"int x11=0;int PNUMNUM;long int DNUM;MGraph G;daoyouzixunxitong70321:daoyouzixunxitong70321()void daoyouzixunxitong70321:main2()int v0,v1;char ck;CreateUDN70321(NUM,11); /景點個數(shù)加1 /調用CreateUNM()函數(shù)do ck=Menu70321();/調用Menu()switch(ck)case '1':system("cls");narrate70321();/調用nar

31、rate函數(shù)printf("nnttO(_)O 提示:輸入100退出此環(huán)節(jié)n");M:printf("ntt請選擇起點景點(09):"); scanf("%d",&v0); if(v0=100)break; printf("tt請選擇終點景點(09):"); /景點編號 scanf("%d",&v1); if(v0>9|v1>9) printf("nttO(_)O 請重新輸入v0,v1:n"); goto M; ShortestPath70321(

32、v0); /調用ShortestPath()函數(shù) output70321(v0,v1); /調用output()函數(shù) goto M; break;case '2':search70321();/調用search()函數(shù)break;case '3':system("cls");narrate70321();/調用 narrate()函數(shù)x0=1; /此處必須為x0=1 實際為x0=trueHaMiTonian70321(1); /調用哈密爾頓函數(shù) 遍歷應該從第一個景點開始!如果想要修改,必須從HaMiTonian()和NextValue()內部

33、修改printf("nntttt請按Enter繼續(xù).n");getchar();getchar();break;while(ck!='e');void daoyouzixunxitong70321:CreateUDN70321(int v, int a)int i,j;G.vexnum=v; G.arcnum=a;for(i=0;i<G.vexnum;+i) G.vexi.number=i;G.vex0.sight="教學主樓"G.vex0.description="學校領導, * 辦公之地"G.vex1.sig

34、ht="足球場"G.vex1.description="寬闊,非常適合運動"G.vex2.sight="燈光籃球場"G.vex2.description="籃球運動的最佳活動場所"G.vex3.sight="惠馨園"G.vex3.description="石家莊經濟學院惠馨園一、二樓是學生餐飲中心,三樓是教職工餐飲中心,四樓是綜合辦公之地,五樓是文藝文化活動中心"G.vex4.sight="實驗樓"G.vex4.description="各專業(yè)試

35、驗的重要場地"G.vex5.sight="計算機實驗室"G.vex5.description="計算機專業(yè)的實驗實習場所"G.vex6.sight="地球科學博物館"G.vex6.description="里面有著名的不尋??铸埢?quot;G.vex7.sight="學術報告廳"G.vex7.description="學術交流中心"G.vex8.sight="圖書館"G.vex8.description="圖書館是莘莘學子學習的園地,里面有各

36、科資料,每人可以任借五本書"G.vex9.sight="噴泉"G.vex9.description="學校的盛大節(jié)日時就可以看見"for(i=0;i<G.vexnum;+i)for(j=0;j<G.vexnum;+j)G.arcsij.adj=Max;G.arcs01.adj=G.arcs10.adj=50;G.arcs09.adj=G.arcs90.adj=50;G.arcs12.adj=G.arcs21.adj=50;G.arcs23.adj=G.arcs32.adj=130;G.arcs34.adj=G.arcs43.adj=

37、300;G.arcs05.adj=G.arcs50.adj=50;G.arcs25.adj=G.arcs52.adj=100;G.arcs06.adj=G.arcs60.adj=250;G.arcs67.adj=G.arcs76.adj=50;G.arcs49.adj=G.arcs94.adj=500;G.arcs56.adj=G.arcs65.adj=300;G.arcs58.adj=G.arcs85.adj=300;G.arcs78.adj=G.arcs87.adj=50;G.arcs79.adj=G.arcs97.adj=100;void daoyouzixunxitong70321:n

38、arrate70321()int i,k=0;printf("ntt*歡 迎 使 用 校 園 導 游 程 序*n");printf("ntt*石*家*莊*經*濟*學*院*n");printf("ntt制作者: 信息工程學院 1 顏建學 !歡迎您使用!n");printf("ntt_n");printf("ttttt 景點名稱ttn");printf("tt_n");for(i=0;i<NUM;i+)printf("tt 【%2d】%-15stt",i

39、,G.vexi.sight);if(i%2=(NUM-1)%2)printf("n");/奇數(shù)編號景點在右邊,偶數(shù)編號景點在左邊k=k+1;printf("tt_n");void daoyouzixunxitong70321:ShortestPath70321(int num)int v,w,i,t; int finalNUM;int min;for(v=0;v<NUM;v+)finalv=0; Dv=G.arcsnumv.adj;for(w=0;w<NUM;w+)Pvw=0;if(Dv<20000) Pvnum=1;Pvv=1;Dnu

40、m=0; finalnum=1; for(i=0;i<NUM;+i) min=Max; for(w=0;w<NUM;+w)if(!finalw) if(Dw<min) v=w;min=Dw;finalv=1; for(w=0;w<NUM;+w) if(!finalw&&(min+G.arcsvw.adj)<Dw)Dw=min+G.arcsvw.adj;for(t=0;t<NUM;t+)Pwt=Pvt;Pww=1;void daoyouzixunxitong70321:output70321(int sight1, int sight2)int

41、 a,b,c,d,q=0;a=sight2; if(a!=sight1) printf("nttt從( %s )到( %s )的最短路徑是:nn",G.vexsight1.sight,G.vexsight2.sight);printf("ttt%s",G.vexsight1.sight); d=sight1; for(c=0;c<NUM;+c)gate:; Pasight1=0; for(b=0;b<NUM;b+) if(G.arcsdb.adj<20000&&Pab) printf("->%s"

42、;,G.vexb.sight); q=q+1; Pab=0; d=b; if(q%10=0) printf("n"); goto gate; printf("t(最短距離為 %dm.)nt",Da); char daoyouzixunxitong70321:Menu70321()char c;int flag;doflag=1;system("cls");narrate70321(); /調用 narrate()函數(shù)printf("n");printf("tttn");printf("

43、ttt 【1】查詢景點路徑 n");printf("ttt 【2】查詢景點信息 n");printf("ttt 【3】推薦參觀路線 n");printf("ttt 【e】退出 n");printf("tttn");printf("tttt請輸入您的選擇:");scanf("%c",&c);if(c='1'|c='2'|c='3'|c='e')flag=0;while(flag);return c

44、;void daoyouzixunxitong70321:search70321()int num;int i;char c;char name20;char a4="100"dosystem("cls");c=SearchMenu70321(); /調用SearchMenu()函數(shù)switch (c)case '1': system("cls");narrate70321(); /調用 narrate()函數(shù)printf("ntttO(_)O提示:輸入100退出此環(huán)節(jié)n");N: printf(&

45、quot;ntt請輸入您要查找的景點編號:"); scanf("%d",&num); if(num!=100) for(i=0;i<NUM;i+) if(num=G.vexi.number) printf("ntt您要查找景點信息如下:"); printf("nnttt%-25sn",G.vexi.description); break; /if語句 /for語句 if(i=NUM) printf("nttt!沒*有*找*到!n"); /if語句 goto N; /if語句 break;ca

46、se '2':system("cls");narrate70321(); /調用 narrate()函數(shù)printf("ntttO(_)O提示:輸入100退出此環(huán)節(jié)n");S:printf("ntt請輸入您要查找的景點名稱:"); scanf("%s",name); if(!strcmp(name,a)break; for(i=0;i<NUM;i+) if(!strcmp(name,G.vexi.sight) printf("ntt您要查找景點信息如下:"); printf

47、("nnttt%-25sn",G.vexi.description); break; /if語句 /for語句 if(i=NUM) printf("nttt!沒*有*找*到!n"); /if語句 goto S; break;/switch語句while(c!='e');/do while 語句char daoyouzixunxitong70321:SearchMenu70321()char c;int flag;doflag=1;system("cls");narrate70321(); /調用 narrate()函數(shù)

48、printf("n");printf("tttn");printf("ttt 【1】按照景點編號查詢 n");printf("ttt 【2】按照景點名稱查詢 n");printf("ttt 【e】返回 n");printf("tttn");printf("tttt請輸入您的選擇:");scanf("%c",&c);if(c='1'|c='2'|c='e')flag=0;while(

49、flag);return c;void daoyouzixunxitong70321:HaMiTonian70321(int m)if(m>10) return; L: NextValue70321(m);/調用NextValue()函數(shù) if(xm=0) return; if(m=9&&G.arcs0x10-1.adj!=20000)/景點個數(shù)減1 景點個數(shù)加1 display70321();/調用display()函數(shù) else HaMiTonian70321(m+1);/調用HaMiTonian()函數(shù) goto L; void daoyouzixunxitong7

50、0321:NextValue70321(int k)int j; l:xk=(xk+1)%11;/景點個數(shù)加1 if(xk=0) return; if(G.arcsxk-1-1xk-1.adj!=20000) for(j=0;j<k;j+) if(xj=xk) goto l; return; else goto l; void daoyouzixunxitong70321:display70321()int i=0;printf("nn");for(i=0;i<10;i+) / 景點個數(shù)printf("%s->",G.vexxi-1.s

51、ight);printf("校園出口");printf("n");/ 課程設計.cpp : Defines the entry point for the console application./#include "StdAfx70321.h"#include "daoyouzixunxitong70321.h"#define Max 20000#define NUM 10 /景點個數(shù)int main(int argc, char* argv) daoyouzixunxitong70321 A; system(&

52、quot;color 5f");/屬于stdio.hsystem("mode con: cols=100 lines=100");/屬于stdio.hA.main2();return 0;/ daoyouzixunxitong70321.h: interface for the daoyouzixunxitong70321 class.#if !defined(AFX_DAOYOUZIXUNXITONG70321_H_C0CBBABA_ED55_44AF_AEBF_FA64A9_INCLUDED_)#define AFX_DAOYOUZIXUNXITONG70321_H_C0CBBABA_ED55_44AF_AEBF_FA64A9_INCLUDED_#if _MSC_VER > 1000#pragma once#endif / _MSC_VER > 1000#include "stdio.h"#include "stdlib.h"#include "string.h"#define Max 20000#define NUM 10 typedef struct ArcCellint adj;ArcCell;typedef struct VertexTypeint number

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!