航班售票系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
航班售票系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁(yè)
航班售票系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁(yè)
航班售票系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁(yè)
航班售票系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 I 課程設(shè)計(jì)報(bào)告 課程名稱: 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì) 姓 名: 班級(jí)學(xué)號(hào): 指導(dǎo)教師: 完成日期: 6 月 20 日 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 II 目 錄 1 課程設(shè)計(jì)目的與要求.1 2 問(wèn)題描述 .2 3 總體設(shè)計(jì) .3 3.1 功能分析.3 3.2 系統(tǒng)主要使用的函數(shù).3 3.3 系統(tǒng)使用的主要數(shù)據(jù)結(jié)構(gòu).4 4 詳細(xì)設(shè)計(jì) .6 4.1 程序總體結(jié)構(gòu)圖.6 4.2 程序流程圖.6 5 功能測(cè)試 .8 5.1 航班售票系統(tǒng).8 6 程序設(shè)計(jì)調(diào)試情況(程序設(shè)計(jì)及調(diào)試過(guò)程中碰到的問(wèn)題及解決的 方法).12 7 課程設(shè)計(jì)小結(jié) .13 參考文獻(xiàn).14 附錄 系統(tǒng)源

2、程序.15 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 1 1 課程設(shè)計(jì)目的與要求 高級(jí)語(yǔ)言程序設(shè)計(jì)是本科工科類各專業(yè)的重要基礎(chǔ)課,課程以影響深遠(yuǎn)的、 傳統(tǒng)的、面向過(guò)程的優(yōu)秀編程語(yǔ)言 C 語(yǔ)言為基礎(chǔ),學(xué)習(xí)程序設(shè)計(jì)的基本概念和 方法,通過(guò)本門課程學(xué)習(xí),應(yīng)使同學(xué)掌握高級(jí)語(yǔ)言的基本原理,熟練掌握程序 設(shè)計(jì)的基礎(chǔ)知識(shí)、基本概念;掌握程序設(shè)計(jì)的思想和編程技巧。 課程設(shè)計(jì)是在學(xué)生已經(jīng)具備了使用 C 語(yǔ)言編寫簡(jiǎn)單的應(yīng)用程序的能力,為 使學(xué)生對(duì) C 語(yǔ)言有更全面的理解,進(jìn)一步提高運(yùn)用 C 語(yǔ)言編程解決實(shí)際問(wèn)題的 能力,通過(guò)提出算法、指定輸入輸出來(lái)設(shè)計(jì)一個(gè)解決方案。經(jīng)過(guò)該實(shí)踐環(huán)節(jié), 培養(yǎng)學(xué)生的探索精神和創(chuàng)新能力。通過(guò)答辯訓(xùn)練

3、學(xué)生的綜合表達(dá)能力。 參加本課程設(shè)計(jì)的學(xué)生,應(yīng)當(dāng)認(rèn)真完成本課程設(shè)計(jì)的全部過(guò)程。并以最終 課程設(shè)計(jì)成果來(lái)證明其獨(dú)立完成各種實(shí)際任務(wù)的能力。從而反映出理解和運(yùn)用 本課程知識(shí)的水平和能力。具體如下: (1)數(shù)據(jù)組織方面盡量使用到:數(shù)組、鏈表、結(jié)構(gòu)體、文件; (2)程序結(jié)構(gòu)方面做到函數(shù)調(diào)用,盡量采用指針運(yùn)算; (3)代碼編寫規(guī)范,形成良好的編程習(xí)慣; (4)程序須有一定的健壯性和必要的提示信息,考慮問(wèn)題的多種可能和邊 界數(shù)據(jù)。 (5)課設(shè)完成須進(jìn)行答辯,提交課設(shè)報(bào)告電子稿、裝訂的打印稿。課設(shè)報(bào) 告內(nèi)容包括以下幾個(gè)方面: 程序的總體設(shè)計(jì)和算法分析。 程序流程圖、函數(shù)說(shuō)明 源程序代碼清單 測(cè)試數(shù)據(jù)和測(cè)試過(guò)

4、程記錄 遇到的問(wèn)題及解決方法分析 課程設(shè)計(jì)小結(jié) 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 2 2 問(wèn)題描述 航班售票系統(tǒng): (1)系統(tǒng)以菜單方式工作 (2)假設(shè)該民航有若干航班,要求實(shí)現(xiàn)增加航班和取消某個(gè)航班的功能。 (3)查詢:根據(jù)用戶提出的終到站查詢航班號(hào)、售票情況等航班信息;也可根 據(jù)航班號(hào),列出該航班已訂票的乘客名單。 (4)訂票:根據(jù)航班號(hào)為客戶訂票,如該航班有余票,則為客戶訂票;如該航 班已滿員,則顯示相應(yīng)信息。 (5)退票:按乘客要求退出已預(yù)定的機(jī)票。 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 3 3 總體設(shè)計(jì) 3.1 功能分析 系統(tǒng)提供主界面,各種功能操作以獨(dú)立的函數(shù)為基礎(chǔ),運(yùn)用對(duì)鏈表操作的 技術(shù)來(lái)實(shí)

5、現(xiàn)航班的管理,同時(shí)對(duì)操作結(jié)果在計(jì)算機(jī)中做永久保存。 ) 3.1.1 航班售票系統(tǒng) (1)訂票功能: 此功能是 Reserve 函數(shù)來(lái)實(shí)現(xiàn)的,里面嵌套調(diào)用了 3 個(gè)函數(shù) Deletereturn,Addcustomer, WriteCustomer, (2)退票功能: 我用的是 ReturnTicket 函數(shù)來(lái)實(shí)現(xiàn)的,里面嵌套調(diào)用了 3 個(gè)函數(shù) AddReturn,DeleteCustomer,WriteCustomer, (3)修改航線功能: 在實(shí)現(xiàn)這個(gè)功能的時(shí)候,必須有航線的增加,取消,和修改三個(gè)不同的功能, 所以我編寫了 3 個(gè)不同的函數(shù), AddAirFlight,DeleteAirFl

6、ight,ChangeAirFlight, (4)查詢航班及乘客信息功能 WriteCustomer 的作用在本部分當(dāng)中體現(xiàn),它用來(lái)輸出客戶的信息,在 Init 函數(shù) 中,我事先置入了 3 個(gè)默認(rèn)的乘客,分別是我們小組的 3 個(gè)人,OutInfo 函數(shù)則 輸出了所有航班的信息 3.2 系統(tǒng)主要使用的函數(shù) int Reserve(char name,int airNum,int i) /*訂票系統(tǒng)函數(shù)*/ void ReturnTicket (int i,int airNum,int seat) /*退票系統(tǒng)函數(shù)*/ int DeleteReturn(AirFlight *p) /*刪除退票函數(shù)

7、*/ void AddReturn (AirFlight *p,int seat) /*添加退票信息函數(shù)*/ void ChangeAirFlight() /*修改航線函數(shù)*/ void DeleteAirFlight() /*刪除航線函數(shù)*/ void DestroyCustomer(CNode *p) /*刪除客戶信息函數(shù)*/ void AddCustomer(AirFlight *p,char *name,int airNum,int seat) /*添加客戶信 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 4 息函數(shù)*/ void DeleteCustomer(AirFlight *p,int sea

8、t) /*刪除客戶信息函數(shù)*/ void AddAirFlight() /*添加航線信息函數(shù)*/ void WriteAirInfo(FILE *fp) /*輸出輸出航線函數(shù)*/ void OutInfo() /*輸出所有信息*/ void WriteCustomer(FILE *fp) /*輸出客戶文件函數(shù)*/ 3.3 系統(tǒng)使用的主要數(shù)據(jù)結(jié)構(gòu) typedef struct Return /*定義退票系統(tǒng)的結(jié)構(gòu)體*/ int seat; struct Return *next; Return; typedef struct /*定義客戶信息的結(jié)構(gòu)體*/ char name20; int air

9、Num; int seat; Customer; typedef struct CNode /*定義客戶單鏈表的結(jié)構(gòu)體*/ Customer cust; struct CNode *next; CNode; typedef struct AirFlight /*定義航班信息的結(jié)構(gòu)體*/ int flight; int plane; int reservation; int availnum; CNode *cHead; Return *rHead; struct AirFlight *next; AirFlight; typedef struct Airline /*定義航線信息的結(jié)構(gòu)體*/

10、高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 5 char dest20; AirFlight *head; Airline; Airline airInfo3; /*定義三條航線為全局變量*/ 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 6 4 4 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 4.1 程序總體結(jié)構(gòu)圖 圖圖 4-14-1 航班售票系統(tǒng)結(jié)構(gòu)圖航班售票系統(tǒng)結(jié)構(gòu)圖 4.2 程序流程圖 圖圖 4-2-14-2-1 航班售票系統(tǒng)中的航班售票系統(tǒng)中的 AddCustomerAddCustomer()() 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 7 圖圖 4-2-24-2-2 航班售票系統(tǒng)中的航班售票系統(tǒng)中的 ChangeAirFlightChangeAi

11、rFlight()() 圖圖 4-2-34-2-3 航班售票系統(tǒng)中的航班售票系統(tǒng)中的 operation3operation3()() 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 8 5 功能測(cè)試 5.1 航班售票系統(tǒng) 圖圖 5-2-15-2-1 運(yùn)行后文件中的截圖運(yùn)行后文件中的截圖 圖圖 5-2-25-2-2 航班售票系統(tǒng)主菜單航班售票系統(tǒng)主菜單 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 9 圖圖 5-2-35-2-3 訂票提示語(yǔ)訂票提示語(yǔ) 圖圖 5-2-45-2-4 訂票成功訂票成功 圖圖 5-2-55-2-5 退票成功退票成功 圖圖 5-2-65-2-6 修改航線提示語(yǔ)修改航線提示語(yǔ) 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告

12、 10 圖圖 5-2-75-2-7 增加航線提示語(yǔ)增加航線提示語(yǔ) 圖圖 5-2-85-2-8 增加航線成功增加航線成功 圖圖 5-2-85-2-8 取消航線成功取消航線成功 圖圖 5-2-85-2-8 修改航線成功修改航線成功 圖圖 5-2-95-2-9 顯示乘客信息顯示乘客信息 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 11 6 程序設(shè)計(jì)調(diào)試情況(程序設(shè)計(jì)及調(diào)試過(guò)程程序設(shè)計(jì)調(diào)試情況(程序設(shè)計(jì)及調(diào)試過(guò)程 中碰到的問(wèn)題及解決的方法)中碰到的問(wèn)題及解決的方法) 在程序設(shè)計(jì)中,我遇到的最大的問(wèn)題就是結(jié)構(gòu)體變量的定義和鏈表的運(yùn)用, 應(yīng)為一開始在學(xué)習(xí)鏈表的時(shí)候我就感覺(jué)到很吃力,所以在編航空售票系統(tǒng)的大 程序時(shí),我上

13、網(wǎng)查找了很多資料,有不懂的也去百度,或者在同學(xué)之間討論, 至今還有一些不能熟練運(yùn)用,但和之前相比已經(jīng)有了很大的進(jìn)步,我會(huì)在今后 的學(xué)習(xí)中進(jìn)一步鞏固。 在調(diào)試過(guò)程中,也有不少的問(wèn)題。比如,漏加了取地址符,導(dǎo)致程序沒(méi)有 錯(cuò)誤而無(wú)法運(yùn)行;字符串輸入函數(shù) getchar 的用法出錯(cuò),導(dǎo)致無(wú)法輸入菜單命令; 頭文件的名字和文件名不一致而出錯(cuò),這是連接時(shí)候出現(xiàn)的問(wèn)題;還有曾遇到, 同樣一個(gè)文件,以.c 的后綴運(yùn)行時(shí)有錯(cuò),以.cpp 的后綴運(yùn)行時(shí)就沒(méi)有錯(cuò)了,老 師說(shuō)這涉及到了兼容性的問(wèn)題??傊?,由于粗心大意犯的錯(cuò)誤,自己是可以找 出來(lái)的,實(shí)在太隱蔽的,我也就只能求助同學(xué)或者老師了。 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)

14、報(bào)告 12 7 7 課程設(shè)計(jì)小結(jié)課程設(shè)計(jì)小結(jié) 本次課程設(shè)計(jì)已經(jīng)完成,編寫好的程序整體上運(yùn)行與題目要求很吻合,算 法大多比較通用,各個(gè)函數(shù)模塊的正確性、完備性、對(duì)輸入的容錯(cuò)能力以及算 法的進(jìn)一步改進(jìn)在設(shè)計(jì)中都有表述,這道題使我熟悉了文件的輸入輸出操作, 也深刻認(rèn)識(shí)到了鏈表在實(shí)際的操作中有多么的難,我會(huì)在進(jìn)一步的學(xué)習(xí)中,對(duì) 鏈表進(jìn)行深層次的理解。 本次程序編寫我從簡(jiǎn)單入手,在進(jìn)行復(fù)雜的編寫過(guò)程。首先我搜集資料, 掌握航空售票系統(tǒng)方面的種種相關(guān)知識(shí),其次我們對(duì)這個(gè)系統(tǒng)應(yīng)該如何編譯作 了一個(gè)簡(jiǎn)單的思考和討論,確定要運(yùn)用到的知識(shí)和相關(guān)難點(diǎn),并對(duì)這些難點(diǎn)進(jìn) 行解決,最終到發(fā)雜的程序上。 回望本次的課程設(shè)計(jì)

15、,我學(xué)到了很多的東西。無(wú)論是枯燥的搜集資料,還 是一遍遍地調(diào)試程序給我?guī)?lái)的疲憊感,都在最終看到程序正常運(yùn)行的那刻消 失殆盡,感受到了努力付出,然后收獲碩果的成就感。 總結(jié)我這周的實(shí)訓(xùn),我學(xué)到了很多的知識(shí)。不論是理論知識(shí)的掌握亦或是 實(shí)踐經(jīng)驗(yàn)的積累,我都有了進(jìn)一步的提升。面對(duì)科學(xué)實(shí)踐過(guò)程中所遇到的難題, 我不能退縮,要嚴(yán)謹(jǐn),認(rèn)真,無(wú)所畏懼地面對(duì)它。正如本次的課程設(shè)計(jì),編寫 的過(guò)程很艱難,一個(gè)小小的錯(cuò)誤都會(huì)導(dǎo)致最終程序無(wú)法正常運(yùn)行。因此,只有 我們每個(gè)人認(rèn)真嚴(yán)謹(jǐn)?shù)耐瓿勺约旱娜蝿?wù),不出現(xiàn)一絲一毫的馬虎,才能獲得最 后的成功。 本以為掌握課本上所教授的理論知識(shí)對(duì)于我們當(dāng)代大學(xué)生而言就足夠了。 然而,

16、在實(shí)訓(xùn)過(guò)后才發(fā)現(xiàn)這樣的理解是十分錯(cuò)誤的。理論知識(shí)若沒(méi)有經(jīng)過(guò)實(shí)踐 的考驗(yàn),那它便是經(jīng)不起推敲的。只有把實(shí)踐和理論結(jié)合起來(lái),用理論知識(shí)支 持實(shí)踐,用實(shí)踐來(lái)肯定理論知識(shí),才能提高自己的學(xué)習(xí)能力和動(dòng)手能力。 在設(shè)計(jì)的過(guò)程中我們遇到了各種各樣的問(wèn)題,也發(fā)現(xiàn)了自己的不足之處, 對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,通過(guò)這次課程設(shè)計(jì), 把以前所學(xué)過(guò)的知識(shí)重新溫故,鞏固了所學(xué)的知識(shí),也能夠了解到自己相對(duì)薄 弱的環(huán)節(jié)??偠灾?,本次實(shí)訓(xùn)我真的受益匪淺。 小組成員分工: 組長(zhǎng): 負(fù)責(zé) 修改航線信息和查詢航班信息 模塊 組員: 負(fù)責(zé) 主程序模塊 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 13 負(fù)責(zé)訂票、退票 模塊

17、高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 14 參考文獻(xiàn) 1. 遲劍,劉艷飛等C 語(yǔ)言寶典北京:電子工業(yè)出版社,20096 2. 李恬,邱小平等C 語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)與應(yīng)用教程北京:清華大學(xué)出版 社,20102 3. 黃銳軍C#程序設(shè)計(jì)項(xiàng)目實(shí)訓(xùn)教程北京:化學(xué)工業(yè)出版社,200910 4. 耿祥義,張躍平C 語(yǔ)言程序設(shè)計(jì)實(shí)用教程北京:清華大學(xué)出版社, 201011 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 15 附錄 系統(tǒng)源程序 #include #include #include #include typedef struct Return int seat; struct Return *next; Return;

18、typedef struct char name20; int airNum; int seat; Customer; typedef struct CNode Customer cust; struct CNode *next; CNode; typedef struct AirFlight int flight; int plane; int reservation; int availnum; CNode *cHead; Return *rHead; struct AirFlight *next; AirFlight; typedef struct Airline char dest20

19、; 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 16 AirFlight *head; Airline; Airline airInfo3; int Reserve(char name,int airNum,int i) int DeleteReturn(AirFlight *p); void AddCustomer(AirFlight *p,char *name,int airNum,int seat); void WriteCustomer(FILE *fp); FILE *fp; AirFlight *p; int seat; for(p=airInfoi.head;pp=p-next); if(p=

20、NULL) return -2; if(p-availnum=0) return -1; else if(p-rHead!=NULL) seat=DeleteReturn(p); else seat =p-reservation; p-availnum-; p-reservation+; AddCustomer (p,name,airNum,seat); if(!(fp=fopen(customer.txt,w) puts(對(duì)不起,操作有誤,無(wú)法打開文件customer.txt!); return -2; WriteCustomer(fp); return seat; void ReturnT

21、icket (int i,int airNum,int seat) void AddReturn(AirFlight*p,int seat); void DeleteCustomer (AirFlight *p,int seat); void WriteCustomer(FILE *fp); 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 17 FILE *fp; AirFlight *p; for(p=airInfoi.head;pp=p-next); if(p=NULL) puts(對(duì)不起,操作有誤,沒(méi)有找到退票信息!n); else AddReturn(p,seat); p-availnum+; p-re

22、servation-; DeleteCustomer(p,seat); if(!(fp=fopen(customer.txt,w) puts(對(duì)不起,操作有誤,無(wú)法打開文件customer.txt!); return; WriteCustomer(fp); return; int DeleteReturn(AirFlight *p) Return *temp; int seat; temp=p-rHead; p-rHead=temp-next; seat=temp-seat; free(temp); return seat; void AddReturn (AirFlight *p,int s

23、eat) Return *temp; temp=(Return *)malloc(sizeof(Return); if(temp=NULL) 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 18 puts(對(duì)不起,操作有誤,分配空間失敗!); return; temp-seat=seat; temp-next=p-rHead; p-rHead=temp; void ChangeAirFlight() int airFlight,k,changeFlight; AirFlight *p; CNode *pC; puts(請(qǐng)輸入您所要修改的航線:n); scanf(%d, if(0airFlight else if

24、(300airFlight else if(600airFlightp=p-next); if(p!=NULL) puts(請(qǐng)輸入您的新航線:n); scanf(%d, p-flight=changeFlight; for(pC=p-cHead; pC; pC=pC-next) pC-cust.airNum=changeFlight; printf(恭喜!航線 %d 已成功修改成 %d.n,airFlight,p-flight); else printf(對(duì)不起,不存在該航線%d!n,airFlight); void DeleteAirFlight() void DestroyCustomer

25、(CNode *p); void DestroyReturn(Return *p); 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 19 void OutInfo(); int airFlight,k; AirFlight *p,*pre=NULL; puts(請(qǐng)輸入您要取消的航線!n); scanf(%d, if(0airFlight else if(300airFlight else if(600airFlightp=p-next) pre=p; if(p=NULL) printf(對(duì)不起,不存在該航線%d!n,airFlight); return; if(pre=NULL) airInfok.head=

26、p-next; else pre-next=p-next; DestroyCustomer(p-cHead); DestroyReturn(p-rHead); free(p); printf(恭喜!已成功取消該航線%dn,airFlight); OutInfo(); void DestroyCustomer(CNode *p) CNode *pNext; while(p!=NULL) pNext=p-next; free(p); p=pNext; void DestroyReturn(Return *p) 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 20 Return *pNext; while(p!=NU

27、LL) pNext=p-next; free(p); p=pNext; void AddCustomer(AirFlight *p,char *name,int airNum,int seat) CNode *temp; if(!(temp=(CNode*)malloc(sizeof(CNode) puts(對(duì)不起,操作有誤,開辟空間失敗!n); return; temp-cust.airNum=airNum; temp-cust.seat=seat; strcpy(,name); temp-next=p-cHead; p-cHead=temp; void Dele

28、teCustomer(AirFlight *p,int seat) CNode *temp,*pre=NULL; for(temp=p-cHead;temptemp=temp-next) pre=temp; if(temp=NULL) puts(對(duì)不起,沒(méi)有找到相應(yīng)的客戶,請(qǐng)您核對(duì)后繼續(xù)!); return; if(pre=NULL) p-cHead=temp-next; else pre-next=temp-next; free(temp); 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 21 void WriteCustomer(FILE *fp) int i; AirFlight *p; CNode *

29、q; fputs(n,fp); fputs(以下為本航空公司提供的乘客信息:n,fp); for(i=0;inext) fputs(nn,fp); fputs(航班t 座位號(hào)t 乘客姓名n,fp); for(q=p-cHead;q;q=q-next) fprintf(fp,%dt%dt%sn,q-cust.airNum,q-cust.seat,q- ); void WriteAirInfo(FILE *fp) int i; AirFlight *p,*q; fputs(n,fp); fputs(以下為本航空公司提供的航班信息:n,fp); for(i=0;inext) 高級(jí)語(yǔ)

30、言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 22 fputs(nn,fp); for(q=p;q;q=q-next) fprintf(fp,t 航班號(hào):%dnt 飛機(jī)號(hào):%dnt 訂票數(shù): %dnt 余票數(shù):%dn,q-flight,q-plane,q-reservation,q-availnum); void OutInfo() FILE *fp,*fp2; if(!(fp=fopen(airinfo.txt,w) puts(對(duì)不起,操作有誤,無(wú)法打開文件airinfo.txt!n); return; WriteAirInfo(fp); fclose(fp); if(!(fp2=fopen(customer.t

31、xt,w) puts(對(duì)不起,操作有誤,無(wú)法打開文件airinfo.txt!n); return; WriteCustomer(fp2); fclose(fp2); void AddAirFlight() int k,airflight; AirFlight *temp; puts(請(qǐng)選擇本次航程的著陸點(diǎn):0/1/2n); puts(0.北京n1.上海n2.廣州n); scanf(%d, if(k2) puts(對(duì)不起,操作有誤,輸入無(wú)效!); 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 23 return; printf(請(qǐng)輸入航班號(hào):); switch(k) case 0: puts(1300:); b

32、reak; case 1: puts(301600:); break; case 2: puts(601900:); scanf(%d, if(airflight300*(k+1) puts(Wrong input!); return; temp=(AirFlight*)malloc(sizeof(AirFlight); if(temp=NULL) puts(對(duì)不起,操作有誤,開辟空間失敗!n); return; temp-availnum=100; temp-reservation=0; temp-cHead=NULL; temp-rHead=NULL; temp-plane=1; temp

33、-flight=airflight; temp-next=airInfok.head; airInfok.head=temp; printf(恭喜!新航線已成功建立!n); OutInfo(); void Init() int i; 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 24 strcpy(airInfo0.dest,Beijing); strcpy(airInfo1.dest,Shanghai); strcpy(airInfo2.dest,Guangzhou); for(i=0;iflight=300*i+1; airInfoi.head-plane=i+1; airInfoi.head-reser

34、vation=0; airInfoi.head-availnum=100; airInfoi.head-cHead=NULL; airInfoi.head-rHead=NULL; airInfoi.head-next=NULL; Reserve(梁建軍,1,0); Reserve(卿澤華,301,1); Reserve(呂繼東,601,2); void Operation1() int i,seat; int airNum; char name20; printf(本航空公司為您提供的航班有:n); printf(航線 1 飛往北京:航班號(hào) 1-300n); printf(航線 2 飛往上海:航班號(hào) 301-600n); printf(航線 3 飛往廣州:航班號(hào) 601-900n); printf(n 若開始訂票,請(qǐng)輸入您的姓名及航班號(hào):n); printf(友情提示:姓名和航班號(hào)用空格隔開n); scanf(%s %d,name, 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告 25 if(0airNum else if(300airNum else if(600airNum else puts(對(duì)不起,操作有誤,輸入無(wú)效!); seat=Reserve(name,airNum,i); if(seat=-2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論