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

下載本文檔

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

文檔簡介

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

2、設(shè)計(jì)時(shí)間: 2012-2-27 至 2012-3-9 </p><p>  評 語:_________________________________</p><p>  _________________________________________</p><p>  _________________________________

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

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

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

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

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

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

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

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

11、包括航班號(hào)、起飛日期、起飛時(shí)間、每個(gè)航班的機(jī)票總數(shù)、起飛地點(diǎn)、抵達(dá)地點(diǎn)、機(jī)票余量。</p><p><b>  單鏈表如下 :</b></p><p>  每個(gè)結(jié)點(diǎn)包括數(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;//航班號(hào) </p><p>  char day[50];//起飛日期 </p><p>  char time[50];//起飛時(shí)間 </p>&l

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

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

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

16、//每個(gè)客戶所訂的機(jī)票數(shù) </p><p>  char name[8]; //客戶姓名 </p><p>  struct customer *next;//指針 </p><p>  }customer; </p><p><b>  2.詳細(xì)設(shè)計(jì):</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>  四、運(yùn)行結(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、按航班號(hào)查詢請按</p><p>  2、按日期查詢請按 </p><p>  3、按起飛抵達(dá)地點(diǎn)查詢請按 </p><p><b>  修改航班信息</b></p><

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

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

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

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

25、的太早,這只是你調(diào)試程序的第一步,此時(shí)也要關(guān)注一下警告warning,每一個(gè)warning都有他一定的道理。當(dāng)你修改的只剩下一些無關(guān)緊要的時(shí),你才可以連接運(yùn)行你的程序了。這其中出現(xiàn)的一些邏輯錯(cuò)誤才是調(diào)試的難點(diǎn)所在。</p><p>  (3)代碼不能硬敲進(jìn)去:</p><p>  因?yàn)槌绦虻墓δ芟鄬Σ粔螨R全,所以在原來的基礎(chǔ)上我又生硬的敲進(jìn)去,根本就不能執(zhí)行,所以敲代碼的時(shí)候,不能只顧頭不

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

27、;<p>  我在運(yùn)行程序的時(shí)候,發(fā)現(xiàn)程序總有一個(gè)錯(cuò)誤,因?yàn)榭床欢哉伊送瑢W(xué)講解,但是在同學(xué)的電腦上面發(fā)現(xiàn),自己的程序運(yùn)行的反而沒有錯(cuò)誤,后來才發(fā)現(xiàn)是自己的編程軟件出了問題。</p><p>  設(shè)計(jì)收獲及心得體會(huì):</p><p>  這幾天編程發(fā)現(xiàn)了幾個(gè)有趣的結(jié)論:</p><p>  1、編程的真正吸引力可與玩游戲相媲美</p>

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

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

30、過查找大量資料,請教老師,以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)課上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。</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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論