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