飛機(jī)訂票系統(tǒng).doc_第1頁(yè)
飛機(jī)訂票系統(tǒng).doc_第2頁(yè)
飛機(jī)訂票系統(tǒng).doc_第3頁(yè)
飛機(jī)訂票系統(tǒng).doc_第4頁(yè)
飛機(jī)訂票系統(tǒng).doc_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

湖南工程學(xué)院 應(yīng)用技術(shù)學(xué)院課 程 設(shè) 計(jì) 報(bào) 告課程名稱 c語(yǔ)言程序設(shè)計(jì) 課題名稱 飛機(jī)訂票系統(tǒng) 專 業(yè) 電氣工程及其自動(dòng)化 班 級(jí) 電氣工程0783 學(xué) 號(hào) 200713010303 姓 名 竹 航 波 指導(dǎo)教師 王 穎 2008年 3 月19 日湖南工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 c語(yǔ)言程序設(shè)計(jì) 課 題 飛機(jī)訂票系統(tǒng) 專業(yè)班級(jí) 電氣工程0783 學(xué)生姓名 竹 航 波 學(xué) 號(hào) 200713010303 指導(dǎo)老師 王 穎 審 批 任務(wù)書下達(dá)日期:2008 年3月8日任務(wù)完成日期:2008年3月20日c語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)是對(duì)學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計(jì),用戶界面設(shè)計(jì),程序設(shè)計(jì)基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。是與課堂聽講、自學(xué)和練習(xí)相輔相成的必不可少的一個(gè)教學(xué)環(huán)節(jié)。通常,課程設(shè)計(jì)的課題比平時(shí)的習(xí)題復(fù)雜得多,也更接近實(shí)際。課程設(shè)計(jì)著眼于與應(yīng)用的結(jié)合點(diǎn),使學(xué)生學(xué)會(huì)如何把書上學(xué)到的知識(shí)用于解決實(shí)際問題,培養(yǎng)軟件工作所需要的動(dòng)手能力;另一方面,能使書上的知識(shí)變“活”,使學(xué)生更好地深化理解和靈活掌握教學(xué)內(nèi)容。為了達(dá)到上述目的,本課程設(shè)計(jì)安排了四個(gè)設(shè)計(jì)課題,訓(xùn)練重點(diǎn)在于基本的程序設(shè)計(jì)方法和分析問題的能力,而不強(qiáng)調(diào)面面俱到。學(xué)生可任選其中一題進(jìn)行設(shè)計(jì),設(shè)計(jì)完畢寫出課程設(shè)計(jì)報(bào)告,用a4紙打印成冊(cè);并將課程設(shè)計(jì)報(bào)告與源程序存盤。學(xué)習(xí)委員將課程設(shè)計(jì)報(bào)告與磁盤(缺一不可)收齊后交指導(dǎo)老師。一、目的全面熟悉、掌握c語(yǔ)言基本知識(shí),掌握c程序設(shè)計(jì)中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)和c語(yǔ)言基本圖形編程等方法,把編程和實(shí)際結(jié)合起來,增強(qiáng)對(duì)不同的問題運(yùn)用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,培養(yǎng)使用計(jì)算機(jī)解決實(shí)際問題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后在專業(yè)課程中應(yīng)用計(jì)算機(jī)系統(tǒng)解決計(jì)算、分析、實(shí)驗(yàn)和設(shè)計(jì)等學(xué)習(xí)環(huán)節(jié)打下較扎實(shí)的基礎(chǔ)。二、基本情況課程類別:必修課課程學(xué)分:1學(xué)分課程學(xué)時(shí):1周課程對(duì)象:電氣工程0781、0782、0783、0784、0785、0786三、時(shí)間安排時(shí)間任務(wù)2008-3-8下午3:40-5:40指導(dǎo)老師給學(xué)生布置課程設(shè)計(jì)的任務(wù)及要求2008-3-10到2008-3-15學(xué)生根據(jù)設(shè)計(jì)任務(wù)及要求,對(duì)系統(tǒng)進(jìn)行需求分析、概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),并在此基礎(chǔ)上編寫程序代碼學(xué)生提交系統(tǒng)程序清單初稿上機(jī)調(diào)試程序修改并完善程序并上機(jī)調(diào)試程序2008-3-16接受指導(dǎo)老師的驗(yàn)收2008-3-16到2008-3-22 書寫課程設(shè)計(jì)報(bào)告 提交課程設(shè)計(jì)報(bào)告課題要求一、 需求分析分析系統(tǒng)功能需求以及用戶操作流程。二、 概要設(shè)計(jì)在需求分析的基礎(chǔ)上,確定系統(tǒng)總體框架(系統(tǒng)功能結(jié)構(gòu)圖)。三、 詳細(xì)設(shè)計(jì)定義數(shù)據(jù)儲(chǔ)存結(jié)構(gòu),并設(shè)計(jì)實(shí)現(xiàn)系統(tǒng)功能的具體算法,畫出各算法的工作流程圖。四、 代碼設(shè)計(jì)根據(jù)所設(shè)計(jì)的算法,定義相應(yīng)函數(shù)分別實(shí)現(xiàn)系統(tǒng)的各子功能模塊,同時(shí)由主程序提供友好的用戶界面,使用戶可通過選擇主菜單來調(diào)用課程設(shè)計(jì)中要求完成的各個(gè)功能模塊,子程序執(zhí)行完后還可以返回到主菜單,繼續(xù)選擇其他功能執(zhí)行。源程序要求書寫規(guī)范,結(jié)構(gòu)清晰。重點(diǎn)函數(shù)的重點(diǎn)變量。重點(diǎn)功能部分均要求給出清晰的程序注釋。五、 程序調(diào)試程序編譯、連接成功后,自己設(shè)計(jì)實(shí)現(xiàn)程序功能的一組或多組測(cè)試數(shù)據(jù),并嚴(yán)格按照此測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,然后分析測(cè)試結(jié)果。如果程序不能正常運(yùn)行或結(jié)果不正確,則需對(duì)程序進(jìn)行單步調(diào)試,在調(diào)試過程中認(rèn)真查找算法實(shí)現(xiàn)中存在的問題,并加以分析和改正。如果程序能夠基本正確地運(yùn)行,可考慮增加若干基本的容錯(cuò)功能;另外盡量對(duì)現(xiàn)有的算法給出改進(jìn)方案,并比較不同算法之間的優(yōu)缺點(diǎn)五、設(shè)計(jì)報(bào)告及書寫內(nèi)容要求課程設(shè)計(jì)任務(wù)完成后,每位同學(xué)必須獨(dú)立書寫一份課程設(shè)計(jì)報(bào)告,注意:不得抄襲他人的報(bào)告(或給他人抄襲),一旦發(fā)現(xiàn),成績(jī)?yōu)榱惴?。課程設(shè)計(jì)報(bào)告的內(nèi)容應(yīng)包括以下五個(gè)部分:1) 需求分析:包括設(shè)計(jì)題目、設(shè)計(jì)要求以及系統(tǒng)功能需求分析;2) 概要設(shè)計(jì):包括系統(tǒng)總體設(shè)計(jì)框架和系統(tǒng)功能模塊圖;3) 詳細(xì)設(shè)計(jì):包括主要功能模塊的算法設(shè)計(jì)思路以及對(duì)應(yīng)的工作流程圖;4) 主要源程序代碼:包括存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)說明,以及完整源程序清單;5) 調(diào)試分析過程描述:包括測(cè)試數(shù)據(jù)、測(cè)試輸出結(jié)果,以及對(duì)程序調(diào)試過程中存在問題的思考(列出主要問題的出錯(cuò)現(xiàn)象、出錯(cuò)原因、解決方法及效果等);6) 總結(jié):包括課程設(shè)計(jì)過程中的學(xué)習(xí)體會(huì)和收獲、對(duì)c語(yǔ)言和本次課程設(shè)計(jì)的認(rèn)識(shí)以及自己的建議等內(nèi)容。7) 書寫格式嚴(yán)格按所附要求書寫。附1:l 課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、評(píng)分、附件(a4大小的圖紙及程序清單)。 l 正文的格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行距為22。l 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個(gè)主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對(duì)程序?qū)懗霰匾淖⑨專?。正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼)。六.課程設(shè)計(jì)題目:飛機(jī)訂票系統(tǒng)1)問題描述 假設(shè)某航空公司只有m架n個(gè)座位的飛機(jī),每架飛機(jī)每天飛行一趟。通過該系統(tǒng)來實(shí)現(xiàn)機(jī)票的訂購(gòu)問題。2)功能要求: 本系統(tǒng)采用一個(gè)包含n個(gè)數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:目的地、航班號(hào)、座次號(hào)碼、座次定出與否標(biāo)記、訂坐者的姓名和訂坐座號(hào). 本系統(tǒng)顯示這樣的菜單: 輸入航班信息 輸出航班信息 查找航班信息a、 顯示座位的數(shù)量b、 顯示座位的信息c、 顯示訂座的信息 訂票預(yù)約 刪除訂票預(yù)約 退出系統(tǒng) 本系統(tǒng)成功執(zhí)行菜單的每個(gè)信息,選項(xiàng)和將要求額外的輸入,并且它們都允許用戶收回其輸入。 查找航班信息既可按線路查,也可按目的地查。 在兩次運(yùn)行之間,數(shù)據(jù)被保存于一個(gè)文件里,當(dāng)本程序重新開始的時(shí)候,它首先從該文件讀入數(shù)據(jù)。3)算法提示: 數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組 數(shù)據(jù)庫(kù)結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫(kù)。 航班號(hào)目的地座次號(hào)座次訂出與否的標(biāo)記訂票者姓名訂票者座位號(hào)intcharintcharcharchar 4)測(cè)試數(shù)據(jù): 每架飛機(jī)的座位n=100,n=5;5)其它:對(duì)該系統(tǒng)有興趣的同學(xué)可以在實(shí)現(xiàn)系統(tǒng)基本功能后,完善系統(tǒng)的其它功能。目 錄課 程 設(shè) 計(jì) 文 檔6一.課程設(shè)計(jì)題目: 飛機(jī)訂票系統(tǒng);6二.內(nèi)容摘要:6三.關(guān)鍵字:6四.總體方案的選定:6 【概要設(shè)計(jì)】61)程序的模塊組成及各個(gè)函數(shù)的功能:62)程序中的抽象數(shù)據(jù)類型的定義:7 【詳細(xì)設(shè)計(jì)】7相關(guān)的數(shù)據(jù)類型:7五函數(shù)間的調(diào)用關(guān)系圖如下:81)主函數(shù)82)book函數(shù)93)check函數(shù):94)tui函數(shù):10六.收獲及體會(huì):11附錄:12一.參考文獻(xiàn):12二.源程序清單12課 程 設(shè) 計(jì) 文 檔【需求分析】一設(shè)計(jì)題目: 飛機(jī)訂票系統(tǒng);二內(nèi)容摘要: 本系統(tǒng)設(shè)計(jì)主要是根據(jù)售票業(yè)務(wù)的基本流程進(jìn)行的,一般地說,售票業(yè)務(wù)包括:訂票子系統(tǒng)、查詢子系統(tǒng)、修改子系統(tǒng)、刪除子系統(tǒng)、退票子系統(tǒng)等五個(gè)方面。該系統(tǒng)是一個(gè)簡(jiǎn)單的飛機(jī)訂票系統(tǒng),能夠方便地查詢所需信息。其功能包括:信息錄入、信息顯示、信息刪除、信息修改及查詢等。三.關(guān)鍵字飛機(jī)定票管理系統(tǒng)。四.總體方案的選定: 在了解該系統(tǒng)的功能后,可以通過運(yùn)用函數(shù)、編譯語(yǔ)句、數(shù)據(jù)類型來實(shí)現(xiàn)。由于數(shù)據(jù)多,數(shù)據(jù)結(jié)構(gòu)相似的特點(diǎn),自然地想到用數(shù)組實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),且總體數(shù)據(jù)結(jié)構(gòu)應(yīng)用文件類型的數(shù)據(jù)。文件類型為結(jié)構(gòu)體數(shù)據(jù),數(shù)據(jù)庫(kù)結(jié)構(gòu)用文件來實(shí)現(xiàn)?!靖乓O(shè)計(jì)】 1)程序的模塊組成及各個(gè)函數(shù)的功能:1) 程序的模塊組成:主函數(shù):main();輸出數(shù)據(jù)函數(shù):printf();讀取數(shù)據(jù)函數(shù):scanf();菜單顯示函數(shù):menu();2) 各函數(shù)的主要功能:輸出數(shù)據(jù)函數(shù):隨時(shí)輸出數(shù)據(jù);輸入數(shù)據(jù)函數(shù):隨時(shí)保存輸入的數(shù)據(jù);讀取數(shù)據(jù)函數(shù):讀取輸入的數(shù)據(jù);訂票函數(shù):顯示各個(gè)座位的被訂與否,便于乘客選擇;退票函數(shù):滿足乘客的退票要求;查詢數(shù)據(jù)函數(shù):顯示所有輸入的信息;2)程序中的抽象數(shù)據(jù)類型的定義: 機(jī)票的狀態(tài)結(jié)構(gòu) 機(jī)票數(shù)目; 航班信息;航線信息;機(jī)票剩余數(shù); 目的地信息; 【詳細(xì)設(shè)計(jì)】 相關(guān)的數(shù)據(jù)類型: 機(jī)票管理結(jié)構(gòu)數(shù)組 struct char over23;/*目的地*/ int setnum12;/*機(jī)票數(shù)*/ char name;/*姓名*/ plane5;/*航班號(hào)*/ 五函數(shù)間的調(diào)用關(guān)系圖如下:1)主函數(shù)開始memufun 函數(shù)slect 函數(shù)退票 函數(shù) 退出 函數(shù)修改 函數(shù) 確認(rèn) 函數(shù)定票 函數(shù)輸出結(jié)果2)定票函數(shù)開始輸入 0s=fun(t,n) s=0輸出結(jié)果輸出結(jié)果3)修改函數(shù):開始輸入 3planei,setnumj=n輸出結(jié)果輸出結(jié)果4)退票函數(shù):輸入 5開始 p=planei.setnumuplanei.setnumj=nplanei.nanme=0輸出結(jié)果輸出結(jié)果六.收獲及體會(huì):我這次在c語(yǔ)言程序設(shè)計(jì)課程中,做的是“飛機(jī)訂票系統(tǒng)”。通過一周的上機(jī)操作,充分應(yīng)用了所學(xué)的c語(yǔ)言的知識(shí),粗略設(shè)計(jì)出并成功的運(yùn)行起該系統(tǒng)。這說明我這次的課程設(shè)計(jì)是成功,但更為重要的我又進(jìn)一步了解了c語(yǔ)言,加深了對(duì)c語(yǔ)言的認(rèn)識(shí),充分的將課本知識(shí)進(jìn)行梳理、整合、融會(huì)貫通之后應(yīng)用到了實(shí)際的工作需要中。以實(shí)現(xiàn)學(xué)以致用,學(xué)有所用。同時(shí)也增加了我對(duì)c語(yǔ)言的興趣,激起了學(xué)習(xí)的熱情。當(dāng)然,由于學(xué)藝不精,在課程設(shè)計(jì)的過程也碰到的一些問題。其中,不乏一些簡(jiǎn)單的基礎(chǔ)性的錯(cuò)誤,如經(jīng)常輸入錯(cuò)誤的字母,使程序無法運(yùn)行,程序也比較簡(jiǎn)單,還有許多不足之處,但通過這次專業(yè)性的練習(xí),相信在以后會(huì)有所減少。而關(guān)鍵性問題經(jīng)常出現(xiàn)在一些函數(shù)的使用上,由于對(duì)一些函數(shù)調(diào)用的正確使用不夠熟悉,往往也會(huì)造成程序無法運(yùn)行,出現(xiàn)錯(cuò)誤。如:清屏函數(shù)clrscr(),按任意鍵可以插入getch(),主函數(shù)void main()的用法,c語(yǔ)言的一些標(biāo)準(zhǔn)庫(kù)函數(shù)的應(yīng)用。然而這一切,通過王穎老師的指導(dǎo)與幫助,自己的查閱資料,也都一一解決了。書本知識(shí)固然重要,但我們更要學(xué)會(huì)將書本知識(shí)應(yīng)用到實(shí)際的工作中。實(shí)踐中才會(huì)發(fā)現(xiàn)錯(cuò)誤,也才能改進(jìn),才能達(dá)到學(xué)習(xí)的最終目的。這些就是我在這個(gè)設(shè)計(jì)中所得到的體會(huì)。 附錄:一. 參考文獻(xiàn)程序設(shè)計(jì)課件及開發(fā)系統(tǒng)按例二.源程序清單#include #include #include #define ok 1 #define true 1 #define false 0 #define error 0 #define overflow -2 #define pr printf typedef int status; typedef struct airline char line_num8;char plane_num8;char end_place20;int total;int left;struct airline *next;airline; typedef struct customer char name9;char line_num8;int seat_num;struct customer *next;customer; airline *init_airline() airline *l; l=(airline*)malloc(sizeof(airline); if(l=null) exit(0); l-next=null; return l; customer * init_customer()customer *l; l=(customer*)malloc(sizeof(customer); if(l=null) exit(0); l-next=null; return l; status insert_airline(airline *p,char *line_num,char *plane_num,char *end_place,int total,int left)airline *q; q=(airline*)malloc(sizeof(airline); strcpy(q-line_num , line_num); strcpy(q-plane_num , plane_num); strcpy(q-end_place , end_place); q-total =total; q-left =left; q-next=null; (*p)-next=q; (*p)=(*p)-next; return ok; status insert_customer(customer *p,char *name,char *line_num,int seat)customer *q; q=(customer*)malloc(sizeof(customer); pr(內(nèi)存分配失敗n);strcpy(q-name , name); strcpy(q-line_num , line_num); q-seat_num =seat; q-next=null; (*p)-next=q; (*p)=(*p)-next; return ok; airline *modefy_airline(airline *l,char *line_num) airline *p; p=l-next ; for(;p!=null;p=p-next ) if(strcmp(line_num,p-line_num )=0) p-left +; return l; pr(沒有這個(gè)航班,無法完成修改任務(wù)!n); return 0; status delete_airline(airline *h,char *line_num) airline *p,*pr; pr=h; p=pr-next ; while(p!=null) if(strcmp(line_num,p-line_num )=0) pr-next =p-next ; pr(刪除 %s 航班n,p-line_num ); return ok; pr=pr-next ; p=pr-next ; pr(無此航班,無法刪除!n); return error; status delete_customer(customer *h,char *line_num) customer *p,*pr; pr=h; p=pr-next ; while(p!=null) if(strcmp(line_num,p-line_num )=0) pr-next =p-next ; pr=pr-next ; p=pr-next ; return ok; status delete_cus(customer *h,airline *l,char *name) customer *p,*pr; char line_num8; pr=h; p=pr-next ; while(p!=null) if(strcmp(name,p-name )=0) strcpy(line_num,p-line_num ); l=modefy_airline(l,line_num); pr-next =p-next ; pr(顧客 %s 退票成功!n,p-name ); return ok; pr=pr-next ; p=pr-next ; pr(無此顧客,無法退票!n); return error; status save_airline(airline *l) file *fp_airline; char ch=#; airline *p=l-next ; char filename=c:airline.dat; if(fp_airline=fopen(filename,wb)=null) printf(can not open file to write:%sn,filename); return error; for(;p!=null;p=p-next ) fprintf(fp_airline,%s,%s,%s,%d,%d%cn,p-line_num ,p-plane_num ,p-end_place ,p-total ,p-left ,ch); fclose(fp_airline); return ok; status save_customer(customer *l) file *fp_customer; char ch=#; customer *p=l-next ; char filename=c:customer.dat; if(fp_customer=fopen(filename,wb)=null) printf(can not open file to write:%sn,filename); return error; for(;p!=null;p=p-next ) fprintf(fp_customer,%s,%s,%d%c,p-name ,p-line_num ,p-seat_num ,ch); fclose(fp_customer); return ok; int changstrint(char *ch) int a=1,b=0,c=0,i; for (i=strlen(ch)-1;i=0;i-) if (chi47) b=a*(chi-48); a=a*10; c=c+b; else pr(%c 不合法,無法將此字符串轉(zhuǎn)化為整形!n,chi); return 0; return c; status insert_air(airline *l,char *line_num,char *plane_num,char *end_place,int total,int left)airline *q; q=(airline*)malloc(sizeof(airline); strcpy(q-line_num , line_num); strcpy(q-plane_num , plane_num); strcpy(q-end_place , end_place); q-total =total; q-left =left; q-next=l-next ; l-next=q; return ok; status insert_cus(customer *l,char *name,char *line_num,int seat)customer *q; q=(customer*)malloc(sizeof(customer); strcpy(q-name , name); strcpy(q-line_num , line_num); q-seat_num =seat; q-next=l-next ; l-next=q; return ok; status load_airline(airline *l) file *fp_airline; int flag=0,i=0; char ch; char line_num8;char plane_num8;char end_place20;char total_str5; char left_str5; int total;int left;char filename=c:airline.dat; if(fp_airline=fopen(filename,rb)=null) printf(can not open file to load:%sn,filename); return error; while(!feof(fp_airline) ch=fgetc(fp_airline); if(ch!=#) if(flag=0&ch!=,) line_numi=ch; i+; else if(flag=1&ch!=,) plane_numi=ch; i+; else if(flag=2&ch!=,) end_placei=ch; i+; else if(flag=3&ch!=,) total_stri=ch; i+; else if(flag=4&ch!=,) left_stri=ch; i+; else if (ch=,) flag+; i=0; else flag=0; i=0; total=changstrint(total_str); left=changstrint(left_str); pr(%8s%8s%8s%9d%9dn,line_num ,plane_num ,end_place ,total ,left ); insert_air(l,line_num,plane_num,end_place,total,left); fclose(fp_airline); return ok; status load_customer(customer *l) file *fp_customer; int flag=0,i=0; char ch; char name9; char line_num8;char seat_num_str5; int seat_num;char filename50=c:customer.dat; if(fp_customer=fopen(filename,rb)=null) printf(can not open file to load:%sn,filename); return error; while(!feof(fp_customer) ch=fgetc(fp_customer); printf(%cn,ch); if(ch!=#) if(flag=0&ch!=,) namei=ch; i+; else if(flag=1&ch!=,) line_numi=ch; i+; else if(flag=2&ch!=,) seat_num_stri=ch; i+; else if (ch=,) flag+; i=0; else pr(錯(cuò)誤n); return error; else flag=0; seat_num=changstrint(seat_num_str); pr(%10s %10s %dn,name ,line_num ,seat_num ); insert_cus(l,name,line_num,seat_num); fclose(fp_customer); return ok; status creat_airline(airline *l) airline *p=*l; int i=0; char *line_num3=bjnc01,bjsh02,shgz03; char *plane_num3=plane1,plane2,plane3; char *end_place3=nc,sh,gz; int total3=100,100,100; int left3=51,50,78; for (i=0;i3;i+) insert_airline(&p,line_numi,plane_numi,end_placei,totali,lefti); return ok; status creat_customer(customer *l) customer *p=*l; int i=0; char *name3=ouyangj0,yhl,fs; char *line_num3=bjnc01,bjsh02,shgz03; int seat_num3=1,5,10; for (i=0;inext ; for(;p-next !=null;p=p-next) insert_airline(&p,line_num,plane_num,end_place,total,total); pr(增加航班 %s 成功!n,line_num); return ok; status book(airline *l,char *line_num,customer *c,char *name) airline *p=l; customer *q=c-next ; p=l-next ; for(;q-next !=null;q=q-next) for(;p!=null;p=p-next ) if(strcmp(line_num,p-line_num )=0) if(p-left 0) pr(恭喜您!訂票成功!n); pr(你的座位號(hào)是: %dn,(p-total -p-left +1); insert_customer(&q,name,line_num,p-total -p-left +1); p-left -; return ok; else pr(對(duì)不起,座位已滿!n); return 0; pr(對(duì)不起,沒有這個(gè)航班號(hào)!n); return error; status print_airline(airline *l) airline *p=l-next ; for(;p!=null;p=p-next ) pr(%8s%8s%8s%9d%9dn,p-line_num ,p-plane_num ,p-end_place ,p-total ,p-left ); return ok; status print_customer(customer *l) customer *p=l-next ; for(;p!=null;p=p-next ) pr(%10s %10s %dn,p-name ,p-line_num ,p-seat_num ); return ok; status inputpassword(char cc9) char c; int i; for(i=0;c=getch();i+) if(c=13) break;else cci=c; printf(*); cci=0; return strlen(cc); void main() char choice,choice2,name9,line_num8,password9,plane_num8,end_place9; char pass9=19851102,re_pass_19,re_pass_29; int t=1,tt=1,total; airline *air=init_airline(); customer *cus=init_customer(); pr( 電氣0783課程設(shè)計(jì) (一)n); pr( 航空訂票系統(tǒng)n); pr( 成員:竹航波n);pr(發(fā)行單位:湖南工程學(xué)院應(yīng)用技術(shù)學(xué)院n);creat_airline(&air); creat_customer(&cus); while(t=1) pr(*-*n); pr(*-航空訂票系統(tǒng)選擇菜單-*n); pr(* 訂票-0 *n); pr(* 退票-1 *n); pr(* 查詢-2 *n); pr(* 修改航線-3 *n); pr(* 讀入文件-4 *n); pr(* 退出-5 *n); pr(*-*n); pr(請(qǐng)選擇: ); choice = getch(); pr(%cn,choice); if(choice=0) pr(請(qǐng)輸入你要訂的航班號(hào): ); scanf( %s,line_num); pr(請(qǐng)輸入你的姓名: ); scanf( %s,name); book(air,line_num,cus,name); save_airline(air); save_customer(cus); else if(choice=1) pr(n請(qǐng)輸入你的姓名: ); scanf( %s,name); delete_cus(cus,air,name); save_airline(air); save_customer(cus); else if(choice=2) pr(n 航班號(hào) 飛機(jī)號(hào) 目的地 總票數(shù) 余票數(shù)n); print_airline(air); pr( 姓名 航班號(hào) 座位號(hào)n); print_customer(cus);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論