




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、濱江學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目校園導(dǎo)游咨詢程序設(shè)計(jì)學(xué)號(hào)學(xué)生姓名院系專業(yè)指導(dǎo)教師二0二年月日1、題目的內(nèi)容及要求設(shè)計(jì)一個(gè)校園導(dǎo)游程序,為來訪的客人提供各種信息查詢服務(wù)。2、需求分析設(shè)計(jì)你的學(xué)校的校園平面圖,所含景點(diǎn)不少于10個(gè)。以圖中頂點(diǎn)表示學(xué)校各景點(diǎn),存放景點(diǎn)名稱、代號(hào)、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。為來訪客人提供圖中任意景點(diǎn)的問路查詢,即查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的一條最短的簡單路徑。為來訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。3、概要設(shè)計(jì)1功能模塊圖;voidCreateUDN();/創(chuàng)建無向網(wǎng)voidSearch();/查詢景點(diǎn)信息voidShortestpath(inti);
2、/計(jì)算最短路徑voidOutput(intsightl,intsight2);/輸出函數(shù)2各個(gè)模塊詳細(xì)的功能描述。CreateUDN();/創(chuàng)建無向網(wǎng)、主要用來保存各景點(diǎn)信息Search();/查詢景點(diǎn)信息、景點(diǎn)的名稱及介紹Shortestpath(inti);/計(jì)算兩景點(diǎn)間最短路徑Output(intsightl,intsight2);/輸出兩景點(diǎn)最短路徑及信息3模塊圖4、詳細(xì)設(shè)計(jì)一、圖的儲(chǔ)存結(jié)構(gòu)#defineMax30000#defineNUM10typedefstructArcCellintadj;/*相鄰接的景點(diǎn)之間的路程*/ArcCell;/*定義邊的類型*/typedefstruc
3、tVertexTypeintnumber;/*景點(diǎn)編號(hào)*/char*sight;/*景點(diǎn)名稱*/char*description;/*景點(diǎn)描述*/VertexType;/*定義頂點(diǎn)的類型*/typedefstructVertexTypevexNUM;/*圖中的頂點(diǎn),即為景點(diǎn)*/ArcCellarcsNUMNUM;/*圖中的邊,即為景點(diǎn)間的距離*/intvexnum,arcnum;/*頂點(diǎn)數(shù),邊數(shù)*/MGraph;/*定義圖的類型二、算法1.主程序voidmain()intv0,v1;charck;CreateUDN(NUM,11);dock=Menu();switch(ck)1case1:sy
4、stem(cls);/narrate();printf(nnttt請(qǐng)選擇起點(diǎn)景點(diǎn)(09):);scanf(%d,&v0);printf(ttt請(qǐng)選擇終點(diǎn)景點(diǎn)(09):);scanf(%d,&v1);ShortestPath(v0);/*計(jì)算兩個(gè)景點(diǎn)之間的最短路徑*/output(v0,v1);/*計(jì)算兩個(gè)景點(diǎn)之間的最短路徑*/printf(nntttt請(qǐng)按任意鍵繼續(xù).n);getchar();getchar();break;case2:search();break;,O5case3:system(cls);/narrate();x0=1;HaMiTonian(1);printf(nntttt請(qǐng)
5、按任意鍵繼續(xù).n);getchar();getchar();break;while(ck!=e);輸出程序voidoutput(intsight1,intsight2)inta,b,c,d,q=0;a=sight2;if(a!=sight1)/*如果景點(diǎn)二不和景點(diǎn)一輸入重合,則進(jìn)行*/printf(nt從%s到%s的最短路徑是,G.vexsight1.sight,G.vexsight2.sight);/*輸出提示信息*/printf(t(最短距離為dm.)nnt,Da);printf(t%s,G.vexsight1.sight);d=sightl;/*將景點(diǎn)一的編號(hào)賦值給d*/for(c=0;
6、cNUM;+c)gate:;Pasightl=0;for(b=0;bNUM;b+)if(G.arcsdb.adj%s,G.vexb.sight);/*輸出此節(jié)點(diǎn)的名稱*/q=q+l;/*計(jì)數(shù)變量加一,滿8控制輸出時(shí)的換行*/Pab=0;d=b;/*將b作為出發(fā)點(diǎn)進(jìn)行下一次循環(huán)輸出,如此反復(fù)*/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;說明函數(shù)voidnarrate()inti,k=0;printf(ntt*歡迎使用校園導(dǎo)游程序*n);printf(ntt*南京信息工程大學(xué)*n);printf
8、(tnprintf(tn);printf(”tt景點(diǎn)名稱tt|t景點(diǎn)描述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、查詢景點(diǎn)信息voidsearch()intnum;inti;charc;charname20;dosystem(cls);c=SearchMenu();switch(c)1case1:system(cls);narrate();printf(nntt請(qǐng)輸入您要查找的景點(diǎn)編號(hào):);scanf(%d
9、,&num);for(i=0;iNUM;i+)if(num=G.vexi.number)printf(nnttt您要查找景點(diǎn)信息如下:);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請(qǐng)輸入您要查找的景點(diǎn)名稱:);scanf(%s,name);f
10、or(i=0;iNUM;i+)if(!strcmp(name,G.vexi.sight)printf(nnttt您要查找景點(diǎn)信息如下:);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、按照景點(diǎn)編號(hào)查詢1n)printf(ttt|2、按照景點(diǎn)名稱查詢1n)printf(ttt|t、返回1n)printf(ttt|1n)printf(tttJn)printf(tttt請(qǐng)輸入您的選擇:);scanf(%c,&c);if(c=1|c=2|c=t)flag=0;while(flag);returnc;5、運(yùn)行結(jié)果及分析系統(tǒng)主界面并科并科KataH并擁H齊齊KKHKXH并井H*|京彳岸自、丁#2土:盼荷陝I上晚會(huì)舉辦她爲(wèi)點(diǎn)名稱;賢點(diǎn)抱述a逼兄門裂2ST3總蛍味_023書圖閱駛息:產(chǎn)任閱學(xué)學(xué)
12、書堂書遷合食翕矍綜老妥-45t789徑忌線胚逼_詢?cè)兯]亠i-1-lts查詢路徑查詢信息景點(diǎn)名冊(cè)東大門冢摟休育館打關(guān)學(xué)生活動(dòng)中心館堂書館堂書ff含食食園圖濱綜老新丈77722245678?請(qǐng)輸入您要查挾的京點(diǎn)編號(hào)=3您要查找爲(wèi)點(diǎn)信息如下,競賽、晚會(huì)舉辦地按任意鍵返回6、收獲及體會(huì)非常高興能和同學(xué)們一起做實(shí)驗(yàn),感謝各位老師以及同學(xué)們對(duì)我的幫助,特別是老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪;這次數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的每個(gè)實(shí)驗(yàn)細(xì)節(jié)和每個(gè)數(shù)據(jù),都離不開老師您的細(xì)心指導(dǎo)。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請(qǐng)選擇起點(diǎn)景點(diǎn)(09):);scanf(%d,&v0);printf(ttt請(qǐng)選擇終點(diǎn)景點(diǎn)(09):);sca
15、nf(%d,&v1);ShortestPath(v0);output(v0,v1);printf(nntttt請(qǐng)按任意鍵繼續(xù).n);getchar();getchar();break;case2:search();break;,O5case3:system(cls);/narrate();x0=1;HaMiTonian(1);printf(nntttt請(qǐng)按任意鍵繼續(xù).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、查詢景點(diǎn)路徑1n)printf(ttt|2、查詢景點(diǎn)信息1n)printf(ttt|3、推薦參觀路線1n)printf(ttt|t、退出1n)printf(ttt|1n)printf(ttt1n)printf(tttt請(qǐng)輸入您的選擇:);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、按照景點(diǎn)編號(hào)查詢In)printf(ttt|2、按照景點(diǎn)名稱查詢In)printf(ttt|t、返回In)printf(ttt|In)printf(tttJn)printf(tttt請(qǐng)輸入您的選擇:);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請(qǐng)輸入您要查找的景點(diǎn)編號(hào):);scan
18、f(%d,&num);for(i=0;iNUM;i+)if(num=G.vexi.number)printf(nnttt您要查找景點(diǎn)信息如下:);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請(qǐng)輸入您要查找的景點(diǎn)名稱:);scanf(%s,nam
19、e);for(i=0;iNUM;i+)if(!strcmp(name,G.vexi.sight)printf(nnttt您要查找景點(diǎn)信息如下:);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二學(xué)校正門。;G.vexl.sight=氣象樓;G.vexl.description二校氣象研究樓。;G.vex2.sight=體育館;G.vex2.description二運(yùn)動(dòng),放松心情;G.vex3.sight=大學(xué)生活動(dòng)中心;G.vex3.description二競賽、晚會(huì)舉辦地;G.vex4.sight二圖書館;G.vex4.description二閱覽,借閱圖書;G.vex5.sight二濱江樓;G.vex5.description二學(xué)習(xí),自習(xí)
21、室;G.vex6.sight=綜合樓;G.vex6.description二學(xué)習(xí),辦公室;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、校園導(dǎo)游程序*n);printf(ntt*南京信息工程大學(xué)*n);printf(tn);printf(tt景點(diǎn)名稱tt|t景點(diǎn)描述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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石家莊試卷小學(xué)英語
- 語文-福建省龍巖市2025年高中畢業(yè)班三月教學(xué)質(zhì)量檢測(龍巖一檢)試題和答案
- 盤錦水洗石施工方案
- 綠化駁岸施工方案
- 紅外報(bào)警系統(tǒng)施工方案
- 2025年蒙氏數(shù)學(xué)區(qū)別上下標(biāo)準(zhǔn)教案
- 2025屆山東省泰安市肥城市中考適應(yīng)性考試生物試題含解析
- 取消銷售合同范本
- 合伙餐飲合同范例多人
- 2013版裝修合同范例
- 【MOOC】中國傳統(tǒng)藝術(shù)-篆刻、書法、水墨畫體驗(yàn)與欣賞-哈爾濱工業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 寧德新能源verify測試題庫
- 中國兒童呼吸道合胞病毒感染診療及預(yù)防指南(2024)解讀
- 本科畢業(yè)生登記表自我鑒定范文(8篇)
- 腦梗塞的急救護(hù)理
- 二零二四年度幼兒園學(xué)生午餐配送合同
- 讀后續(xù)寫+摯友離別:不舍與成長交織的瞬間+講義 高一上學(xué)期期中聯(lián)考英語試題
- 2024中華人民共和國學(xué)前教育法學(xué)習(xí)解讀課件
- 2024-2030年中國飾面板行業(yè)發(fā)展?fàn)顩r及前景趨勢(shì)研究報(bào)告
- 企業(yè)智能云盤方案之AI知識(shí)庫應(yīng)用
- 春季傳染病預(yù)防課件動(dòng)態(tài)課件
評(píng)論
0/150
提交評(píng)論