版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航班售票系統(tǒng)-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---窗口售票系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---火車售票系統(tǒng)的實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---飛機(jī)訂票系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)c語言版飛機(jī) 訂票 系統(tǒng)資料
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---數(shù)據(jù)結(jié)構(gòu)相關(guān)算法的演示系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--- 數(shù)據(jù)結(jié)構(gòu)各章算法的演示系統(tǒng)
評論
0/150
提交評論