數(shù)據(jù)結(jié)構(gòu)課程設計---飛機售票系統(tǒng)_第1頁
已閱讀1頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設計說明書</b></p><p>  專 業(yè): 網(wǎng)絡工程 </p><p>  課程名稱: 數(shù)據(jù)結(jié)構(gòu)課程設計 班級: 網(wǎng)絡B10 </p><p>  設計題目: 飛機售票系統(tǒng) </p><p>  

2、設計時間: 2012-2-27 至 2012-3-9 </p><p>  評 語:_________________________________</p><p>  _________________________________________</p><p>  _________________________________

3、________</p><p>  _________________________________________</p><p>  _________________________________________</p><p>  評閱成績:__ __評閱教師:__ </p><p><b>  一

4、、設計題目與要求</b></p><p>  任務:通過此系統(tǒng)可以實現(xiàn)如下功能:</p><p>  1、錄入功能:可以錄入航班信息,如錄入航班號,到達城市,起飛時間,飛機票數(shù),票價。</p><p>  2、定票功能可以查詢航班的各項信息,如可以查詢起降時間,起飛抵達城市,航班票價,確定航班是否滿倉,航班號。3、退票功能可以訂票并且記錄下乘客的

5、相關(guān)信息如記錄下乘客姓名,身份證號碼,所訂航班的航班號以及所訂的票數(shù)。4、刪除功能可以退票并且記錄乘客的相關(guān)信息以及退票信息。5、增加航線功能可以根據(jù)需要由管理員對航班信息進行修改更正。</p><p>  6、查詢功能可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵達城市,確定航班是否滿倉)。</p><p>  7、修改航線模塊功能當航班信息改變可以修改航班數(shù)據(jù)

6、文件</p><p><b>  二、概要設計</b></p><p>  每個模塊的算法設計說明如下:</p><p><b> ?。?)錄入模塊: </b></p><p>  查找單鏈表的鏈尾,在鏈尾插入一個“航班信息”的新結(jié)點。</p><p><b>  

7、(2)訂票模塊:</b></p><p>  查找乘客要訂的航班號,判斷此航班是否有空位,有則輸入乘客有關(guān)信息,訂票成功,否則失敗。</p><p><b> ?。?)退票模塊:</b></p><p>  輸入要退票的乘客姓名以及證件號碼,查找乘客資料的鏈表中是否有這位乘客,有則刪去此結(jié)點,并在空位加上1,無則退票失敗。</

8、p><p><b>  (4)刪除模塊: </b></p><p>  確認是否有該航班信息再進行修改,有則在航班信息鏈表中查找要刪除的結(jié)點,進行刪除,否則不能刪除。</p><p>  (5)增加航線模塊:</p><p>  查找單鏈表的鏈尾,在鏈尾插入一個“航班信息”的新結(jié)點。</p><p>

9、<b>  (6)查詢模塊:</b></p><p>  提供三種查方式:按航班號、起飛地點和日期查詢,1代表按航班號查詢,2代表按日期查詢,3代表按起飛抵達地點查詢。0則表示退出查詢。順著單鏈表查找,如果與航班號(航線)一致,輸出相關(guān)信息,否則,查詢不成功。</p><p><b> ?。?)修改模塊:</b></p><p

10、>  確認是否有該航班信息再進行修改,有則在航班信息鏈表中查找要修改的結(jié)點,進行修改,否則不能修改。</p><p><b>  三、算法設計</b></p><p><b>  1.存儲結(jié)構(gòu)設計:</b></p><p>  航班的信息:為了便于查找和修改,航班的情況存儲結(jié)構(gòu)采用單鏈表,每個元素表示一個航班的情況,

11、包括航班號、起飛日期、起飛時間、每個航班的機票總數(shù)、起飛地點、抵達地點、機票余量。</p><p><b>  單鏈表如下 :</b></p><p>  每個結(jié)點包括數(shù)據(jù)域和指針域:</p><p><b>  C語言描述如下:</b></p><p>  typedef struct airti

12、cket //建立航班數(shù)組結(jié)構(gòu) </p><p><b>  { </b></p><p>  int air_num;//航班號 </p><p>  char day[50];//起飛日期 </p><p>  char time[50];//起飛時間 </p>&l

13、t;p>  int count;//每航班的機票總數(shù) </p><p>  char start[50];//起飛地點 </p><p>  char ends[50];//抵達地點 </p><p>  int left;//機票余量 </p><p>  struct airticket *next;//指針

14、 </p><p>  }airticket; </p><p>  客戶的資料:為了便于插入、刪除和修改,其采用單鏈表存儲結(jié)構(gòu),每個數(shù)據(jù)元素包括姓名、證件號碼、航班號和所定機票數(shù)四個數(shù)據(jù)項:</p><p>  每個結(jié)點包括數(shù)據(jù)域和指針域:</p><p><b>  C語言描述如下:</b></p&g

15、t;<p>  typedef struct customer </p><p><b>  { </b></p><p>  int air_num;//航班號 </p><p>  char IDcard[25];//客戶身份證號 </p><p>  int ticket_num;

16、//每個客戶所訂的機票數(shù) </p><p>  char name[8]; //客戶姓名 </p><p>  struct customer *next;//指針 </p><p>  }customer; </p><p><b>  2.詳細設計:</b></p><

17、p>  1.建立客戶鏈表插與插入客戶數(shù)據(jù)</p><p>  2.建立航班鏈表信息</p><p><b>  3.刪除航班信息</b></p><p><b>  4.插入新航班信息</b></p><p><b>  5.查詢航班信息</b></p>&

18、lt;p><b>  6.訂票</b></p><p><b>  7.退票</b></p><p><b>  8.修改航班信息</b></p><p>  四、運行結(jié)果和調(diào)試分析</p><p><b>  創(chuàng)建航班信息:</b></p&g

19、t;<p><b>  菜單顯示:</b></p><p><b>  訂票:</b></p><p><b>  刪除航班:</b></p><p><b>  退票:</b></p><p><b>  增加新航班:</b

20、></p><p><b>  以下三幅圖分別是</b></p><p>  1、按航班號查詢請按</p><p>  2、按日期查詢請按 </p><p>  3、按起飛抵達地點查詢請按 </p><p><b>  修改航班信息</b></p><

21、;p><b>  瀏覽所有客戶信息</b></p><p><b>  查詢所有航班信息</b></p><p><b>  五、總結(jié)體會</b></p><p>  學期實的課程設計是老師命題,學生可以選擇老師的題目給出的題目中選一個,并且自己找程序。</p><p>

22、  在這次的課程設計中我選擇了飛機售票系統(tǒng),之所以使用飛機售票系統(tǒng)作為我們的執(zhí)行核心,不僅是因為飛機售票系統(tǒng)現(xiàn)在是社會上應用比較多的程序,也因為想通過使實用設計飛機售票系統(tǒng)鍛煉自己的編程能力,養(yǎng)成良好的c語言編程風格。不管怎樣,這些都是一種鍛煉,一種知識的積累,能力的提高。完全可以把這個當作基礎(chǔ)東西,只有掌握了這些最基礎(chǔ)的,才可以更進一步,取得更好的成績。</p><p>  在這次課程設計實驗中我遇到了很多的困

23、難:調(diào)試是程序設計中最重要的一環(huán),他幾乎決定了程序優(yōu)劣。現(xiàn)將我調(diào)試時遇到的一些問題及其解決的方法的記錄陳列如下以供學習與交流:</p><p>  我將調(diào)試時遇到的一些問題分為幾大類:</p><p><b> ?。?)、語法錯誤:</b></p><p>  語法錯誤相對來說要好調(diào)試一些的,但有一點需要特別指出:是應該用規(guī)范化的格式輸入源程序

24、,二是應該注意函數(shù)的實參與形參的傳遞問題,要盡量保持兩者類型的匹配,(當不匹配又可通過編譯時會發(fā)生數(shù)據(jù)類型的隱式轉(zhuǎn)換,這樣會產(chǎn)生很多不安全且又很難找到的錯誤)例如我在執(zhí)行退票環(huán)節(jié)的時候,把名字輸成了“jinzaizhong”遠遠大于我定義的char name[8] ,所以執(zhí)行時,總會退票不成功。</p><p> ?。?)、邏輯錯誤:</p><p>  在編譯錯誤為0的情況下,不要高興

25、的太早,這只是你調(diào)試程序的第一步,此時也要關(guān)注一下警告warning,每一個warning都有他一定的道理。當你修改的只剩下一些無關(guān)緊要的時,你才可以連接運行你的程序了。這其中出現(xiàn)的一些邏輯錯誤才是調(diào)試的難點所在。</p><p>  (3)代碼不能硬敲進去:</p><p>  因為程序的功能相對不夠齊全,所以在原來的基礎(chǔ)上我又生硬的敲進去,根本就不能執(zhí)行,所以敲代碼的時候,不能只顧頭不

26、顧尾,要考慮到這個程序的整體效果</p><p> ?。?)名字沖突的不安全性:</p><p>  名字,特別是函數(shù)名、數(shù)據(jù)類型名經(jīng)常與自己定義的名字或系統(tǒng)的,包括庫里面的名字相同,解決的方法是盡量用能表達意思且系統(tǒng)不太可能出現(xiàn)的名字命名。(僅在當兩個相同的標識符在同一個作用域時才會出現(xiàn)此問題。</p><p>  (5)出錯不能只在程序里面找:</p>

27、;<p>  我在運行程序的時候,發(fā)現(xiàn)程序總有一個錯誤,因為看不懂,所以找了同學講解,但是在同學的電腦上面發(fā)現(xiàn),自己的程序運行的反而沒有錯誤,后來才發(fā)現(xiàn)是自己的編程軟件出了問題。</p><p>  設計收獲及心得體會:</p><p>  這幾天編程發(fā)現(xiàn)了幾個有趣的結(jié)論:</p><p>  1、編程的真正吸引力可與玩游戲相媲美</p>

28、<p>  在做課程設計的這兩個星期,除了吃飯外沒有一刻不是在電腦前的,晚上睡覺想著它,早上7點起床擺弄它。尤其是在調(diào)試時找一個錯誤用了幾個小時仍未找到卻忽然醒悟或找的那一刻的感覺實在太好了。</p><p>  2、真正的程序不只是“運行”了! </p><p>  真正可稱得上“好程序”是要滿足一大堆的條件的。可讀性、健壯性、可維護性、高效性等等等等條件。其實大部分功能我

29、早就已經(jīng)實現(xiàn)了,(只用了兩天),但其后的測試、修改、完善和現(xiàn)在的設計報告也用了不少的時間。要提高自己的編程能力,你必須親自去體驗、去設計、編輯、編譯、調(diào)試、運行。在此之前,我也以為自己對C語言已經(jīng)比較懂了,可還是遇到了一系列問題,也學到很多東西。每一個程序員都是在失敗、嘗試、失敗、嘗試與收獲中成長起來的。</p><p>  我認為,在這學期的實驗中,在收獲知識的同時,還收獲了閱歷,收獲了成熟,在此過程中,我們通

30、過查找大量資料,請教老師,以及不懈的努力,不僅培養(yǎng)了獨立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實驗課上,我們學會了很多學習的方法。而這是日后最實用的,真的是受益匪淺。要面對社會的挑戰(zhàn),只有不斷的學習、實踐,再學習、再實踐。</p><p>  而且,這對于我們的將來也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情。就像中國提倡的艱苦奮斗一樣,我

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論