數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)故宮導(dǎo)游(最短路徑)(共34頁)

上傳人:hknru****knru 文檔編號:46403892 上傳時(shí)間:2021-12-13 格式:DOC 頁數(shù):34 大?。?16KB
收藏 版權(quán)申訴 舉報(bào) 下載
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)故宮導(dǎo)游(最短路徑)(共34頁)_第1頁
第1頁 / 共34頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)故宮導(dǎo)游(最短路徑)(共34頁)_第2頁
第2頁 / 共34頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)故宮導(dǎo)游(最短路徑)(共34頁)_第3頁
第3頁 / 共34頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)故宮導(dǎo)游(最短路徑)(共34頁)》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)故宮導(dǎo)游(最短路徑)(共34頁)(34頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、精選優(yōu)質(zhì)文檔-----傾情為你奉上 數(shù)學(xué)與計(jì)算機(jī)學(xué)院 課程設(shè)計(jì)說明書 課 程 名 稱: 數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì) 課 程 代 碼: 題 目: 故宮導(dǎo)游咨詢 年級/專業(yè)/班: 學(xué) 生 姓 名: 學(xué)   號: 開 始 時(shí) 間: 2011 年 12 月 9 日 完 成 時(shí) 間: 2011 年 1

2、2 月 23 日 課程設(shè)計(jì)成績: 學(xué)習(xí)態(tài)度及平時(shí)成績(30) 技術(shù)水平與實(shí)際能力(20) 創(chuàng)新(5) 說明書(計(jì)算書、圖紙、分析報(bào)告)撰寫質(zhì)量(45) 總 分(100) 指導(dǎo)教師簽名: 年 月 日 專心---專注---專業(yè) 目錄 摘 要 隨著計(jì)算機(jī)的普及,涉及計(jì)算機(jī)相關(guān)的科目也越來越普遍,其中數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專業(yè)重要的專業(yè)

3、基礎(chǔ)課程與核心課程之一,為適應(yīng)我國計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展和應(yīng)用,學(xué)好數(shù)據(jù)結(jié)構(gòu)非常必要,然而要掌握數(shù)據(jù)結(jié)構(gòu)的知識非常難,所以對“數(shù)據(jù)結(jié)構(gòu)”的課程設(shè)計(jì)比不可少。本說明書是對“故宮導(dǎo)游咨詢”課程設(shè)計(jì)的說明。 首先是對需求分析的簡要闡述,說明系統(tǒng)要完成的任務(wù)和相應(yīng)的分析,并給出測試數(shù)據(jù)。其次是概要設(shè)計(jì),說明所有抽象數(shù)據(jù)類型的定義、主程序的流程以及各程序模塊之間的層次關(guān)系,以及ADT描述。然后是詳細(xì)設(shè)計(jì),描述實(shí)現(xiàn)概要設(shè)計(jì)中定義的基本功操作和所有數(shù)據(jù)類型,以及函數(shù)的功能及代碼實(shí)現(xiàn)。再次是對系統(tǒng)的調(diào)試分析說明,以及遇到的問題和解決問題的方法。然后是用戶使用說明書的闡述,然后是測試的數(shù)據(jù)和結(jié)果的分析,最后是對

4、本次課程設(shè)計(jì)的結(jié)論。 關(guān)鍵詞:計(jì)算機(jī)、課程設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu) 引 言 數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專業(yè)重要的專業(yè)基礎(chǔ)課程與核心課程之一,在計(jì)算機(jī)領(lǐng)域應(yīng)用廣泛,計(jì)算機(jī)離不開數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)為了能使我們掌握所學(xué)習(xí)的知識并有應(yīng)用到實(shí)際的設(shè)計(jì)中的能力,對于掌握這門課程的學(xué)習(xí)方法有極大的意義。本課程設(shè)計(jì)的題目為“故宮導(dǎo)游咨詢”,完成相應(yīng)的錄入信息、查找、修改、刪除、計(jì)算功能等等。本課程設(shè)計(jì)采用的編程環(huán)境為Microsoft Visual Stdio 6.0。 1、需求分析 游客游覽某一景點(diǎn)時(shí),對景點(diǎn)都不熟悉。特別是對于象故宮這樣

5、的大型景點(diǎn),如果隨便參觀的話,可能會錯過一些景點(diǎn),也可能走許多冤枉路。為了方便游客,需要一套軟件系統(tǒng),能夠?yàn)橛慰吞峁翰樵兙包c(diǎn)信息,給出到某個景點(diǎn)的最佳路線,給出到所有景點(diǎn)的最佳路線。為系統(tǒng)管理員提供以下功能:添加和撤銷景點(diǎn),添加和撤銷旅游線路,修改景點(diǎn)信息。 1.1任務(wù)與分析 此系統(tǒng)要完成對故宮景點(diǎn)信息的儲存、修改、刪除、添加和查詢最短路線,因?yàn)樯婕暗阶疃搪肪€問題,所以數(shù)據(jù)結(jié)構(gòu)優(yōu)先考慮采用圖的鄰接矩陣儲存結(jié)構(gòu), 景點(diǎn)和旅游線路可以構(gòu)成圖狀結(jié)構(gòu),景點(diǎn)作為圖的頂點(diǎn),旅游線路作為圖的邊,邊上的權(quán)值作為景點(diǎn)間的距離。此結(jié)構(gòu)便于完成任務(wù)的各種操作。 1.2測試數(shù)據(jù)

6、 圖1 測試數(shù)據(jù) 2 概要設(shè)計(jì) 2.1 ADT描述 ADT Graph{ 數(shù)據(jù)對象:D{故宮景點(diǎn)和路徑} 數(shù)據(jù)關(guān)系:R={VR} VR={|v,w∈V,表示頂點(diǎn)v和頂點(diǎn)w之間的邊;} 基本操作: void Creat();//錄入景點(diǎn)和路徑的信息。 void select();//查找某景點(diǎn)的信息。 void xiugai();//修改某景點(diǎn)的信息。 void insert();//插入新的景點(diǎn)和路徑信息。 void delet();//刪除景點(diǎn)和路徑信息。 void shortpath1();//查詢到某景

7、點(diǎn)的最短路徑。 void shortpath2();//查詢到所有景點(diǎn)的最短路徑。 Void main();//主函數(shù)。 } 2.2程序模塊結(jié)構(gòu) 圖2 程序模塊結(jié)構(gòu) 2.2.1 結(jié)構(gòu)體定義 景點(diǎn)的結(jié)構(gòu)體定義如下: struct ding { string dingdian; string xinxi; } 2.3 各功能模塊 錄入模塊:void Creat()錄入景點(diǎn)和路徑的信息,并儲存。 查詢景點(diǎn)模塊:void select()查找某景點(diǎn)的信息。 修改模塊:void xiuga

8、i()修改某景點(diǎn)的信息。 插入模塊:void insert()插入新的景點(diǎn)和路徑信息。 刪除模塊:void delet()刪除景點(diǎn)和路徑信息。 查詢到某景點(diǎn)最佳路徑:void shortpath1():查詢到某景點(diǎn)的最短路徑。 查詢到查詢到所有景點(diǎn)的最短路徑:void shortpath2()查詢到所有景點(diǎn)的最短路徑 3 詳細(xì)設(shè)計(jì) 3.1結(jié)構(gòu)體定義 景點(diǎn)的結(jié)構(gòu)體定義如下: struct ding { string dingdian; string xinxi; } 3.2 初始化 構(gòu)造函數(shù)初始化變量: Graph::Graph() {

9、 for(int i=0;i

10、 int i,vi,vj,w,x,y; cout<<"輸入添加路徑的條數(shù)和景點(diǎn)數(shù):"; cin>>x>>y; cout<<"輸入添加景點(diǎn)名稱:"<>Vertices[numV+i].dingdian; cout<<" "<<"景點(diǎn)信息:"; cin>>Vertices[numV+i].xinxi; cout<<"添加成功!"<

11、<"輸入添加景點(diǎn)到景點(diǎn)的路徑的長度(vi,vj,length):"; cin>>vi>>vj>>w; Edge[vi-1][vj-1]=w; Edge[vj-1][vi-1]=w; cout<<"添加成功!"<>numE>>numV; cout<<"輸入景點(diǎn)名稱:"<

12、; for(i=0;i>Vertices[i].dingdian; cout<<"景點(diǎn)信息:"; cin>>Vertices[i].xinxi; } for(i=0;i>vi>>vj>>w; Edge[vi-1][vj-1]=w; Edge[vj-1][vi-1]=w; } } 3.5修改操作 voi

13、d Graph::xiugai() { string a,c; int b=0; cout<<"請輸入要修改的景點(diǎn):"; cin>>a; for(int i=0;i>c; Vertices[i].xinxi=c; b++; cout<<"修改成功!"<

14、操作 void Graph::select() { string a; int b=0; cout<<"請輸入要查詢的景點(diǎn):"; cin>>a; for(int i=0;i

15、out<<"請你輸入要撤銷景點(diǎn)數(shù)和路線條數(shù):"; cin>>k>>z; for(int j=0;j>v; for(int i=0;i

16、i>x>>y; if( Edge[x-1][y-1]!=MAXweight) { Edge[x-1][y-1]=MAXweight; Edge[y-1][x-1]=MAXweight; cout<<"撤銷成功!"<

17、 int v,v1; string b,c; cout<<"輸入你所在的景點(diǎn):"; cin>>b; cout<<"輸入你所要去的景點(diǎn):"; cin>>c; for(int i=0;i

18、 if(i!=v&&dist[i]

19、) if(!s[w]&&Edge[u][w]

20、rtices[i].dingdian<<"的"; cout<<"最佳路徑長度為:"; cout<

21、 for(int n=j;n>=1;n--) { cout<"; } cout<>b; for(int i=0;i

22、dian==b) v=i; for( i=0;i

23、

24、weight) { string c[10]; int j=0; int k=i; cout<<"從"<

25、gdian; k=path[k]; } while(k!=v); j++; c[j]=Vertices[k].dingdian; for(int n=j;n>=1;n--) { cout<"; } cout<

26、 string b; cout<<"輸入你所在的景點(diǎn):"; cin>>b; for(int i=0;i

27、v]=0; for(i=0;i

28、Edge[u][w]; path[w]=u; } } for( i=0;i

29、t[i]/100<<"分鐘"<<" "; cout<<"路徑為:"; do{ j++; c[j]=Vertices[k].dingdian; k=path[k]; } while(k!=v); j++; c[j]=Vertices[k].dingdian; for(int n=j;n>=1;n--) { cout<"; } cou

30、t<

31、理員 ******"<>c; if(c==A) { int d; char b; cout<<"請輸入密碼:"; cin>>d;

32、 if(d==123) { for(;;) { system("cls"); cout<<"********************************"<

33、* C、插入景點(diǎn)和路徑 ***"<>b; if(b==A) { a.Creat(); system("p

34、ause"); } if(b==B) { a.xiugai(); system("pause"); } if(b==C) { a.insert(); system("pause"); } if(b==D) { a.delet(); system("pause"); } if(b==E) break; } } else { cout<<"密碼錯誤!"

35、<

36、 ***"<>b; if(b==A) {

37、 a.select(); system("pause"); } if(b==B) { a.shortpath1(); system("pause"); } if(b==C) { a.shortpath2(); system("pause"); } if(b==D) break; } } if(c==C) break; } } 4 調(diào)試分析 4.1測試數(shù)據(jù) 測試數(shù)據(jù)見圖1. 4.2調(diào)試問題 在調(diào)試

38、過程中遇到輸出路徑算法有錯誤,當(dāng)刪除一條路徑時(shí)時(shí)不能正確輸出相應(yīng)路徑,然后對輸出路徑的條件進(jìn)行改進(jìn),增加了條件,測試成功。 4.3算法時(shí)間復(fù)雜度 錄入:時(shí)間復(fù)雜度為O(n); 查詢景點(diǎn)信息: 時(shí)間復(fù)雜度為O(n); 修改景點(diǎn)信息: 時(shí)間復(fù)雜度為O(n); 插入景點(diǎn)和路徑: 當(dāng)插入的景點(diǎn)和路徑為x,y時(shí),若x>=y時(shí)間復(fù)雜度為O(x)反之為O(y); 刪除景點(diǎn)和路徑: 當(dāng)刪除的景點(diǎn)和路徑為x,y時(shí),若x>=y時(shí)間復(fù)雜度為O(x)反之為O(y); 查詢到某景點(diǎn)最佳路徑;此算法為迪杰斯特拉算法時(shí)間復(fù)雜度為O(n*n); 查詢到所有景點(diǎn)的最短路徑: 此算法為迪杰斯特拉算法時(shí)間復(fù)雜度為

39、O(n*n); 4.4經(jīng)驗(yàn)和體會 在本次課程設(shè)計(jì)中主要是對圖的數(shù)據(jù)結(jié)構(gòu)操作,所有剛開始對知識不是很熟悉操作起來有一定難度,容易在程序的關(guān)鍵地方但經(jīng)過翻閱教材能較好的解決問題。 5用戶使用說明 本系統(tǒng)是關(guān)于故宮的管理系統(tǒng)分為兩類用戶,管理員和游客,由于管理員可以對數(shù)據(jù)進(jìn)行修改,為了保護(hù)數(shù)據(jù),所以管理員登陸需要密碼而游客不需要密碼,管理員有添加景點(diǎn)和路徑、刪除景點(diǎn)和路徑、修改景點(diǎn)信息權(quán)限,游客能查詢景點(diǎn)信息、查找到某一景點(diǎn)的最佳路徑和到所有景點(diǎn)的最佳路徑。 6 測試結(jié)果 6.1錄入信息 圖3 錄入信息界面

40、 圖4 錄入信息界面 6.2查詢景點(diǎn)模塊 圖5 查詢景點(diǎn)信息界面 6.3修改模塊 圖6 修改景點(diǎn)信息界面 6.4插入模塊 圖7 添加景點(diǎn)信息界面 6.5刪除模塊 圖8 刪除景點(diǎn)信息界面 6.6查詢到某景點(diǎn)最佳路徑 圖9 查詢到某景點(diǎn)最佳路徑界面 6.7查詢到所有景點(diǎn)的最短路徑。 圖10 查詢到所有景點(diǎn)最

41、佳路徑界面 結(jié) 論 本次課程設(shè)計(jì)“故宮導(dǎo)游咨詢”按照任務(wù)書相應(yīng)的要求成功的完成了任務(wù),由于本課程設(shè)計(jì)涉及景點(diǎn)和路徑,采用圖的儲存結(jié)構(gòu)和算法比較方便處理數(shù)據(jù)的儲存、查詢、刪除等操作。但圖的操作比較難,比如求某景點(diǎn)到所有景點(diǎn)的最佳路徑問題,需要使用到迪杰斯特拉算法實(shí)現(xiàn)。 致 謝 在本次課程設(shè)計(jì)過程中,首先感謝輔導(dǎo)老師周立章,在數(shù)據(jù)結(jié)構(gòu)課堂上為課程設(shè)計(jì)需要的前期知識打下了基礎(chǔ),在課程設(shè)計(jì)過程中抽出休息時(shí)

42、間來做相應(yīng)的課程設(shè)計(jì)指導(dǎo)。同時(shí)在這次課程設(shè)計(jì)中,也要感謝許多樂意同學(xué)對我不懂的地方的指導(dǎo)和耐心講解。 參考文獻(xiàn) [1] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu).清華大學(xué)出版社出版。 [2] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)題集(C語言版) .清華大學(xué)出版社.2003年5月。 [3] 楊秀金,數(shù)據(jù)結(jié)構(gòu)(C++版) .高等教育出版社.2009年4月。 [4] 朱戰(zhàn)立.數(shù)據(jù)結(jié)構(gòu)(C++語言描述)(第二版本).高等出版社出版.2004年4月。 [5] 胡學(xué)鋼.數(shù)據(jù)結(jié)構(gòu)(C語言版) .高等教育出版社.2004年8月。 [6] 楊金秀.數(shù)據(jù)結(jié)構(gòu)(C語言版).西安電子科技大學(xué)出版社,2004年8月。

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!