大數(shù)據(jù)結(jié)構(gòu)校園導(dǎo)游系統(tǒng)課程設(shè)計_第1頁
大數(shù)據(jù)結(jié)構(gòu)校園導(dǎo)游系統(tǒng)課程設(shè)計_第2頁
大數(shù)據(jù)結(jié)構(gòu)校園導(dǎo)游系統(tǒng)課程設(shè)計_第3頁
大數(shù)據(jù)結(jié)構(gòu)校園導(dǎo)游系統(tǒng)課程設(shè)計_第4頁
大數(shù)據(jù)結(jié)構(gòu)校園導(dǎo)游系統(tǒng)課程設(shè)計_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、實用標準力然Q分娉濱江學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題 目 校園導(dǎo)游咨詢程序設(shè)計學(xué) 號學(xué)生姓名院 系專 業(yè)指導(dǎo)教師二0一二年 月 日1、題目的內(nèi)容及要求設(shè)計一個校園導(dǎo)游程序,為來訪的客人提供各種信息查詢服務(wù)。2、需求分析(1)設(shè)計你的學(xué)校的校園平面圖,所含景點不少于 io個。以圖中頂點表示學(xué)校各景點,存 放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。(2)為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的一條最短的簡 單路徑。(3)為來訪客人提供圖中任意景點相關(guān)信息的查詢。3、概要設(shè)計void CreateUDN();/ 創(chuàng)建無向網(wǎng)void Search。;/查詢景點信

2、息void Shortestpath(int i);計算最短路徑void Output(int sight1,int sight2);/輸出函數(shù)2.各個模塊詳細的功能描述。CreateUDN();/創(chuàng)建無向網(wǎng)、主要用來保存各景點信息Search();/查詢景點信息、景點的名稱及介紹Shortestpath(int i);/計算兩景點間最短路徑Output(int sight1,int sight2);/輸出兩景點最短路徑及信息文案大全3.模塊圖4、詳細設(shè)計一、圖的儲存結(jié)構(gòu)#define Max 30000#define NUM 10typedef struct ArcCellint adj;

3、/*相鄰接的景點之間的路程*/ArcCell; /* 定義邊的類型 */typedef struct VertexTypeint number; /* 景點編號 */char *sight; /*景點名稱*/char "description;/*景點描述*/VertexType; /*定義頂點的類型 */ typedef structVertexType vexNUM; /*圖中的頂點,即為景點 */ArcCell arcsNUMNUM;/* 圖中的邊,即為景點間的距離*/int vexnum,arcnum;/* 頂點數(shù),邊數(shù) */ MGraph; /* 定義圖的類型二、算法1 .

4、主程序 void main() int v0,v1; char ck;CreateUDN(NUM,11); do ck=Menu(); | switch(ck) case '1': system("cls"); / narrate。; printf("nnttt請選擇起點景點(09):");scanf("%d",&v0);printf("ttt請選擇終點景點(。9):");scanf("%d",&v1);ShortestPath(v0);/*計算兩個景點之間的最短

5、路徑*/output(v0,v1);/*計算兩個景點之間的最短路徑*/printf("nntttt請按任意鍵繼續(xù)n");getchar();getchar();break; |case '2':search();break;case '3':system("cls");/narrate。;x0=1;HaMiTonian;printf("nntttt請按任意鍵繼續(xù)n");getchar(); getchar(); break; | ;while(ck!='e');2 .輸出程序void o

6、utput(int sight1,int sight2)int a,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=sight1; /*將景點一的編號賦值給d */for(c=0;c<NUM;

7、+c) gate:;Pasight1=0;for(b=0;b<NUM;b+)if(G.arcsdb.adj<30000&&Pab)/*如果景點一和它的一個臨界點之間存在路徑且最短路徑*/printf("->%s",G.vexb.sight); /*輸出此節(jié)點的名稱 */q=q+1; /*計數(shù)變量加一,滿 8控制輸出時的換行*/Pab=0;d=b;/* 將b作為出發(fā)點進行下一次循環(huán)輸出,如此反復(fù)*/if(q%9=0) printf("n");goto gate;匚3 .求最短路徑void ShortestPath(int

8、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<30000)Pvnum=1;Pvv=1;Dnum=0;finalnum=1;for(i=0;i<NUM;+i)min=Max;for(w=0;w<NUM;+w)if(!finalw)if(Dw<min)1v=w;min=Dw;finalv=1;for(w=0;w<NUM;+w)if(!finalw&&(min+

9、G.arcsvw.adj)<Dw)二 ZlDw=min+G.arcsvw.adj;for(t=0;t<NUM;t+)Pwt=Pvt;Pww=1;二 口4 .說明函數(shù) void narrate()'int i,k=0;printf("ntt*歡迎使用校園導(dǎo)游程序*n)printf("ntt*南京信息工程大學(xué)*n");printf("tn");printf("皿景點名稱tt|t 景點描述n");printf("t|n");for(i=0;i<NUM;i+)printf("t

10、(%2d)%-10sttt|t%-25sn",i,G.vexi.sight,G.vexi.description);k=k+1; printf("t|n");5、查詢景點信息void search()int num;int i;char c;char name20;dosystem("cls");c=SearchMenu();switch (c)case '1':system("cls");narrate();printf("nntt請輸入您要查找的景點編號:");scanf("

11、%d",&num);for(i=0;i<NUM;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;case 

12、9;2':narrate。;system("cls");printf("nntt請輸入您要查找的景點名稱:");scanf("%s",name);for(i=0;i<NUM;i+)if(!strcmp(name,G.vexi.sight)printf("nnttt您要查找景點信息如下:”);printf("nnttt%-25snn",G.vexi.description);printf("nttt按任意鍵返回.”);getchar();getchar();break;二匚 if(i

13、=NUM) printf("nnttt沒有找到! ");printf("nnttt按任意鍵返回.”);getchar();getchar(); break;while(c!='t'); |6.選擇菜單char SearchMenu()char c;int flag;doflag=1;system("cls");narrate();printf("nttt n");printf("ttt11 n");printf("tttI 1、按照景點編號查詢1 n");printf(

14、"tttI 2、按照景點名稱查詢1 n");printf("tttI t、返回1 n");printf("ttt11 n");printf("ttt11n");printf("tttt請輸入您的選擇:");scanf("%c",&c);if(c='1'|c='2'|c='t')|flag=0;while(flag);return c;5、運行結(jié)果及分析系統(tǒng)主界面1昔甘:1;111甘:1國11 葡幀:1前南京信息"

15、;|"程大學(xué)1(:1*1«)011 "1甘有藺1景點名稱f 景點描述大耆學(xué)東氣體大7 7 7 70 12 3館堂 書江4爸 圖演綜需要 7 7 7 7,7 4 S 6 7 8 9 <<££££書圖室室閱患 普普閑休 ,:球. 覽rvp挈占工癰 ,曼塞 詢W出 查查普請輸入您的選擇:.查詢路徑請選擇起點意點3)i, 4請選靠終點熹點耳“ 1 8從圖書館到新食堂的最短路徑是最短距離為21麗C圖書館一 老食堂一 新食堂請按任意鍵繼續(xù)-(T); H(09): 9從新食堂到文園的最短路徑是工最簿距離為I*-新食堂一, 文園

16、請按任意鍵繼續(xù).查詢信息大家,東氣體大> > > >0 12 3< < < <活動中心館營呈堂書江合食食園圖濱綜老要>>>>>>4 5 6 7 8 9請輸入您要查找的景點編號13您要查找景點信息如下: 競賽、晚會舉辦地按任意鍵返回6、收獲及體會非常高興能和同學(xué)們一起做實驗,感謝各位老師以及同學(xué)們對我的幫助,特別是老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪;這次數(shù)據(jù)結(jié)構(gòu)設(shè)計的每個實驗細節(jié)和每個數(shù)據(jù),都離不開老師您的細心指導(dǎo)。7、源代碼#include "string.h"#includ

17、e "stdio.h"#include "malloc.h"#include "stdlib.h"#define Max 30000#define NUM 10typedef struct ArcCell int adj;ArcCell;typedef struct VertexTypeint number;char *sight;char "description;VertexType;typedef structVertexType vexNUM;ArcCell arcsNUMNUM;int vexnum,arcnum;

18、MGraph;MGraph G;int PNUMNUM;long int DNUM;int x9=0;void CreateUDN(int v,int a);void narrate();void ShortestPath(int num);void output(int sight1,int sight2);char Menu();void search();char SearchMenu();void HaMiTonian(int);void NextValue(int);void display。;void main()int v0,v1;char ck;CreateUDN(NUM,11

19、);dock=Menu();switch(ck)case '1':system("cls");/ narrate。;printf("nnttt請選擇起點景點(09):");scanf("%d",&v0);printf("ttt請選擇終點景點(09):");scanf("%d",&v1);ShortestPath(vO);output(v0,v1);printf("nntttt請按任意鍵繼續(xù)n");getchar();getchar();brea

20、k;case '2':search();break;case '3':system("cls");/narrate。;x0=1;HaMiTonian;printf("nntttt請按任意鍵繼續(xù)n");getchar();getchar();break;while(ck!='e');char Menu()char c;int flag;doflag=1;system("cls");narrate。;printf("ntttn");printf("ttt|1 n

21、");printf("ttt|1、查詢景點路徑1 n");printf("ttt|2、查詢景點信息1 n");printf("ttt|3、推薦參觀路線1 n");printf("ttt| t 、退出1 n");printf("ttt|1 n");printf("ttt11n");printf("tttt請輸入您的選擇:");scanf("%c",&c);if(c='1'|c='2'|c=

22、'3'|c='t')flag=0;while(flag);return c;char SearchMenu()char c;int flag;doflag=1;system("cls");narrate。;printf("nttti n");printf("ttt11 n");printf("ttt11、按照景點編號查詢I n");printf("ttt12、按照景點名稱查詢I n");printf("tttt 、返回n");printf(&q

23、uot;ttt11 n");printf("ttt11n");printf("tttt請輸入您的選擇:");scanf("%c",&c);if(c='1'|c='2'|c='t')flag=0;while(flag);return c;void search()int num;int i;char c;char name20;dosystem("cls");c=SearchMenu();switch (c)case '1':syste

24、m("cls");narrate。;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按任意鍵返回 ”力getchar();getchar();break;if(i=NUM)printf("

25、;nnttt沒有找到!");printf("nnttt按任意鍵返回.”);getchar();getchar();break;case '2':narrate。;system("cls");printf("nntt請輸入您要查找的景點名稱:");scanf("%s",name);for(i=0;i<NUM;i+) if(!strcmp(name,G.vexi.sight)printf("nnttt您要查找景點信息如下:”);printf("nnttt%-25snn"

26、;,G.vexi.description);printf("nttt按任意鍵返回 ”力getchar();getchar();break;if(i=NUM)printf("nnttt沒有找到!");printf("nnttt按任意鍵返回.”);getchar();getchar();break;while(c!='t');void CreateUDN(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.sigh

27、t="東大門"G.vex0.description="學(xué)校正門。"G.vex1.sight="氣象樓"G.vex1.description="校氣象研究樓。"G.vex2.sight="體育館"G.vex2.description="運動,放松心情"G.vex3.sight="大學(xué)生活動中心"G.vex3.description="競賽、晚會舉辦地"G.vex4.sight="圖書館"G.vex4.descripti

28、on="閱覽,借閱圖書"G.vex5.sight="濱江樓"G.vex5.description="學(xué)習(xí),自習(xí)室"G.vex6.sight="綜合樓"G.vex6.description="學(xué)習(xí),辦公室"G.vex7.sight="老食堂"G.vex7.description="餐飲休閑"G.vex8.sight="新食堂"G.vex8.description="餐飲休閑"G.vex9.sight="文園&

29、quot;G.vex9.description="宿舍,休息";for(i=0;i<G.vexnum;+i)for(j=0;j<G.vexnum;+j)G.arcsij.adj=Max;G.arcs01.adj=G.arcs10.adj=2;G.arcs02.adj=G.arcs20.adj=1;G.arcs03.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.a

30、dj=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 narrate()int i,k=0;printf("ntt* printf("ntt*歡迎使用校園導(dǎo)游程序*n)MT信息工程入學(xué)*n");printf("tn");printf("tt景點名稱tt|t景點描述n");printf

31、("t|n");for(i=0;i<NUM;i+)printf("t(%2d)%-10sttt|t%-25sn",i,G.vexi.sight,G.vexi.description);k=k+1;printf("t|n");void ShortestPath(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<30000)Pvnum=1;Pvv=1;Dnum=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(

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論