數據結構校園導游系統課程設計_第1頁
數據結構校園導游系統課程設計_第2頁
數據結構校園導游系統課程設計_第3頁
數據結構校園導游系統課程設計_第4頁
數據結構校園導游系統課程設計_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、濱江學院數據結構課程設計題目校園導游咨詢程序設計學號學生姓名院系專業指導教師二0二年月日1、題目的內容及要求設計一個校園導游程序,為來訪的客人提供各種信息查詢服務。2、需求分析設計你的學校的校園平面圖,所含景點不少于10個。以圖中頂點表示學校各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關信息。為來訪客人提供圖中任意景點的問路查詢,即查詢任意兩個景點之間的一條最短的簡單路徑。為來訪客人提供圖中任意景點相關信息的查詢。3、概要設計1功能模塊圖;voidCreateUDN();/創建無向網voidSearch();/查詢景點信息voidShortestpath(inti);

2、/計算最短路徑voidOutput(intsightl,intsight2);/輸出函數2各個模塊詳細的功能描述。CreateUDN();/創建無向網、主要用來保存各景點信息Search();/查詢景點信息、景點的名稱及介紹Shortestpath(inti);/計算兩景點間最短路徑Output(intsightl,intsight2);/輸出兩景點最短路徑及信息3模塊圖4、詳細設計一、圖的儲存結構#defineMax30000#defineNUM10typedefstructArcCellintadj;/*相鄰接的景點之間的路程*/ArcCell;/*定義邊的類型*/typedefstruc

3、tVertexTypeintnumber;/*景點編號*/char*sight;/*景點名稱*/char*description;/*景點描述*/VertexType;/*定義頂點的類型*/typedefstructVertexTypevexNUM;/*圖中的頂點,即為景點*/ArcCellarcsNUMNUM;/*圖中的邊,即為景點間的距離*/intvexnum,arcnum;/*頂點數,邊數*/MGraph;/*定義圖的類型二、算法1.主程序voidmain()intv0,v1;charck;CreateUDN(NUM,11);dock=Menu();switch(ck)1case1:sy

4、stem(cls);/narrate();printf(nnttt請選擇起點景點(09):);scanf(%d,&v0);printf(ttt請選擇終點景點(09):);scanf(%d,&v1);ShortestPath(v0);/*計算兩個景點之間的最短路徑*/output(v0,v1);/*計算兩個景點之間的最短路徑*/printf(nntttt請按任意鍵繼續.n);getchar();getchar();break;case2:search();break;,O5case3:system(cls);/narrate();x0=1;HaMiTonian(1);printf(nntttt請

5、按任意鍵繼續.n);getchar();getchar();break;while(ck!=e);輸出程序voidoutput(intsight1,intsight2)inta,b,c,d,q=0;a=sight2;if(a!=sight1)/*如果景點二不和景點一輸入重合,則進行*/printf(nt從%s到%s的最短路徑是,G.vexsight1.sight,G.vexsight2.sight);/*輸出提示信息*/printf(t(最短距離為dm.)nnt,Da);printf(t%s,G.vexsight1.sight);d=sightl;/*將景點一的編號賦值給d*/for(c=0;

6、cNUM;+c)gate:;Pasightl=0;for(b=0;bNUM;b+)if(G.arcsdb.adj%s,G.vexb.sight);/*輸出此節點的名稱*/q=q+l;/*計數變量加一,滿8控制輸出時的換行*/Pab=0;d=b;/*將b作為出發點進行下一次循環輸出,如此反復*/if(q%9=0)printf(n);gotogate;求最短路徑voidShortestPath(intnum)intv,w,i,t;intfinalNUM;intmin;for(v=0;vNUM;v+)finalv=0;Dv=G.arcsnumv.adj;for(w=0;wNUM;w+)Pvw=0;i

7、f(Dv30000)Pvnum=1;Pvv=1;Dnum=0;finalnum=1;for(i=0;iNUM;+i)min=Max;for(w=0;wNUM;+w)if(!finalw)if(Dwmin)v=w;min=Dw;finalv=1;for(w=0;wNUM;+w)if(!finalw&(min+G.arcsvw.adj)Dw)Dw=min+G.arcsvw.adj;for(t=0;tNUM;t+)Pwt=Pvt;Pww=1;說明函數voidnarrate()inti,k=0;printf(ntt*歡迎使用校園導游程序*n);printf(ntt*南京信息工程大學*n);printf

8、(tnprintf(tn);printf(”tt景點名稱tt|t景點描述n);printf(t|n);for(i=0;iNUM;i+)printf(t(%2d)%-10sttt|t%-25sn,i,G.vexi.sight,G.vexi.description);k=k+1;printf(t|n);5、查詢景點信息voidsearch()intnum;inti;charc;charname20;dosystem(cls);c=SearchMenu();switch(c)1case1:system(cls);narrate();printf(nntt請輸入您要查找的景點編號:);scanf(%d

9、,&num);for(i=0;iNUM;i+)if(num=G.vexi.number)printf(nnttt您要查找景點信息如下:);printf(nnttt%-25snn,G.vexi.description);printf(nttt按任意鍵返回.);getchar();getchar();break;if(i=NUM)printf(nnttt沒有找到!);printf(nnttt按任意鍵返回.);getchar();getchar();break;case2:narrate();system(cls);printf(nntt請輸入您要查找的景點名稱:);scanf(%s,name);f

10、or(i=0;iNUM;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按任意鍵返回.);getchar();getchar();break;while(c!=t);選擇菜單charSearchMenu()charc;intflag;doflag=1;system(cls);nar

11、rate();printf(nttt1n);printf(ttt|1n)printf(ttt|1、按照景點編號查詢1n)printf(ttt|2、按照景點名稱查詢1n)printf(ttt|t、返回1n)printf(ttt|1n)printf(tttJn)printf(tttt請輸入您的選擇:);scanf(%c,&c);if(c=1|c=2|c=t)flag=0;while(flag);returnc;5、運行結果及分析系統主界面并科并科KataH并擁H齊齊KKHKXH并井H*|京彳岸自、丁#2土:盼荷陝I上晚會舉辦她爲點名稱;賢點抱述a逼兄門裂2ST3總蛍味_023書圖閱駛息:產任閱學學

12、書堂書遷合食翕矍綜老妥-45t789徑忌線胚逼_詢詢薦亠i-1-lts查詢路徑查詢信息景點名冊東大門冢摟休育館打關學生活動中心館堂書館堂書ff含食食園圖濱綜老新丈77722245678?請輸入您要查挾的京點編號=3您要查找爲點信息如下,競賽、晚會舉辦地按任意鍵返回6、收獲及體會非常高興能和同學們一起做實驗,感謝各位老師以及同學們對我的幫助,特別是老師循循善誘的教導和不拘一格的思路給予我無盡的啟迪;這次數據結構設計的每個實驗細節和每個數據,都離不開老師您的細心指導。7、源代碼#includestring.h#includestdio.h#includemalloc.h#includestdlib

13、.h#defineMax30000#defineNUM10typedefstructArcCellintadj;ArcCell;typedefstructVertexTypeintnumber;char*sight;char*description;VertexType;typedefstructVertexTypevexNUM;ArcCellarcsNUMNUM;intvexnum,arcnum;MGraph;MGraphG;intPNUMNUM;longintDNUM;intx9=0;voidCreateUDN(intv,inta);voidnarrate();voidShortestPa

14、th(intnum);voidoutput(intsight1,intsight2);charMenu();voidsearch();charSearchMenu();voidHaMiTonian(int);voidNextValue(int);voiddisplay();voidmain()intv0,v1;charck;CreateUDN(NUM,11);dock=Menu();switch(ck)1case1:system(cls);/narrate();printf(nnttt請選擇起點景點(09):);scanf(%d,&v0);printf(ttt請選擇終點景點(09):);sca

15、nf(%d,&v1);ShortestPath(v0);output(v0,v1);printf(nntttt請按任意鍵繼續.n);getchar();getchar();break;case2:search();break;,O5case3:system(cls);/narrate();x0=1;HaMiTonian(1);printf(nntttt請按任意鍵繼續.n);getchar();getchar();break;while(ck!=e);charMenu()charc;intflag;doflag=1;system(cls);narrate();printf(”nttt1n);pr

16、intf(ttt|1n)printf(ttt|1、查詢景點路徑1n)printf(ttt|2、查詢景點信息1n)printf(ttt|3、推薦參觀路線1n)printf(ttt|t、退出1n)printf(ttt|1n)printf(ttt1n)printf(tttt請輸入您的選擇:);scanf(%c,&c);if(c=1|c=2|c=3|c=t)flag=0;while(flag);returnc;charSearchMenu()charc;intflag;doflag=1;system(cls);narrate();printf(nttt1n);printf(ttt|In)printf(

17、ttt|1、按照景點編號查詢In)printf(ttt|2、按照景點名稱查詢In)printf(ttt|t、返回In)printf(ttt|In)printf(tttJn)printf(tttt請輸入您的選擇:);scanf(%c,&c);if(c=1|c=2|c=t)flag=0;while(flag);returnc;voidsearch()intnum;inti;charc;charname20;dosystem(cls);c=SearchMenu();switch(c)1case1:system(cls);narrate();printf(nntt請輸入您要查找的景點編號:);scan

18、f(%d,&num);for(i=0;iNUM;i+)if(num=G.vexi.number)printf(nnttt您要查找景點信息如下:);printf(nnttt%-25snn,G.vexi.description);printf(nttt按任意鍵返回.);getchar();getchar();break;if(i=NUM)printf(nnttt沒有找到!);printf(nnttt按任意鍵返回.);getchar();getchar();break;case2:narrate();system(cls);printf(nntt請輸入您要查找的景點名稱:);scanf(%s,nam

19、e);for(i=0;iNUM;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按任意鍵返回.);getchar();getchar();break;while(c!=t);voidCreateUDN(intv,inta)inti,j;G.vexnum=v;G.arcnum=a;f

20、or(i=0;iG.vexnum;+i)G.vexi.number=i;G.vexO.sight二東大門;G.vexO.description二學校正門。;G.vexl.sight=氣象樓;G.vexl.description二校氣象研究樓。;G.vex2.sight=體育館;G.vex2.description二運動,放松心情;G.vex3.sight=大學生活動中心;G.vex3.description二競賽、晚會舉辦地;G.vex4.sight二圖書館;G.vex4.description二閱覽,借閱圖書;G.vex5.sight二濱江樓;G.vex5.description二學習,自習

21、室;G.vex6.sight=綜合樓;G.vex6.description二學習,辦公室;G.vex7.sight=老食堂;G.vex7.description二餐飲休閑;G.vex8.sight=新食堂;G.vex8.description二餐飲休閑;G.vex9.sight=文園;G.vex9.description二宿舍,休息;for(i=0;iG.vexnum;+i)for(j=0;jG.vexnum;+j)G.arcsij.adj=Max;G.arcs01.adj=G.arcs10.adj=2;G.arcs02.adj=G.arcs20.adj=1;G.arcs03.adj=G.ar

22、cs30.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;voidnarrate()inti,k=0;printf(ntt*歡迎使用

23、校園導游程序*n);printf(ntt*南京信息工程大學*n);printf(tn);printf(tt景點名稱tt|t景點描述n);printf(t|n);for(i=0;iNUM;i+)printf(t(%2d)%-10sttt|t%-25sn,i,G.vexi.sight,G.vexi.description);k=k+1;printf(t|n);voidShortestPath(intnum)intv,w,i,t;intfinalNUM;intmin;for(v=0;vNUM;v+)finalv=0;Dv=G.arcsnumv.adj;for(w=0;wNUM;w+)Pvw=0;if(Dv30000)Pvnum=1;Pvv=1;Dnum=0;finalnum=1;for(i=0;iNUM;+i)min=Max;for(w=0;wNUM;+w)if(!finalw)if(Dwmin)v=w;min=Dw;finalv=1;for(w=0;wNUM;+w)if(!finalw&(min+G.arcsvw.adj)Dw)Dw=min+G.arcsvw.adj;for(

溫馨提示

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

評論

0/150

提交評論