版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(論文)</b></p><p> 題 目: 交通咨詢系統(tǒng) </p><p> 院 (系): 機(jī)械電子工程系</p><p> 專業(yè)班級: 計算機(jī)2011 </p><p> 姓 名: </p><p>
2、; 學(xué) 號: </p><p> 指導(dǎo)教師: </p><p> 2013年 9 月 20日</p><p> 課程設(shè)計(論文)任務(wù)書</p><p><b> 設(shè)計總說明</b></p><p> 數(shù)據(jù)結(jié)構(gòu)是實踐性很強(qiáng)的
3、課程。課程設(shè)計是加強(qiáng)學(xué)生實踐能力的一個強(qiáng)有力手段。課程設(shè)計要求學(xué)生在完成程序設(shè)計的同時能夠?qū)懗霰容^規(guī)范的設(shè)計報告。嚴(yán)格實施課程設(shè)計這一環(huán)節(jié),對于學(xué)生基本程序設(shè)計素養(yǎng)的培養(yǎng)和軟件工作者工作作風(fēng)的訓(xùn)練,將起到顯著的促進(jìn)作用。</p><p> 設(shè)計一個交通咨詢系統(tǒng),能讓旅客咨詢從任一個城市頂點到另一個城市頂點之間的最短路徑或最低費(fèi)用或最少時間等問題。對于不同咨詢要求,可以輸入城市間的路程或所需要時間或所需費(fèi)用。設(shè)計
4、分三個部分,一是建立交通網(wǎng)絡(luò)圖的存儲結(jié)構(gòu);二是解決單源最短路徑問題;最后再實現(xiàn)兩個城市頂點之間的最短路徑問題</p><p> 關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);交通咨詢;最短路徑;圖;</p><p><b> 目錄</b></p><p><b> 1.設(shè)計目的1</b></p><p><b&g
5、t; 2.問題描述2</b></p><p><b> 3.需求分析2</b></p><p><b> 4.概要設(shè)計2</b></p><p><b> 5.詳細(xì)設(shè)計5</b></p><p><b> 6.調(diào)試分析10</b&
6、gt;</p><p><b> 7.使用說明11</b></p><p><b> 8.設(shè)計總結(jié)15</b></p><p><b> 9.參考文獻(xiàn)15</b></p><p> 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計</p><p><b>
7、 交通咨詢系統(tǒng)</b></p><p><b> 1.設(shè)計目的</b></p><p> “數(shù)據(jù)結(jié)構(gòu)”是計算機(jī)科學(xué)與技術(shù)專業(yè)一門十分重要的專業(yè)技術(shù)基礎(chǔ)課,計算機(jī)科學(xué)各領(lǐng)域及有關(guān)的應(yīng)用軟件都要使用到各種數(shù)據(jù)結(jié)構(gòu)。在我國,”數(shù)據(jù)結(jié)構(gòu)與算法”已經(jīng)作為理工科非計算機(jī)專業(yè)必修的信息技術(shù)基礎(chǔ)課程之一。世界上許多科技人員對學(xué)習(xí)、研究數(shù)據(jù)結(jié)構(gòu)和算法都非常重視,對于從事
8、計算機(jī)科學(xué)及其應(yīng)用的科技工作者來說,數(shù)據(jù)結(jié)構(gòu)與算法更是必須透徹地掌握的重要基礎(chǔ)。</p><p> 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法的最終目的是解決實際的應(yīng)用問題,特別是非數(shù)值計算類型的應(yīng)用問題。課程設(shè)計是加強(qiáng)學(xué)生實踐能力的一個強(qiáng)有力手段。課程設(shè)計所安排的題目,在難度和深度方面都大于平時的上機(jī)訓(xùn)練,要求同學(xué)在完成設(shè)計和編程大型作業(yè)的過程中,深化對數(shù)據(jù)結(jié)構(gòu)與算法課程中基本概念、理論和方法的理解;訓(xùn)練綜合運(yùn)用所學(xué)知識處理實際問題
9、的能力,強(qiáng)化面向?qū)ο蟮某绦蛟O(shè)計理念;使同學(xué)的程序設(shè)計與調(diào)試水平有一個明顯的提高。</p><p> 課程設(shè)計要求學(xué)生在完成程序設(shè)計的同時能夠?qū)懗霰容^規(guī)范的設(shè)計報告。嚴(yán)格實施課程設(shè)計這一環(huán)節(jié),對于學(xué)生基本程序設(shè)計素養(yǎng)的培養(yǎng)和軟件工作者工作作風(fēng)的訓(xùn)練,將起到顯著的促進(jìn)作用。</p><p><b> 2.問題描述</b></p><p> 處
10、于對不同目的的旅客對交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的時間盡可能短,出門旅游的游客則希望旅費(fèi)盡可能省,而老年旅客則要求中轉(zhuǎn)次數(shù)最少。編制一個全國城市間的交通咨詢程序,為旅客提供兩種或三種最優(yōu)決策的交通咨詢。</p><p><b> 3.需求分析</b></p><p><b> 3.1 數(shù)據(jù)需求</b></p&g
11、t;<p> 本系統(tǒng)的主要數(shù)據(jù)是交通相關(guān)數(shù)據(jù)。交通信息包括:各城市之間的距離,到達(dá)城市花費(fèi)的時間,到達(dá)各城市的費(fèi)用等。</p><p> 3.2 基本功能需求</p><p> 本系統(tǒng)主要實現(xiàn)對城市之間的最短路徑、最少時間、最少花費(fèi),最佳路徑的查詢,需要實現(xiàn)以下幾個方面的管理功能:</p><p> 存儲交通網(wǎng)信息:存儲交通信息。</p&
12、gt;<p> 查找一個城市到其他城市的最短距離:按城市名查找。</p><p> (3)查找一個城市到其他城市的最佳路徑:按城市名查找。</p><p> ?。?)查找兩個城市之間的最短距離:按城市名查找。</p><p> ?。?)打印交通網(wǎng)信息:顯示交通網(wǎng)信息。</p><p> 3.3 非功能性需求</p&g
13、t;<p> 用戶界面需求:簡潔、易用、易懂、友好的用戶界面。</p><p> 硬件要求:裝有Visual C++6.0的計算機(jī)。</p><p> 可靠性需求:保證用戶在正常使用本系統(tǒng)時,用戶的操作或誤操作不會產(chǎn)生數(shù)據(jù)的丟失。</p><p><b> 4.概要設(shè)計</b></p><p>&l
14、t;b> 4.1 數(shù)據(jù)結(jié)構(gòu)</b></p><p> ?。?)函數(shù)的基本功能;</p><p> ?。?)結(jié)構(gòu)體的應(yīng)用;</p><p><b> ?。?)文件的運(yùn)用;</b></p><p><b> (4)數(shù)組的運(yùn)用;</b></p><p> 4
15、.2 系統(tǒng)包含的函數(shù)</p><p> void Dijkstra_Output(int s[30][30],int PreCity[30],int p_end,int TravelType )</p><p> //輸出最短路徑函數(shù)</p><p> void Dijkstra(int s[30][30],int p_start,int p_end,int
16、TravelType)</p><p> //迪杰斯特拉算法計算最短路徑函數(shù)</p><p> int CalcMinCost(int StartCity,int EndCity,int TravelType)</p><p> //查詢最小耗費(fèi)路線函數(shù)</p><p> int SearchMinTime (CityType Cit
17、y,CityType EndCity,int CurTime,int curPathNo,int TravelType) </p><p> //計算出最短時間函數(shù)</p><p> int CalcMinTime(int StartCity,int EndCity,int TravelType)</p><p> //查詢最短時間路線函數(shù)</p>
18、<p> int InitSystem()</p><p> //從文件中讀信息函數(shù)</p><p> void Administrators()</p><p> //管理員的界面函數(shù)</p><p> int InsertCity(char *Name)</p><p><b>
19、 //添加城市函數(shù)</b></p><p> int DelCity(char *Name)</p><p><b> //刪除城市函數(shù)</b></p><p> int InsertTrain(char *train,char *StartCity,char *EndCity,int StartTime,int EndTim
20、e,int cost)</p><p> //添加火車路線函數(shù)</p><p> int InsertFlight(char *flight,char *StartCity,char *EndCity,int StartTime,int EndTime,int cost)</p><p> //添加飛機(jī)路線函數(shù)</p><p> in
21、t DelPath(char *name)</p><p><b> //刪除路線函數(shù)</b></p><p> int SeekCity(char *name)</p><p><b> //查找城市函數(shù)</b></p><p> int SaveFile()</p><
22、;p> //將火車飛機(jī)交通信息寫入文件函數(shù)</p><p> void Line(int city,int traveltype)</p><p> //查找城市中的所有路線函數(shù)</p><p> void User()</p><p><b> //用戶界面函數(shù)</b></p><p
23、> int main()</p><p><b> //主函數(shù)</b></p><p> 4.3 函數(shù)間的關(guān)系</p><p> 主函數(shù)是程序的入口,采用模塊化設(shè)計,通過菜單選擇,來調(diào)用實現(xiàn)各功能所要的函數(shù)。首先定義城市交通圖的存儲結(jié)構(gòu),再定義一些變量,根據(jù)變量決定調(diào)用的函數(shù),包括Dijkstra算法。</p>&l
24、t;p> 4.4 系統(tǒng)功能模塊圖</p><p> 圖4.4.1 系統(tǒng)功能模塊圖</p><p><b> 5.詳細(xì)設(shè)計</b></p><p> 5.1 結(jié)構(gòu)體的詳細(xì)定義</p><p> typedef struct TrafficNode {</p><p><b>
25、; char n ;</b></p><p> ame[MAX_STRING_NUM]; //班次 </p><p> int StartTime,StopTime; //起止時間 </p><p> int EndCity; //火車到達(dá)城市的編號</p><p> int Cost; //票價 </p>
26、<p> } TrafficNodeDat; </p><p> typedef struct VNode </p><p><b> { </b></p><p> CityType city; //城市編號</p><p> int TrainNum,FlightNum; //標(biāo)記下面Train
27、數(shù)組和Flight數(shù)組里元素個數(shù) </p><p> TrafficNodeDat Train[MAX_TRAFFIC_NUM]; //數(shù)組成員為結(jié)構(gòu)體,記錄了到達(dá)城市、起止時間、票價和班次 </p><p> TrafficNodeDat Flight[MAX_TRAFFIC_NUM]; </p><p> } VNodeDat; </p>&
28、lt;p> typedef struct PNode </p><p><b> { </b></p><p> int City; </p><p> int TraNo; </p><p><b> }</b></p><p> 5.2 系統(tǒng)函數(shù)詳細(xì)介紹
29、</p><p> 1、void Dijkstra(int s[30][30],int p_start,int p_end,int TravelType)</p><p> 迪杰斯特拉算法計算最短路徑函數(shù)。這個函數(shù)中迪加斯特拉算法是用來求從已知源點到其他各個頂點最短距離的。其中運(yùn)行結(jié)果是找到從源點到其他各個頂點的路徑和最短距離。</p><p> 2、Calc
30、MinTime(int StartCity,int EndCity,int TravelType)</p><p> 查詢最短時間路線函數(shù)。此函數(shù)主要實現(xiàn)用戶通過輸入起始城市名來查找最短時間路線的功能。</p><p> 3、CalcMinCost(int StartCity,int EndCity,int TravelType)</p><p> 查詢最小耗
31、費(fèi)路線函數(shù)。此函數(shù)主要實現(xiàn)用戶通過輸入起始城市名,來查找最小和耗費(fèi)路線的功能。</p><p> 4、void Line(int city,int traveltype)</p><p> 查找城市中的所有路線函數(shù)。此函數(shù)主要實現(xiàn)用戶通過輸入城市名來查詢城市中的所有路線的功能。</p><p> 5.3 系統(tǒng)功能模塊介紹</p><p>
32、; 本系統(tǒng)共分12個模塊</p><p> 1、主函數(shù):主函數(shù)是程序的入口,采用模塊化設(shè)計,通過菜單選擇,來調(diào)用實現(xiàn)各功能所要的函數(shù)。</p><p> 2、添加城市:主要有管理員增加城市名。</p><p> 3、查找城市并返回序號:管理員查找是否增加城市成功。</p><p> 4、刪除城市:由管理員刪除不需要的城市。</
33、p><p> 5、添加列車:管理員添加列車。</p><p> 6、添加航班:管理員添加航班。</p><p> 7、刪除列車或航班:管理員刪除列車或航班。</p><p> 8、找出最小費(fèi)用路線:用戶查找最小費(fèi)用路線。</p><p> 9、找出最短時間路線:用戶找出最短時間路線。</p><
34、;p> 10、計算最快路線耗費(fèi)的時間:用戶計算最快路線耗費(fèi)的時間。</p><p> 11、主界面:清楚的分辨管理員和用戶。</p><p> 12、退出:退出系統(tǒng)。</p><p> 5.4 具體模塊設(shè)計</p><p> 5.4.1 計算最少費(fèi)用功能模塊設(shè)計</p><p> 圖5.4.1計算最少
35、費(fèi)用功能模塊設(shè)計圖</p><p> 5.4.2計算最短路徑功能模塊設(shè)計</p><p> 圖5.4.2計算最短路徑功能模塊設(shè)計</p><p> 5.4.3 計算最短時間功能模塊設(shè)計</p><p> 圖5.4.3 計算最短時間功能模塊設(shè)計</p><p><b> 6.調(diào)試分析</b>
36、;</p><p> 本軟件是基于Windows的編程開發(fā),所以,軟件調(diào)試必須在Windows環(huán)境下進(jìn)行。調(diào)試前須做好準(zhǔn)備工作:</p><p> 需要安裝Visual C++6.0的計算機(jī)一臺;</p><p> 配置好之后,在Visual C++6.0環(huán)境下進(jìn)行軟件的調(diào)試。</p><p><b> 測試數(shù)據(jù):</
37、b></p><p><b> 用戶模塊:</b></p><p> ?。?)在用戶模塊中,根據(jù)主界面提示,鍵入數(shù)字2,確定。再按提示進(jìn)行操作測試,添加一條記錄后,發(fā)現(xiàn)在數(shù)據(jù)文本中有保存該記錄,如果錯誤輸入,觀察是否能正常提示信息。否則修改程序再進(jìn)行調(diào)試。</p><p> 例如:輸入2后,確定,程序顯示“這里是用戶界面,歡迎進(jìn)入:”
38、,根據(jù)下面序號3、2、1、0選擇自己想要查找的信息,按照城市名查找最小耗費(fèi)路線、城市最短時間路線、城市所有路線功能。選擇0返回上一步。</p><p> (2)算法改進(jìn)設(shè)想:</p><p> 在程序設(shè)計前期,我們并沒有用txt文件來保存城市、航班、交通路線信息。經(jīng)過我不斷的修改以及調(diào)試后,該程序總算可以進(jìn)行txt文本的讀出與寫入,并且添加城市、航班、交通路線信息后可以直接將信息保存在
39、txt文本文件中。</p><p><b> 7.使用說明</b></p><p> 圖7.1 系統(tǒng)主界面</p><p> 此圖為主界面,選擇序號即可進(jìn)入所需界面。進(jìn)入管理員界面需經(jīng)過身份驗證,輸入用戶名和密碼,本程序用戶名和密碼均為123456。</p><p> 圖7.2 管理員界面</p>
40、<p> 此圖為管理員界面,這是添加交通路線的例子。</p><p><b> 圖7.3 用戶界面</b></p><p> 此圖為用戶界面,這事查詢城市最小耗費(fèi)路線,最短路線和查詢城市所有路線的例子</p><p> 圖7.4 添加城市、路線、航班界面</p><p> 此圖是管理員添加城市、交通路
41、線、航班的例子。</p><p><b> 查詢城市路線界面</b></p><p> 此圖為查詢火車最小耗費(fèi)路線。這是兩地之間無中轉(zhuǎn)站的例子。</p><p> 圖7.6 查詢路線界面</p><p> 此圖為查詢火車最小耗費(fèi)路線。這是兩地之間無中轉(zhuǎn)站的例子。</p><p> 圖7.
42、7查詢城市所有路線界面</p><p> 此圖是查詢城市有路線的例子。</p><p> 圖7.8 查詢最小耗費(fèi)路線界面</p><p> 此圖為查詢火車最小耗費(fèi)路線時兩地之間有中轉(zhuǎn)站的例子飛機(jī)路線查詢同此。</p><p><b> 8.設(shè)計總結(jié)</b></p><p> 課程設(shè)計是對
43、自己一個學(xué)期以來學(xué)習(xí)的良好檢驗,在所有課題中,我選擇了交通咨詢系統(tǒng)的課題題目。在一個星期的設(shè)計過程中,碰到過許多困難,也從書籍和網(wǎng)絡(luò)中找過許多相關(guān)資料來完善自己的設(shè)計。但結(jié)果不是讓人很滿意,可能是接觸時間太短,對數(shù)據(jù)結(jié)構(gòu)的認(rèn)識還不深刻。</p><p> 通過這次課程設(shè)計,我對用迪杰斯特拉算法計算最短路徑有了更深刻的認(rèn)識,加強(qiáng)了我對數(shù)據(jù)結(jié)構(gòu)的了解。我知道如果要想在C方面有成就,必須多想多練習(xí)?,F(xiàn)在我還是缺少練習(xí)
44、,看程序可能看得懂。而當(dāng)真正的編寫程序起來就遇到困難了。通過這次系統(tǒng)的編寫,我明白了編程要細(xì)心,有耐心。有些程序看起來很多很難,但只要抽絲剝繭的慢慢分析,就能明白它是怎么運(yùn)行的。其實,只要踏踏實實一步一步來,你會發(fā)覺原來編程難度也不過如此。同時,我懂得了要多思考,遇到問題或不解時不能不懂裝懂,要盡量去想請清其緣由,要懂得查閱有用的資料。</p><p> 我知道在這次的課程設(shè)計中自已還有許多的欠缺,在以后的日子
45、中,我一定得更加嚴(yán)格要求自己,改正缺點,不斷努力,不斷進(jìn)步。</p><p><b> 9.參考文獻(xiàn)</b></p><p> [1] Clifford,A.Shaffer編著,數(shù)決結(jié)構(gòu)與算法分析(C++版),電子工業(yè)出版社,2005.7 </p><p> [2] 趙文靜,祁飛等編著,數(shù)據(jù)結(jié)構(gòu)與算法,科學(xué)出版社,2005.08</
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通咨詢系統(tǒng)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-----全國交通咨詢系統(tǒng)
- 校園導(dǎo)游咨詢系統(tǒng)課程設(shè)計
- 一元高次多項式和交通咨詢系統(tǒng)設(shè)計課程設(shè)計
- 交通燈課程設(shè)計---交通控制系統(tǒng)設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計說明書(全國交通咨詢模擬系統(tǒng))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計說明書(全國交通咨詢模擬系統(tǒng))
- 交通設(shè)計課程設(shè)計
- 校園導(dǎo)游咨詢系統(tǒng)-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 交通控制系統(tǒng)課程設(shè)計報告
- 校園導(dǎo)游咨詢系統(tǒng)---數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——校園導(dǎo)游咨詢系統(tǒng)
- 交通規(guī)劃課程設(shè)計
- 交通工程課程設(shè)計
- 交通規(guī)劃課程設(shè)計
- 交通規(guī)劃課程設(shè)計
- 交通仿真課程設(shè)計
- 交通規(guī)劃課程設(shè)計
- 交通規(guī)劃課程設(shè)計
- 交通工程課程設(shè)計
評論
0/150
提交評論