C語言課程設(shè)計報告航班管理系統(tǒng)_第1頁
C語言課程設(shè)計報告航班管理系統(tǒng)_第2頁
C語言課程設(shè)計報告航班管理系統(tǒng)_第3頁
C語言課程設(shè)計報告航班管理系統(tǒng)_第4頁
C語言課程設(shè)計報告航班管理系統(tǒng)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C程序課程設(shè)計報告題目:航班管理系統(tǒng)班級:學(xué)號:姓名: 指導(dǎo)教師: 年 月 日一、問題描述2二、設(shè)計及實驗要點31功能分析32、總體設(shè)計4(一)、功能模塊設(shè)計41.航班管理系統(tǒng)的功能主流程42.管理系統(tǒng)的查詢功能53.顧客進行訂票的功能模塊54.退票的功能模塊55.續(xù)票的功能模塊56.在訂票續(xù)票功能完成之后,對顧客訂票信息的查詢功能模塊67.退出系統(tǒng)的功能模塊6(二)、數(shù)據(jù)結(jié)構(gòu)設(shè)計6(三)、函數(shù)功能描述8三、源程序(見附錄)9四、程序?qū)崿F(xiàn)9(一)源碼分析91.程序預(yù)處理92.主函數(shù)main()123管理系統(tǒng)的查詢功能124.顧客訂票的功能模塊145.顧客退票的功能模塊165.顧客續(xù)票的功能模塊

2、18(二)運行結(jié)果22五、不足之處22六、參考文獻22航班管理系統(tǒng)一、問題描述 航班售票是民航業(yè)務(wù)管理的一項最基本業(yè)務(wù)。表面上看,他只是民航業(yè)務(wù)的一個簡單部分,但是她涉及的業(yè)務(wù)量大、客戶多,還涉及資金管理與客戶服務(wù)等多方面,因此這項業(yè)務(wù)并不像看上去那么簡單。過去傳統(tǒng)的售票方式已不能滿足現(xiàn)代航空業(yè)務(wù)流量劇增的客戶要求,本次設(shè)計便是利用目前先進的開發(fā)工具Delphi7.0以及SQL server 2000開發(fā)一個航班售票管理系統(tǒng),她能方便快捷的運用在民航業(yè)務(wù)的營運之中。本系統(tǒng)是對民航飛機售票業(yè)務(wù)的一種模擬。此次的開發(fā)系統(tǒng)主要是完成航班售票管理的各種自動化服務(wù),通過計算機的運行完成各項事務(wù),設(shè)計一個

3、航班售票管理的數(shù)據(jù)管理系統(tǒng)。通過開發(fā)此系統(tǒng),可穩(wěn)定簡便地通過計算機來執(zhí)行一系列操作,減少人工勞動強度,達到省時省力的目的,內(nèi)容包括乘客信息添加、修改、刪除、查詢;航班的售票訂票的添加、修改、刪除、查詢;航空公司的航班時刻表的查詢等。在此次課程設(shè)計的實驗中,便是利用C語言和數(shù)據(jù)結(jié)構(gòu)的一些知識模擬航班管理系統(tǒng)。二、設(shè)計及實驗要點1功能分析如圖一 所示航班管理系統(tǒng)主要有以下第一: 具有乘客乘坐飛機的起點、終點、日期和可以使用的座位等基本信息。第二: 售票/訂票系統(tǒng):包括乘客信息添加、修改、刪除、查詢。第三: 可以在顧客退票時,及時讓侯票的顧客補到票第四: 顧客可以及時的查詢自己是不是訂票成功。第五:

4、 顧客可以在無票時能預(yù)定票數(shù)。航班管理系統(tǒng)所有航班的信息查詢航線客票預(yù)訂辦理退票查看資料 (圖一:航班管理系統(tǒng)功能的主要模塊)開始查詢所有的航班信息(包括航班號,票數(shù),以及時間和到達地點等) 查詢要到的目的地的所有航線??推鳖A(yù)訂,調(diào)用book( )函數(shù),辦理退票,調(diào)用back-ticket( )函數(shù),查看資料,調(diào)用Getlem( )函數(shù),結(jié)束 (圖二:航班管理系統(tǒng)的主流程圖)2、總體設(shè)計(一)、功能模塊設(shè)計1.航班管理系統(tǒng)的功能主流程2.管理系統(tǒng)的查詢功能3.顧客進行訂票的功能模塊 4.退票的功能模塊5.續(xù)票的功能模塊6.在訂票續(xù)票功能完成之后,對顧客訂票信息的查詢功能模塊7.退出系統(tǒng)的功能模

5、塊(二)、數(shù)據(jù)結(jié)構(gòu)設(shè)計此程序中運用了C語言的結(jié)構(gòu)體,數(shù)據(jù)結(jié)構(gòu)中鏈表和隊列的相關(guān)知識,為了便于理解陳旭,這里分別來介紹。1 訂票顧客的結(jié)構(gòu)體 typedef struct PassengerNode /訂票客戶結(jié)點 。PassengerNode; /已訂票客戶結(jié)點typedef structPassengerNode結(jié)構(gòu)體在系統(tǒng)中用來存儲顧客的一些基本信息,如以上定義一樣,包括 顧客的姓名 訂票客戶身份號碼 顧客的電話號碼 訂票的數(shù)量 和艙位等級以及用“PassengerNode *next;”來指向下一個訂票客戶結(jié)點。2. 待訂票客戶的結(jié)構(gòu)體typedef struct WPassengerN

6、ode 。WPassengerNode; /待訂票客戶結(jié)點WpassengerNode結(jié)構(gòu)體在系統(tǒng)中用來存儲待訂票客戶的一些基本信息,如以上定義,包括待訂票客戶的姓名 待訂票客戶的身份證號 待訂票客戶電話號碼 待訂票客戶機票需求量以及用“WPassengerNode *next;”來指向下一個待訂票客戶節(jié)點。3. /訂票客戶鏈表typedef struct 。passengerLink; /已訂票客戶單鏈表(按ID有序)在該鏈表中,用“ PassengerNode *passenger;”來指向訂票客戶,用“ int length;”來統(tǒng)計訂票的人數(shù)4. 待訂票客戶的隊列typedef str

7、uct 。WpassengerQueue; /侍訂票客戶鏈隊列在該隊列中,“WPassengerNode *front;”用來指向隊列中的第一個人,即為頭指針,“WPassengerNode *rear;”指向隊尾。4.航班節(jié)點(即每一個航班的結(jié)構(gòu)體)typedef struct flightnode /航班結(jié)點 。flightnode;/航班結(jié)點在該航班節(jié)點中,用來存儲每一個航班的信息,其中有終點站名稱 航班編號 飛機編號 飛行周日 飛機能載最大人數(shù) 還余下多少張票等基本信息并用“flightnode *next;”來指向下一個航班節(jié)點,用“ WpassengerQueue npasseng

8、er;”來指向本次航班帶票客戶隊列,用“passengerLink passenger;”來指向本次航班已定票的客戶鏈表。5.航班順序表的定義typedef struct 。SqFlight;/航班順序線性表此結(jié)構(gòu)體中用“flightnode *flight;”來指向系統(tǒng)中的所有航班的頭指針,用“int length;”來統(tǒng)計航班的數(shù)量。(三)、函數(shù)功能描述1. ask_passenger()函數(shù)原型int ask_passenger(flightnode *p,SqFlight LF)該函數(shù)用來完成顧客續(xù)票的操作2. back_ticket()函數(shù)原型int back_ticket(int

9、number,SqFlight &LF)該函數(shù)用來完成為顧客辦理退票業(yè)務(wù)。3. book()函數(shù)原型int book(int number,SqFlight &LF)該函數(shù)用來完成顧客的訂票業(yè)務(wù)4. GetElem()函數(shù)原型int GetElem(SqFlight LF,int number)該函數(shù)用來完成顧客查詢基本資料的一些操作5. InitFlightNode()函數(shù)原型int InitFlightNode(SqFlight& LF)該函數(shù)用來完成對航班順序表中的每一個航班進行賦值并將賦值后的航班連接到航班順序表中6. InitList_Sq()函數(shù)原型int

10、InitList_Sq(SqFlight &LF) 此函數(shù)用來構(gòu)造一個空的線性表LF 飛機航班結(jié)點7. InitList_pa()函數(shù)原型int InitList_pa(passengerLink &PA)該函數(shù) 用來為已訂票客戶鏈表建一個空鏈表8. InitList_WPQ()函數(shù)原型int InitList_WPQ(WpassengerQueue &WPQ)該函數(shù) 用來為待票客戶建一個空的隊列9. lookup()函數(shù)原型int lookup(char *cityname,SqFlight LF)用來查找航班,形參指針cityname指向查詢時輸入的航線的首地址,引

11、用航班順序線性表LF10. searchID()函數(shù)原型PassengerNode *searchID(flightnode *p,char *ID)p是指向某個航班結(jié)點的指,ID是要查詢的ID,該函數(shù)是通過ID號來查詢航班,并返回已訂票顧客節(jié)點11. searchNUM()函數(shù)原型flightnode *searchNUM(int number,SqFlight LF)該函數(shù)通過number來按航班號查詢航班,并返回相關(guān)的航班節(jié)點12. system1()函數(shù)原型void system1(SqFlight LF)該函數(shù)主要實現(xiàn)/顯示主菜單 能實現(xiàn)的操作等并像用戶提供進行選擇的界面。13. w

12、book()函數(shù)原型int wbook(SqFlight & LF,flightnode *p)該函數(shù)是續(xù)票函數(shù)的補充,主要實現(xiàn)將待票客戶插入到待票隊列的隊尾14. main()函數(shù)原型void main()該函數(shù)先通過system("color 0A"); 來實現(xiàn)改變背景和前景顏色的效果,繼而分別通過InitList_Sq(LF);InitFlightNode(LF);來完成對航班順序表的初始化。最后通過system1(LF); 來進入顯示系統(tǒng)的主界面,以供用戶選擇。三、源程序(見附錄)四、程序?qū)崿F(xiàn)(一)源碼分析1.程序預(yù)處理2.主函數(shù)main()主函數(shù)實現(xiàn)功能主

13、要是為進入系統(tǒng)做好準備,并完成航班的初始化,即對各個航班賦上初值。void main()system("color 0A");/改變背景和前景顏色system("mode con: cols=70 lines=35");/調(diào)整顯示方框的大小SqFlight LF;InitList_Sq(LF);InitFlightNode(LF);system1(LF);printf("n");3管理系統(tǒng)的查詢功能該功能主要實在主函數(shù)初始化的前提下,調(diào)用lookup( )函數(shù)來完成所有航班的查詢。另外也可以通過目的地,輸入目的地的大寫字母來調(diào)用loo

14、kup.( )來完成。int lookup(char *cityname,SqFlight LF) /查詢系統(tǒng) /形參指針cityname指向查詢時輸入的航線的首地址 /引用航班順序線性表LF。其操作實現(xiàn)的結(jié)果按如圖 1 所示。當(dāng)輸入目的地的結(jié)果如圖 2 所示。查詢完以后,按任意鍵有可進入主界面 圖 1 圖 2 (輸入目的地的準確查詢)4.顧客訂票的功能模塊。實現(xiàn)結(jié)果如圖 3 所示 圖 3 (訂票成功)5.顧客退票的功能模塊在完成訂票后,如果要退票,顧客可在在主界面中選擇 4 進行退票,此時通過調(diào)用函數(shù)back_ticket()來完成,在此函數(shù)中,先通過searchNUM(number,LF)

15、 找到要辦理航班的航班,繼而通過修改訂票人的鏈表和剩余票數(shù)來刪除要退票的人的信息。具體操作如下所示int back_ticket(int number,SqFlight &LF)/辦理退票業(yè)務(wù) 。實現(xiàn)結(jié)果如圖 4 所示 圖 4 (退票成功)5.顧客續(xù)票的功能模塊在有待票客戶的前提下,系統(tǒng)通過ask_passenger()來完成待票人的補訂,并將其加入到已定票人的序列中,具體操作如下int ask_passenger(flightnode *p,SqFlight LF)。具體實現(xiàn)的結(jié)果如以下所示圖 5是有待票人的情況。 圖 5 (沒有足夠的票,進入到待票的隊列中)圖 6 為在有人退票的情況下進行的補票即在顯示退票的情況下,即顯示“退票成功”后會出現(xiàn)待票人的一些信息,并詢問是不是要購票。在1.要 2.不要 的

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論