版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 經(jīng)濟管理學(xué)院本科課程設(shè)計論文</p><p><b> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計</b></p><p><b> 目 錄</b></p><p><b> 目 錄I</b></p><p> 第1章 航空客運訂票系統(tǒng)- 2 -</p>
2、<p> 1.1需求分析- 2 -</p><p> 1.1.1問題描述- 2 -</p><p> 1.1.2查詢航線- 2 -</p><p> 1.1.3承辦訂票業(yè)務(wù)- 3 -</p><p> 1.1.4 退票業(yè)務(wù)- 3 -</p><p> 1.2概要設(shè)計- 3 -<
3、;/p><p> 1.3詳細設(shè)計及運行結(jié)果- 4 -</p><p> 1.4調(diào)試情況- 10 -</p><p> 1.5設(shè)計技巧及體會- 12 -</p><p> 第2章 校園導(dǎo)游系統(tǒng)- 13 -</p><p> 2.1需求分析- 13 -</p><p> 2.1.1
4、課程設(shè)計的目的- 14 -</p><p> 2.1.2問題描述……..- 15 -</p><p> 2.1.2設(shè)計要求- 15 -</p><p> 2.2概要設(shè)計- 16 -</p><p> 2.3 調(diào)試情況- 17 -</p><p> 2.4調(diào)試分析說明….- 18 -</p&g
5、t;<p> 第1章 航空客運訂票系統(tǒng)</p><p><b> 1.1需求分析</b></p><p> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計是綜合運用數(shù)據(jù)結(jié)構(gòu)課程中學(xué)到的幾種典型數(shù)據(jù)結(jié)構(gòu),以及程序設(shè)計語言(C語言),自行實現(xiàn)一個較為完整的應(yīng)用系統(tǒng)的設(shè)計與開發(fā)。通過課程設(shè)計,自己通過系統(tǒng)分析、系統(tǒng)設(shè)計、編程調(diào)試,寫實驗報告等環(huán)節(jié),進一步掌握應(yīng)用系統(tǒng)設(shè)計的方法和步驟,
6、靈活運用并深刻理解典型數(shù)據(jù)結(jié)構(gòu)在軟件開發(fā)中的應(yīng)用 。 學(xué)會將知識應(yīng)用于實際的方法,提高分析和解決問題的能力,增加綜合能力。航空空訂票系統(tǒng):熟練掌握鏈表存儲結(jié)構(gòu)及其建立過程和常用操作;熟練掌握隊列的建立過程和常用操作;學(xué)會自己調(diào)試程序的方法并掌握一定的技巧。航空客運訂票的業(yè)務(wù)活動包括:查詢航線、客票預(yù)訂和辦理退票等。設(shè)計一個航空客運訂票系統(tǒng),以使上述業(yè)務(wù)可以借助計算機來完成。</p><p><b>
7、 1.1.1問題描述</b></p><p> 每條航線所涉及的信息有:終點站名、航班號、飛機號、飛行日(星期幾)、乘員定額、余票量、已訂票的客戶名單(包括姓名、訂票量、艙位等級1,2或3)以及等候替補的客戶名單(包括姓名、所需票量); 全部數(shù)據(jù)可以只放在內(nèi)存中; 系統(tǒng)能實現(xiàn)的操作和功能如下: </p><p><b> 1.1.2查詢航線</b
8、></p><p> 根據(jù)旅客提出的終點站名輸出下列信息:航班號、飛機號、星期幾飛行,最近一天航班的日期和余票額。 </p><p> 1.1.3承辦訂票業(yè)務(wù)</p><p> 根據(jù)客戶提出的要求(航班號、訂票數(shù)額)查詢該航班票額情況,若尚有余票,則為客戶辦理訂票手續(xù), </p><p> 輸出座位號;若已滿員或余票額少
9、于定票額,則需重新詢問客戶要求。若需要,可登記排隊候補。 </p><p> 1.1.4 退票業(yè)務(wù)</p><p> 根據(jù)客戶提供的情況(日期、航班),為客戶辦理退票手續(xù),然后查詢該航班是否有人排隊候補,首先詢 </p><p> 問排在第一的客戶,若所退票額能滿足他的要求,則為他辦理訂票手續(xù),否則依次詢問其他排隊候補的客戶。 </p>
10、<p><b> 1.2概要設(shè)計</b></p><p> 系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)</p><p> 圖1—1 系統(tǒng)結(jié)構(gòu)圖</p><p> 顯示已初始化的全部航線信息瀏覽已訂票客戶信息根據(jù)客戶提出的終點站名,調(diào)用find()函數(shù)尋找航線信息,調(diào)用list函數(shù)輸出航線信息</p><p> 辦理
11、訂票業(yè)務(wù):根據(jù)客戶提供的航班號進行查詢航線信息,若客戶訂票額超過乘員定票總額,退出,若客戶訂票額末超過余票量,訂票成功并登記信息,在訂票乘員名單域中添加客戶信息;如果暫時沒有票,詢問客戶是否要排隊等侯,如果是,則在等候隊列增加該客戶的訂票信息。</p><p> 辦理退票業(yè)務(wù):調(diào)用查詢函數(shù),根據(jù)客戶提供的航線進行搜索根據(jù)客戶提供的姓名到訂票客戶名單域進行查詢。退票成功后,重新將航線名單域指向訂票單鏈表的頭指針。
12、根據(jù)隊列中從出的客戶信息判斷是否滿足要求,如果滿足,則將該客戶的信息插入到乘客信息鏈表中。</p><p><b> 退出本系統(tǒng)</b></p><p> 1.3詳細設(shè)計及運行結(jié)果</p><p> 顯示已初始化的全部航線信息</p><p><b> 圖1—2 流程圖</b></p&
13、gt;<p><b> 瀏覽已訂票客戶信息</b></p><p><b> 圖1—3流程圖</b></p><p><b> 查詢航線</b></p><p><b> 圖1—4航線圖</b></p><p><b>
14、 辦理訂票業(yè)務(wù)</b></p><p> 圖1—5訂票業(yè)務(wù)流程圖</p><p><b> 辦理退票業(yè)務(wù)</b></p><p> 圖1—6退票業(yè)務(wù)流程圖</p><p><b> 1.4調(diào)試情況</b></p><p><b> 初始界面:&
15、lt;/b></p><p> 圖1—7初始運行界面</p><p> 選擇1 ,則出現(xiàn)以下界面:</p><p> 圖1—8菜單管理界面</p><p> 系統(tǒng)提示菜單管理,根據(jù)不同需要選擇不同的查詢服務(wù):</p><p><b> 圖1—9添加飛行線</b></p>
16、<p> 圖1—10返回主菜單</p><p><b> 錯誤提示:</b></p><p><b> 圖1—11錯誤提示</b></p><p> 從主菜單選擇4進入旅客管理菜單,界面如下:</p><p> 圖1—12成功界面顯示</p><p>
17、<b> 此程序運行成功!</b></p><p> 1.5設(shè)計技巧及體會</p><p> 編譯和調(diào)試工具:選擇Visual C++6.0,該工具穩(wěn)定,其中有一個強大的調(diào)試工具,但我不是熟悉。還需要進一步的練習(xí)。</p><p> 在一周半的時間里,不斷地對程序及各模塊進行修改、編譯、調(diào)試、運行,其間遇到很多問題:</p>
18、<p> 因本人能力有限,在編寫的時候只使用了相對較為簡單的基礎(chǔ)語言 ,代替了相對較為復(fù)雜的語言,降低了運行效率。</p><p> 程序在起初設(shè)計的時候,經(jīng)常出現(xiàn)溢出錯誤,而且不只一處。為了修正這些溢出錯誤,耗費了大量的時間,修正解釋之后再看源程序,才發(fā)現(xiàn)原來只是因為開始的函數(shù)定義的數(shù)據(jù)類型出現(xiàn)了問題,對函數(shù)的定義不清楚,字符的不正確定義造成了后期大量的糾錯工作, </p>&l
19、t;p> 由于忘記了一些c語言的規(guī)范使得在調(diào)試過程中一些錯誤沒有發(fā)現(xiàn)。例如,調(diào)用函數(shù)時,數(shù)組只需要傳遞數(shù)組名即可;字符‘0’和整形的0是不同的文明不可以直接對其畫等號。</p><p> 測試用例具有一定的廣泛性。運行程序時輸入了多種不同字符信息,經(jīng)過多次修改結(jié)果達到了預(yù)期效果。說明程序具有一定的可靠性和穩(wěn)定性。</p><p> 通過調(diào)試我自己認為,在哈夫曼編碼譯碼系統(tǒng)中用出
20、棧入棧進行哈夫曼譯碼編碼譯碼要簡單于使用數(shù)組,而使用結(jié)構(gòu)體數(shù)組來存儲待編譯的字符,編碼譯碼時通過結(jié)構(gòu)體數(shù)組來實現(xiàn)要優(yōu)于使用鏈表。</p><p> 經(jīng)過這次實習(xí),我對調(diào)試掌握的更加熟練了,改變了過去只調(diào)試不知道如何對照程序語言修改程序的壞習(xí)慣,對調(diào)試也有了新的認識,意識到了程序語言的規(guī)范性以及我們在編程時要有嚴謹?shù)膽B(tài)度,同時在寫程序時如果加一定量的注釋,既增加了程序的可讀性,也可以使自己在讀程序時更容易。 &
21、lt;/p><p> 第2章 校園導(dǎo)游系統(tǒng)</p><p><b> 2.1需求分析</b></p><p> 現(xiàn)代快節(jié)奏的生活使得都市人越來越渴望親近自然,因此外出旅游現(xiàn)在被越來越多的都市人所看中,所以如何快速方便的找到我們想要的旅游景點的信息和最短路徑就成了一個很重要的問題。</p><p> 本設(shè)計基于圖的結(jié)構(gòu)
22、,創(chuàng)建一個無向圖,針對游客的實際需求,將重慶科技學(xué)院的景點編號、名稱、介紹等信息放入到圖的頂點當中并保存在景點文本文件當中,將兩個景點的編號和它們之間的距離當作權(quán)值也保存到權(quán)值文本文件當中,利用迪杰斯特拉算法來求從一個景點到另一個景點的最短距離,利用strcmp();函數(shù)來查找景點,并顯示出它的信息,從而解決了要查找景點信息和景點之間的最短路徑的問題,最后按照顯示屏上的提示進行相關(guān)的操作</p><p> 2.
23、1.1課程設(shè)計的目的</p><p> 數(shù)據(jù)結(jié)構(gòu)課程主要是研究非數(shù)值計算的程序設(shè)計問題中所出現(xiàn)的計算機操作對象以及它們之間的關(guān)系和操作的學(xué)科。</p><p> 數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計算機軟件和計算機硬件之間的一門計算機專業(yè)的核心課程,它是計算機程序設(shè)計、數(shù)據(jù)庫、操作系統(tǒng)、編譯原理及人工智能等的重要基礎(chǔ),廣泛的應(yīng)用于信息學(xué)、系統(tǒng)工程等各種領(lǐng)域。 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了將實際問題中所
24、涉及的對象在計算機中表示出來并對它們進行處理。通過課程設(shè)計可以提高學(xué)生的思維能力,促進學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高。</p><p> 通過此次課程設(shè)計主要達到以下目的:了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力;初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能; 提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力;訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般
25、規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風。 經(jīng)過一個學(xué)期對數(shù)據(jù)結(jié)構(gòu)這門課程的學(xué)習(xí),學(xué)生已基本把握了一些基礎(chǔ)知識,通過本次課程設(shè)計,在之前的基礎(chǔ)上,使學(xué)生具備合作開發(fā)軟件的思想和素養(yǎng),能獨立開發(fā)出一個可執(zhí)行代碼的規(guī)范化程序,顯著提高學(xué)生的分析問題和解決問題的能力。</p><p> 2.1.2問題描述:</p><p> 設(shè)計一個校園導(dǎo)游程序,為來訪的客人提
26、供各種信息查詢服務(wù)。</p><p> 設(shè)計東北電力大學(xué)的校園平面圖,所含景點不少于10個。以圖中頂點表示校內(nèi)各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。為來訪客人提供圖中任意景點相關(guān)信息的查詢。為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的一條最短的簡單路徑</p><p><b> 2.1.2設(shè)計要求</b>&
27、lt;/p><p> 本軟件為校園導(dǎo)游咨詢系統(tǒng),根據(jù)游客的實際需求而設(shè)計,首先創(chuàng)建一個無向圖,然后從文件當中讀取所有景點的編號、名稱、介紹和兩點之間的權(quán)值,并將它們寫入到無向圖當中。功能主要包括查找已知景點的信息,查找從一個景點到另一個景點的最短路徑,退出等基本操作。</p><p> 軟件的界面要求使用VC++6.0的運行環(huán)境。</p><p> 軟件的數(shù)據(jù)庫包
28、括校園景點的編號、名稱、介紹和兩個景點之間的距離(權(quán)值),首先要定義頂點的數(shù)據(jù)類型結(jié)構(gòu)體,里面包括景點的編號、名稱、介紹,然后定義一個鄰接矩陣結(jié)構(gòu)體來儲存邊的信息,最后定義一個無向圖類型的結(jié)構(gòu)體來儲存頂點的信息,邊的信息,頂點的個數(shù),邊的個數(shù)。</p><p> 最后游客按照顯示屏上的提示來進行相關(guān)的操作。</p><p><b> 2.2概要設(shè)計</b><
29、/p><p> 課程設(shè)計主要是鍛煉學(xué)生的動手實踐能力。實踐是檢驗學(xué)生對課本</p><p> 識的掌握程序和實踐動手能力,本課程的實踐教學(xué)的主要設(shè)計思想是: 實踐將理論與應(yīng)用結(jié)合起來,使學(xué)生學(xué)會如何將書上的知識用于解決實際的問題,培養(yǎng)軟件工作所需要的動手能力。根據(jù)實踐教學(xué)對象的不同采用多種教學(xué)手段。實踐教學(xué)內(nèi)容按照難易程度分級進行,題目要體現(xiàn)創(chuàng)新性。實踐教學(xué)形式根據(jù)環(huán)境和教學(xué)內(nèi)容的區(qū)別采
30、用不同的形式。實踐教學(xué)效果的檢驗要根據(jù)題目的不同采用多種教學(xué)檢驗方法</p><p> /*定義符號常量*/#define INT_MAX 10000 #define n 10/*定義全局變量*/int cost[n][n];/* 邊的值*/ int shortest[n][n];/* 兩點間的最短距離*/int path[n][n];/* 經(jīng)過的景點*//*自定義函數(shù)原型說明*/void in
31、troduce(); 景點介紹int shortestdistance(); 要查找的兩景點的最短距離void floyed(); 用floyed算法求兩個景點的最短路徑void display(int i,int j); 打印兩個景點的路徑及最短距離</p><p><b> 2.3 調(diào)試情況</b></p><p> 運行程序初始界面如下:
32、</p><p> 圖2—1運行初始界面</p><p> 主菜單提示:輸入i可介紹景點,輸入s可查詢兩景點之間的最短距離,輸入e退出系統(tǒng)。下圖是輸入i之后顯示的界面:</p><p> 圖2—2進入選擇菜單</p><p> 系統(tǒng)提示選擇一項景點進行介紹:</p><p><b> 圖2—3選擇介
33、紹</b></p><p> 顯示兩景點間的查詢方式:</p><p> 圖2—4顯示兩景點間的查詢方式</p><p> 查詢新校區(qū)體育館和新校區(qū)門之間的最短距離:</p><p> 圖2-5查詢最短距離</p><p> 2.4調(diào)試分析說明:</p><p> 這個程
34、序的主要難點是floyed算法,在調(diào)試過程中很難實現(xiàn)最短距離的查找就是因為對這個算法的不熟悉,出現(xiàn)了很多錯誤,在查找最短路徑時,無法算出需要的結(jié)果,而是直接跳出,始終無法得出最終結(jié)果,之后發(fā)現(xiàn)原來是沒有return 1。另外就是打印最短路徑的函數(shù)實現(xiàn),剛開始以為只是簡單的打印,后來才發(fā)現(xiàn)需要它自己的算法,值得我們自己好好琢磨。</p><p> 算法的改進設(shè)想:通過對各個不同功能函數(shù)的調(diào)用實現(xiàn)整個程序的功能,不
35、足在于整個程序顯得太厚重,應(yīng)該思考如何采用更簡單的方法實現(xiàn)程序的功能。另外,我們可以考慮把程序進一步擴充,實現(xiàn)更多更全面的功能。 </p><p> 總結(jié):這個程序?qū)ξ易畲蟮膸椭褪橇私饬薴loyed算法,并用它尋找圖中兩點之間的最短路徑。雖然在程序編制,調(diào)試的過程中出現(xiàn)了一些問題,但最終通過自己的努力和同學(xué)的幫助解決了問題。這可以鍛煉我獨立解決問題的能力。從剛開始的沒有頭緒到現(xiàn)在把它完全實現(xiàn),這個過程中,我得
36、到了很多,有解決問題的方法,有自己信心的建立,最重要的是整個過程我付出努力后的滿足,我相信,一份耕耘,一份收獲.</p><p><b> 參考文獻</b></p><p> [1]嚴蔚敏、吳偉民 《數(shù)據(jù)結(jié)構(gòu)》</p><p> [2]嚴蔚敏 《數(shù)據(jù)結(jié)構(gòu)題集》</p><p> [3]耿國華《數(shù)據(jù)結(jié)構(gòu)——C語言描
37、述》</p><p> [4]王曙燕 《C語言程序設(shè)計》</p><p> [5]數(shù)據(jù)結(jié)構(gòu)(C語言版) 嚴蔚敏 吳偉民 編著 清華大學(xué)出版社 2002</p><p> [6]C程序設(shè)計經(jīng)典教程,[美]Deitel,H.M.,[美]Deitel,P.J.著,清華大學(xué)出版社 2006</p><p> [7]Windows程序設(shè)計,[美
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空客運訂票系統(tǒng)課程設(shè)計
- 航空客運訂票系統(tǒng)課程設(shè)計報告
- 航空客運訂票系統(tǒng)課程設(shè)計(數(shù)據(jù)結(jié)構(gòu))
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--航空客運訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---航空客運訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)航空航班課程設(shè)計--航空客運訂票系統(tǒng)
- 航空客運訂票系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計源代碼
- 航空訂票管理系統(tǒng)課程設(shè)計
- 課程設(shè)計報告-航空訂票系統(tǒng)
- java課程設(shè)計-航空訂票管理系統(tǒng)設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---航空訂票系統(tǒng)
- 航空訂票系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-航空訂票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---航空訂票系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計-- 航空訂票管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)航空訂票系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計報告_航空訂票系統(tǒng)的菜單設(shè)計
- 飛機訂票系統(tǒng)課程設(shè)計
評論
0/150
提交評論