景點導游數(shù)據(jù)結構實驗報告_第1頁
景點導游數(shù)據(jù)結構實驗報告_第2頁
景點導游數(shù)據(jù)結構實驗報告_第3頁
景點導游數(shù)據(jù)結構實驗報告_第4頁
景點導游數(shù)據(jù)結構實驗報告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 信息科學與技術系實 驗 報 告 實驗課程: 數(shù)據(jù)結構 學生姓名: 專業(yè)班級: 學 號: 天津財經(jīng)大學珠江學院信息科學與技術系數(shù)據(jù)結構課程實驗報告實驗項目名稱:珠江學院的景點導游咨詢姓名廖秋雨學號2011161855班級信管1103班 實驗地點日新304指導教師趙翠杰時間2013.6一、 實驗目的及要求目的:提供珠江學院的景點的路徑咨詢和來訪客人以及剛來報到的新生提供一個快捷方便的路徑咨詢,快速有效的提高了用戶的熟悉度。要求:1、從珠江學院中選取出10個有代表性的地點,例如弘毅樓(行政辦公樓)、日新樓(教學樓)、日益樓、上善樓、食堂1、食堂2、大學生活動中心、體育館、體育場、音樂廣場。2、為來

2、訪的客人提供圖中任意景點相關信息的查詢。當用戶輸入正確時,為用戶輸出景點的相關信息;當用戶輸入不合法時,提示用戶輸入有誤并返回讓用戶重新輸入。3、為來訪的客人提供圖中任意景點的路徑查詢,即查詢?nèi)我鈨蓚€景點之間的最短簡單路徑。當用戶輸入正確時,為用戶輸出任意兩景點的最短路徑;當用戶輸入不合法時,提示用戶輸入有誤并返回讓用戶重新輸入。4、為來訪客人推薦參觀路線。二、實驗設備(環(huán)境)及要求:環(huán)境:windows 7系統(tǒng),vc 6.0三、實驗內(nèi)容與步驟1、邏輯結構設計98761013245 10 6 15 3 6 8 4 3 6 4 3 4 3 6 3 10 52、界面設計開始界面:選擇1查詢景點路徑

3、:按任意鍵退回開始界面后選擇2查詢景點信息:選擇1按景點名稱查詢:退回開始界面后選擇3查詢推薦路線:3、詳細設計(流程圖和詳細代碼)(1)、流程圖main()函數(shù)流程圖:ck!='e'ck=menu();ck='1'ck='2'yesif system("cls");intv0,v1;break;menu()流程圖:charc;flagreturnc;flag=1;c='1'|c='2'|c='e'flag=0searchmenu()流程圖:charc;flagreturnc;f

4、lag=1;c='1'|c='2'|c='e'flag=0search()函數(shù)流程圖:c!='e'intnum;system("cls");c='1'c='2'yessystem("cls");multiinti,j;i=0i<g.vexnumg.vex0.sight="弘毅樓"i=0i<g.vexnum+ig.arcs01.adj=g.arcs10.adj=5;g.arcsij.adj=max;+ig.vexi.number=

5、i;createudn()函數(shù)流程圖:narrate()函數(shù)流程圖:inti,k=0;i=0i<numi+printf("t_|_n");printf("t (%2d)%-10sttt|t%-25sn",i,g.vexi.sight,g.vexi.description);shortestpath()函數(shù)流程圖:v+dnum=0;i=0intv,w,i,t;v=0v<numfinalv=0;multii<num+imultioutput()函數(shù)流程圖:+cinta,b,c,d,q=0;a!=sight1printf("nt從%

6、s到%s的最短路徑是",g.vexsight1.sight,g.vexsight2.sight);c=0c<numgate:;for hamitonian()流程圖:m=8&&g.arcs0x9-1.adj!=20000gotol;hamitonian(m+1);xm=0l:nextvalue(m);m>10returnreturnreplay()nextvalue()函數(shù)流程圖:intj;xk=0g.arcsxk-1-1xk-1.adj!=20000gotol;j=0j<kj+return;gotol;returndisplay()流程圖:i<

7、;9printf("出口");inti=0;i=0i+printf("%s->",g.vexxi-1.sight)(2)、詳細代碼#include "string.h"#include "stdio.h"#include "malloc.h"#include "stdlib.h"#define max 20000#define num 10typedef struct arccell int adj; arccell;typedef struct vertextype

8、int number; char *sight; char *description;vertextype; typedef struct vertextype vexnum; arccell arcsnumnum; int vexnum,arcnum;mgraph; mgraph g; int pnumnum; long int dnum; int x10=0;void createudn(int v,int a);void narrate(); void shortestpath(int num);void output(int sight1,int sight2);char menu()

9、; void search(); char searchmenu(); void hamitonian(int); void nextvalue(int); void display();void main() int v0,v1; char ck; createudn(num,14); do ck=menu(); switch(ck) case '1': system("cls"); / narrate(); printf("nnttt請選擇起點景點(09):"); scanf("%d",&v0); prin

10、tf("ttt請選擇終點景點(09):"); scanf("%d",&v1); shortestpath(v0); output(v0,v1); printf("nntttt請按任意鍵繼續(xù).n"); getchar(); getchar(); break; case '2':search(); break; case '3': system("cls"); /narrate(); x0=1; hamitonian(1); printf("nntttt請按任意鍵繼續(xù).

11、n"); getchar(); getchar(); break; ; while(ck!='e');char menu() char c; int flag; do flag=1; system("cls"); narrate(); printf("ntttn"); printf("ttt n"); printf("ttt 1、查詢景點路徑 n"); printf("ttt 2、查詢景點信息 n"); printf("ttt 3、推薦參觀路線 n"

12、); printf("ttt e、退出 n"); printf("ttt n"); printf("tttn"); printf("tttt請輸入您的選擇:"); scanf("%c",&c); if(c='1'|c='2'|c='3'|c='e') flag=0; while(flag); return c;char searchmenu() char c; int flag; do flag=1; system(&quo

13、t;cls"); narrate(); printf("ntttn"); printf("ttt n"); printf("ttt 1、按照景點編號查詢 n"); printf("ttt 2、按照景點名稱查詢 n"); printf("ttt e、返回 n"); printf("ttt n"); printf("tttn"); printf("tttt請輸入您的選擇:"); scanf("%c",&

14、c); if(c='1'|c='2'|c='e') flag=0; while(flag); return c;char searchmenu() char c; int flag; do flag=1; system("cls"); narrate(); printf("ntttn"); printf("ttt n"); printf("ttt 1、按照景點編號查詢 n"); printf("ttt 2、按照景點名稱查詢 n"); printf(

15、"ttt e、返回 n"); printf("ttt n"); printf("tttn"); printf("tttt請輸入您的選擇:"); scanf("%c",&c); if(c='1'|c='2'|c='e') flag=0; while(flag); return c;void search() int num; int i; char c; char name20; do system("cls"); c=s

16、earchmenu(); switch (c) case '1': system("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

17、按任意鍵返回."); getchar(); getchar(); break; if(i=num) printf("nnttt沒有找到!"); printf("nnttt按任意鍵返回."); getchar(); getchar(); break; case '2': narrate(); system("cls"); printf("nntt請輸入您要查找的景點名稱:"); scanf("%s",name); for(i=0;i<num;i+) if(!strc

18、mp(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!='e'

19、);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.sight="弘毅樓" g.vex0.description="學校領導,辦公室之地。" g.vex1.sight="日益樓" g.vex1.description="教學樓,自習室" g.vex2.sight="日新樓" g.vex2.description="

20、教學樓,自習室" g.vex3.sight="圖書館" g.vex3.description="閱覽,借閱圖書,自習室" g.vex4.sight="一食堂" g.vex4.description="餐飲休閑中心" g.vex5.sight="二食堂" g.vex5.description="餐飲休閑中心" g.vex6.sight="音樂廣場" g.vex6.description="休閑娛樂中心" g.vex7.sight

21、="體育館" g.vex7.description="室內(nèi)體育中心" g.vex8.sight="素教" g.vex8.description="舉行各種晚會" g.vex9.sight="上善樓" 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=5; g.arcs08.a

22、dj=g.arcs80.adj=10; g.arcs12.adj=g.arcs21.adj=3; g.arcs19.adj=g.arcs91.adj=6; g.arcs23.adj=g.arcs32.adj=4; g.arcs34.adj=g.arcs43.adj=6; g.arcs35.adj=g.arcs53.adj=15; g.arcs39.adj=g.arcs93.adj=4; g.arcs45.adj=g.arcs54.adj=10; g.arcs49.adj=g.arcs94.adj=8; g.arcs56.adj=g.arcs65.adj=3; g.arcs58.adj=g.ar

23、cs85.adj=6; g.arcs67.adj=g.arcs76.adj=3; g.arcs68.adj=g.arcs86.adj=3; g.arcs69.adj=g.arcs96.adj=4; g.arcs79.adj=g.arcs97.adj=3; g.arcs89.adj=g.arcs98.adj=4;void narrate() int i,k=0; printf("ntt*歡迎使用校園導游程序*n"); printf("ntt*天津財經(jīng)大學珠江學院*n"); printf("ntt*廖秋宇的數(shù)據(jù)結構實驗*n"); prin

24、tf("t_n"); printf("tt景點名稱tt|t景點描述n"); printf("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+

25、) finalv=0; dv=g.arcsnumv.adj; for(w=0;w<num;w+) pvw=0; if(dv<20000) 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; f

26、or(t=0;t<num;t+) pwt=pvt; pww=1; void output(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; for(c=0;c<num;+c) gate:; pasight1=0; for(b=0;b<num;b+) if(g.arcsdb.adj<20000&&pab)

溫馨提示

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

評論

0/150

提交評論