




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、濱江學院數據結構課程設計題 目校園導游咨詢程序設計學 號學生姓名院 系專 業指導教師0二年 月 日1題目的內容及要求設計一個校園導游程序,為來訪的客人提供各種信息查詢服務。2、需求分析(1) 設計你的學校的校園平面圖,所含景點不少于io個。以圖中頂點表示學校各景點,存 放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關信息。(2) 為來訪客人提供圖中任意景點的問路查詢,即查詢任意兩個景點之間的一條最短的簡 單路徑。(3) 為來訪客人提供圖中任意景點相關信息的查詢。3、概要設計1 功能模塊圖;void CreateUDN(); 創建無向網void Search。;/查詢景點信息voi
2、d Shortestpath( int i);/計算最短路徑void Output( int sight1,i nt sigh t2);/輸出函數2 各個模塊詳細的功能描述。CreateUDN();/創建無向網、主要用來保存各景點信息Search();/查詢景點信息、景點的名稱及介紹Shortestpath(i nt i);/計算兩景點間最短路徑Output。nt sight1,i nt sight2);/輸出兩景點最短路徑及信息3.模塊圖4、詳細設計、圖的儲存結構#defi ne Max 30000#define NUM 10typedef struct ArcCell|int adj; /
3、*相鄰接的景點之間的路程 */ArcCell;/*定義邊的類型 */typedef struct VertexTypeint nu mber; /*景點編號*/char *sight; /*景點名稱*/char *descripti on ;/*景點描述 */VertexType; /*定義頂點的類型*/typedef structVertexType vexNUM;/* 圖中的頂點,即為景點*/ArcCell arcsNUMNUM;/*圖中的邊,即為景點間的距離*/int vexnu m,arc num;/*頂點數,邊數 */MGraph;/* 定義圖的類型、算法1.主程序void mai
4、n()in t v0,v1;char ck;CreateUDN(NUM,11);dock=Me nu();switch(ck)case '1':system("cls");/ n arrate();printf("nnttt請選擇起點景點(09):");sca nf("%d",&v0);printf("ttt請選擇終點景點(09):");sca nf("%d",&v1);ShortestPath(v0);/*計算兩個景點之間的最短路徑*/output(v0,v1)
5、;/*計算兩個景點之間的最短路徑*/printf("nntttt請按任意鍵繼續.n");getchar();getchar();break;case 2:search();break;case 3:system("cls");n arrate();x0=1;HaMiTo nia n(1);printf("nntttt請按任意鍵繼續.n");getchar();getchar();break;while(ck!='e');2輸出程序void output(i nt sight1,i nt sight2) int a,b,
6、c,d,q=0;a=sight2;if(a!=sight1) /*如果景點二不和景點一輸入重合,則進行*/prin tf("nt從 %s 到 %s 的 最 短 路 徑”,G.vexsight1.sight,G.vexsigh t2.sight);/*輸出提示信息*/printf("t(最短距離為 %dm.)nnt",Da);prin tf("t%s",G.vexsight1.sight);d=sight1;/*將景點一的編號賦值給d */for(c=0;c<NUM;+c)gate:;Pasight1=O;for(b=0;b<NUM;
7、b+)if(G.arcsdb.adj<30000&&Pab) /*如果景點一和它的一個臨界點之間存在路徑且最短路徑*/prin tf("->%s",G.vexb.sight); /*輸出此節點的名稱*/q=q+1; /*計數變量加一,滿i 8控制輸出時的換行*/Pab=0;d=b;/* 將b作為出發點進行下一次循環輸出,如此反復*/if(q%9=0) prin tf("n"); goto gate;3.求最短路徑void ShortestPath(i nt num) int v,w,i,t;int fin alNUM;int
8、min;for(v=0;v<NUM;v+)fin alv=O;Dv=G.arcs nu mv.adj; for(w=0;w<NUM;w+)Pvw=O; if(Dv<30000)Pv num=1;Pvv=1;Dnu m=0;fin al num =1;for(i=0;i<NUM;+i)min=Ma x;for(w=0;w<NUM;+w)if(!fi nalw)|if(Dw<mi n)v=w;min=Dw;fin alv=1;for(w=0;w<NUM;+w)if(!fi nalw &&(mi n+G.arcsvw.adj)<Dw)
9、Dw=mi n+G.arcsvw.adj;for(t=0;t<NUM;t+)Pwt=Pvt;Pww=1;4.說明函數void n arrate()int i,k=0;printf("ntt*歡迎使用校園導游程序*n");printf("ntt*南京信息工程大學*n");prin tf("tn");prin tf("tt景點名稱tt|t景點描述n");prin tf("t|n");for(i=0;i<NUM;i+)prin tf("t(%2d)%-10sttt|t%-25sn
10、",i,G.vexi.sight,G.vexi.descriptio n); k=k+1;printf("t|n");5、查詢景點信息void search()int num;int i;char c;char n ame20;dosystem("cls");c=SearchMe nu();switch (c)case '1':system("cls");n arrate();prin tf("nntt請輸入您要查找的景點編號:”);sca nf("%d",&n um);
11、for(i=0;i<NUM;i+)if(num=G.vexi. nu mber)prin tf("nnttt您要查找景點信息如下:");prin tf("nnttt%-25snn",G.vexi.descriptio n);printf("nttt按任意鍵返回.");getchar();getchar();break;if(i=NUM)prin tf("nnttt沒有找到! ”);printf("nnttt按任意鍵返回.");getchar();getchar();break;case 2:n ar
12、rate();system("cls");prin tf("nntt請輸入您要查找的景點名稱:");sca nf("%s", name);for(i=0;i<NUM;i+)if(!strcmp( name,G.vexi.sight)丄prin tf("nnttt您要查找景點信息如下:”);prin tf("nnttt%-25snn",G.vexi.descriptio n);prin tf("nttt按任意鍵返回.");getchar();getchar();break;if(i
13、=NUM)prin tf("nnttt沒有找到! ”);printf("nnttt按任意鍵返回.");getchar();getchar();break;while(c!='t'); |6.選擇菜單char SearchMe nu()char c;int flag;doflag=1; system("cls"); n arrate();t i1n");tn");t1 、按照景點編號查詢1 n ”);t2 、按照景點名稱查詢n ”);tt、返回1 n ”);t1n ”);t 11n ”);prin tf(&qu
14、ot;tttt請輸入您的選擇:");scan f("%c",&c);if(c='1'|c='2'|c='t')flag=0;while(flag);return c;5、運行結果及分析系統主界面懸點名稱大善學東氣體大> ,>0 12 3查詢路徑遢左亠堂書圖濱綜老箜4 S 6 7 8 ?圖室室閱 & 魯育閑休 ;漳“ 覽rvp讐徑息線 .蠱參 詢粵出 查查叢請輸入您的選擇:.查詢信息號(D : 8景點(0乎):9從新食堂到文園的最短路徑是距離為1*.->新食堂一> 文園請按任意鍵
15、繼續.訊fr南歳信息."T程大學耳耳耳値恤:M:K :耳屛*量點描述、晩會舉辦地大象; 東氣體大 > > > > 0 12 3 £ < £ £活動中心館豐呈堂 書VI合良食園 圖濱綜老箜 >>>>>>-4 5 6 7 8 9請輸入您要查枚的量點編號:3您要查找暈點信息如下:競賽、晩會舉辦地按任意鍵返回.6、收獲及體會非常高興能和同學們一起做實驗,感謝各位老師以及同學們對我的幫助,特別是老師循循善誘的教導和不拘一格的思路給予我無盡的啟迪;這次數據結構設計的每個實驗細節和每個數據,都離不開老師
16、您的細心指導。7、源代碼#in elude "stri ng.h"#in elude "stdio.h"#in elude "malloe.h"#in elude "stdlib.h" #define Max 30000 #define NUM 10 typedef struct AreCell int adj;ArcCell;typedef struct VertexTypeint nu mber;char *sight;char *descripti on;VertexType;typedef structVe
17、rtexType vexNUM;ArcCell arcsNUMNUM;int vexnu m,arc num;MGraph;MGraph G;int PNUMNUM;long int DNUM;int x9=0;void CreateUDN(i nt v,i nt a);void n arrate();void ShortestPath(i nt nu m);void output(i nt sight1,i nt sight2);char Menu();void search();char SearchMe nu();void HaMiTo nia n(i nt);void NextValu
18、e(i nt);void display();void mai n()in t v0,v1;char ck;CreateUDN(NUM,11);dock=Me nu();switch(ck)case '1':system("cls");09):");/ n arrate();prin tf("nnttt請選擇起點景點(sca nf("%d",&v0);printf("ttt請選擇終點景點(09):");sea nf("%d",&v1);ShortestPath(v
19、O);output(v0,v1);printf("nntttt請按任意鍵繼續.n");getchar();getchar();break;case 2:search();break;case 3:system("cls");n arrate();x0=1;HaMiTo nia n(1);printf("nntttt請按任意鍵繼續.n");getchar();getchar();break;while(ck!='e');char Me nu()char c;int flag;doflag=1;system("c
20、ls");n arrate();t 11n");111n ”);111、查詢景點路徑1 n ”);112、查詢景點信息1 n ”);113、推薦參觀路線1 n ”);11t、退出1 n ”);111n ”);t L-1n");prin tf("tttt請輸入您的選擇:");scan f("%c",&c);if(c='1'|c=2|c=3|c='t')flag=0;while(flag); return c; char SearchMe nu() char c;int flag;dofl
21、ag=1;system("cls");n arrate();t1n");111n ”);111、按照景點編號查詢1 n ”);112、按照景點名稱查詢1 n ”);11t、返回1 n ”);111n ”);t L-n");prin tf("tttt請輸入您的選擇:”);scan f("%c",&c);if(c='1'|c='2'|c='t')flag=0;while(flag);return c;void search()int num;int i;char c;cha
22、r n ame20;dosystem("cls");c=SearchMe nu();switch (c)case '1':system("cls");n arrate();prin tf("nntt請輸入您要查找的景點編號:");sca nf("%d",&n um);for(i=0;i<NUM;i+)if(num=G.vexi. nu mber)prin tf("nnttt您要查找景點信息如下:”);prin tf("nnttt%-25snn",G.vex
23、i.descriptio n);printf("nttt按任意鍵返回.");getchar();getchar();break;if(i=NUM)prin tf("nnttt沒有找到! ”);printf("nnttt按任意鍵返回.");getchar();getchar();break;case '2':n arrate();system("cls");prin tf("nntt請輸入您要查找的景點名稱:");sca nf("%s", name);for(i=0;i&
24、lt;NUM;i+)if(!strcmp( name,G.vexi.sight)prin tf("nnttt您要查找景點信息如下:");prin tf("nnttt%-25snn",G.vexi.descriptio n);printf("nttt按任意鍵返回.");getchar();getchar();break;if(i=NUM)prin tf("nnttt沒有找到! ”);printf("nnttt按任意鍵返回.");getchar();getchar();break;while(c!='
25、t');void CreateUDN(i nt v,i nt a)int i,j;G.vex num=v;G.arc num=a;for(i=0;i<G.vex nu m;+i) G.vexi. nu mber=i;G.vexO.sight="東大門"G.vex0.descriptio n="學校正門。"G.vex1.sight="氣象樓"G.vex1.descriptio n="校氣象研究樓。"G.vex2.sight="體育館"G.vex2.description="
26、運動,放松心情"G.vex3.sight="大學生活動中心"G.vex3.descriptio n="競賽、晚會舉辦地”G.vex4.sight="圖書館"G.vex4.description="閱覽,借閱圖書"G.vex5.sight="濱江樓"G.vex5.description="學習,自習室"G.vex6.sight="綜合樓"G.vex6.description="學習,辦公室"G.vex7.sight="老食堂&q
27、uot;G.vex7.description="餐飲休閑"G.vex8.sight="新食堂"G.vex8.description="餐飲休閑"G.vex9.sight="文園"G.vex9.descriptio n="宿舍,休息";for(i=0;i<G.vex nu m;+i)for(j=0;j<G.vex nu m;+j) G.arcsij.adj=Max;G.arcs01.adj=G.arcs10.adj=2;G.arcs02.adj=G.arcs20.adj=1;G.arc
28、s03.adj=G.arcs30.adj=7;G.arcs14.adj=G.arcs41.adj=8;G.arcs24.adj=G.arcs42.adj=9;G.arcs35.adj=G.arcs53.adj=5;G.arcs57.adj=G.arcs75.adj=2;G.arcs46.adj=G.arcs64.adj=3;G.arcs47.adj=G.arcs74.adj=2;G.arcs68.adj=G.arcs86.adj=2;G.arcs78.adj=G.arcs87.adj=1;G.arcs89.adj=G.arcs98.adj=1;void n arrate()int i,k=0;
29、歡迎使用校園導游程序*n");南京信士息工程大學 *n")n"prin tf("ntt* *prin tf("ntt* * prin tf("t_);景點名稱tt|t景點描述n");prin tf("ttn"printf("t|);for(i=0;i<NUM;i+)prin tf("t(%2d)%-10sttt|t%-25sn",i,G.vexi.sight,G.vexi.descriptio n); k=k+1;printf("t|n");void
30、 ShortestPath(i nt num)int v,w,i,t;int fin alNUM;int min;for(v=0;v<NUM;v+)fin alv=0;Dv=G.arcs nu mv.adj;for(w=0;w<NUM;w+)Pvw=0;if(Dv<30000)Pv num=1;Pvv=1;Dnu m=0;fin al num =1;for(i=0;i<NUM;+i)min=Ma x;for(w=0;w<NUM;+w)if(!fi nalw)if(Dw<mi n)v=w;min=Dw;fin alv=1;for(w=0;w<NUM;+w)if(!fi nalw &&(mi n+G.arcsvw.adj)<Dw)Dw=mi n+G.arcsvw.adj;for(t=0;t<NUM;t+)Pwt=Pvt;Pww=1;void output(i nt si
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年教育領域對微生物的要求試題及答案
- 項目管理中的外部合作與網絡關系試題及答案
- 證券從業資格證考試專業見解試題及答案
- 項目團隊協作中的有效機制試題及答案
- 2024年行政管理師考試考前沖刺試題及答案
- 2024年項目管理專業能力提升試題及答案
- 2025年審計法規遵循試題及答案
- 綠化種植施肥方案范本
- 風險與收益的平衡在2025年證券考試中的重要性試題及答案
- 玻璃生產與應用技術考核試卷
- 變壓器、發電機容量計算
- 寧波市建設工程資料統一用表(2022版)1 通用分冊
- 口腔科診斷證明書模板
- 中考物理“極值”與“取值范圍”問題專題訓練
- 2009年安徽省中考化學試卷【含答案可編輯】
- 越南工業到2025年發展戰略及到2035發展展望(提到鋼鐵)
- 河北省用人單位錄用人員身份核查登記表
- 《給教師的100條建議》電子書
- 老視的機制及治療的研究進展
- VDA6.3的P2-7條款
- 工程聯系單表格(模板)
評論
0/150
提交評論