航空訂票系統(tǒng)說明書.doc_第1頁
航空訂票系統(tǒng)說明書.doc_第2頁
航空訂票系統(tǒng)說明書.doc_第3頁
航空訂票系統(tǒng)說明書.doc_第4頁
航空訂票系統(tǒng)說明書.doc_第5頁
免費預(yù)覽已結(jié)束,剩余19頁可下載查看

下載本文檔

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

文檔簡介

計算機語言課程設(shè)計 任務(wù)書及說明書設(shè)計題目 : 航空訂票系統(tǒng) 學(xué) 院 專業(yè)、 年級 學(xué) 生 學(xué) 號 指 導(dǎo) 教 師 時 間 2010 年 春季 學(xué)期目錄 1摘要 3前言43正文.53.1系統(tǒng)分析.53.2總體設(shè)計.63.3詳細(xì)設(shè)計.83.4系統(tǒng)調(diào)試與測試.104參考文獻(xiàn).15附錄:源程序.161摘要航空定票系統(tǒng)是使用JAVA編程技術(shù)在MYEclipse6.0集成開發(fā)環(huán)境下開發(fā)的訂票系統(tǒng)。該系統(tǒng)實現(xiàn)了航班管理、訂票管理、退票管理以及查詢航線航班等功能。在航班管理中航空公司內(nèi)部管理員能在系統(tǒng)中完成添加客戶或刪除客戶信息、查看數(shù)據(jù)庫等功能。乘客能夠在系統(tǒng)中完成查詢航班、訂票辦理和退票辦理等功能。乘客可以用多種方式來查詢航班信息,系統(tǒng)還能將這些信息保存在數(shù)據(jù)庫中,并供航空公司內(nèi)部管理員隨時查詢。關(guān)鍵詞: 航空定票系統(tǒng);結(jié)構(gòu)體;文件;指針;定票;退票;查詢。 2前言通過該題目的設(shè)計過程,可以培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計的思想,加深對高級語言基本語言要素和控制結(jié)構(gòu)的理解,針對c語言中的重點和難點內(nèi)容進(jìn)行訓(xùn)練,獨立完成有一定工作量的程序設(shè)計任務(wù),同時強調(diào)好的程序設(shè)計風(fēng)格。得到軟件工程的綜合訓(xùn)練,提高解決實際問題的能力。3正文3.1系統(tǒng)分析 設(shè)計一個實用的航空訂票系統(tǒng),能以簡便高效的方式對航線及客戶信息、訂票、退票等的錄入和查詢,具體功能如下:1、 系統(tǒng)以菜單方式工作,要求界面友好,易于操作;2、 訂票系統(tǒng)信息錄入功能(訂票信息以文件保存);3、 訂票成功,存儲客戶信息功能;4、 退票成功,查詢客戶信息功能;5、 訂票信息查詢功能??傮w設(shè)計登錄界面航空訂票系統(tǒng)存儲航線信息系統(tǒng) 存儲客戶信息系統(tǒng) 退票系統(tǒng)查詢系統(tǒng) 訂票系統(tǒng)退出訂票系統(tǒng)按航線查詢按姓名查詢退出主菜單,到登錄界面! 為實現(xiàn)系統(tǒng)功能,本程序主要分為五個模塊。它們分別為:存儲航線信息、存儲客戶信息、退票刪除客戶信息、訂票存儲客戶信息、查詢客戶信息,保存并且退出該程序。這五個函數(shù)再通過主函數(shù)調(diào)用分別得以實現(xiàn)。主函數(shù),首先提供了程序運行時的友好界面,列出了清單,提供用戶做出選擇,以便決定使用訂票系統(tǒng)的哪種功能。然后,通過執(zhí)行多分支選擇語句switch語句,分別現(xiàn)其它各個函數(shù)的調(diào)用功能。其它各個函數(shù)的功能分別如下:airline函數(shù)用于對航線及客戶中的數(shù)據(jù)以文件的方式進(jìn)行讀入和添加;book函數(shù)用于訂票時對客戶信息的存儲;cancel函數(shù)用于退票時對客戶信息的刪除;information函數(shù)用于對文件中客戶信息的查詢。(選擇 5時退出訂票系統(tǒng))3.3詳細(xì)設(shè)計(1)數(shù)據(jù)結(jié)構(gòu)設(shè)計本程序中,對于航線及客戶各項詳細(xì)信息的記錄用了結(jié)構(gòu)數(shù)組的形式,對于主要數(shù)據(jù)結(jié)構(gòu)的應(yīng)用如下:結(jié)構(gòu)數(shù)組: struct airlineInformation /*存儲航線信息*/ char flightNum20; /*航班號*/char placeNum20; /*飛機號*/char destination20; /*目的地*/int bookTicketNum; /*訂票數(shù)*/int spareTicket; /*余票數(shù)*/int seat100; /*表示該航班的座位是否有人坐的情況*/airline3; struct clientInformation /*存儲客戶信息*/ char clientNum20; /*姓名*/char clientFlightNum20; /*航班號*/int seatNum; /*座位號*/client300;(2)模塊接口設(shè)計 本程序執(zhí)行的入口是main函數(shù),然后用switch語句實現(xiàn)對各個函數(shù)的調(diào)用。被調(diào)用的函數(shù)都是沒有形參的,函數(shù)直接實現(xiàn)所需要的功能。最后,再從main函數(shù)中結(jié)束整個程序的運行 其中涉及到被調(diào)用的函數(shù)有:airLine() 用于對航線及客戶信息中的數(shù)據(jù)以文件的方式進(jìn)行讀入和添加;book() 用于訂票時對客戶信息的存儲; cancel() 用于退票時對客戶信息的刪除;information() 用于對文件中客戶信息的查詢;(3)部分函數(shù)流程圖airline()函數(shù):book()函數(shù):cancel() 函數(shù): information() 函數(shù): 3.4系統(tǒng)調(diào)試與測試首先進(jìn)入菜單,選擇1時輸出航線及客戶信息,初始有三名乘客,分別對應(yīng)于相應(yīng)的航班號,飛機號,目的地,定余票數(shù)及相關(guān)信息。選擇時,乘客可根據(jù)航線訂票,訂票成功則輸出相應(yīng)的座位號、目的地,然后可進(jìn)行下一項。選擇輸出查詢信息,例如飛機號、目的地、訂票數(shù)等。當(dāng)多項選擇完成時,選擇退出訂票系統(tǒng),操作結(jié)束。(2)在沒有聲明函數(shù)原型的情況下調(diào)用函數(shù),系統(tǒng)默認(rèn)把其處理為有任意個整型參數(shù)。返回值也為整型。調(diào)用時所有參數(shù)以整型傳遞,會出現(xiàn)參數(shù)不匹配的情況。解決辦法就是明確定義函數(shù)參數(shù)的類型和個數(shù)。但在這個過程中,我的基礎(chǔ)也欲顯扎實,對C語言編程的認(rèn)識也提升了一個層次。 設(shè)計總結(jié)在這個航空訂票系統(tǒng)C語言課程設(shè)計中,完成了基本功能,即可以檢索記錄,新建新記錄,刪除記錄,使用文件對記錄進(jìn)行保存和讀取功能。在開始進(jìn)行課程設(shè)計時,先進(jìn)行界面模塊的總體把握,充分了解自己要設(shè)計的程序的總體的結(jié)構(gòu),從而,在設(shè)計過程中能一個模塊一個函數(shù)進(jìn)行詳細(xì)的構(gòu)思,從而在調(diào)試程序時也顯得比較方便,雖說隨著程序代碼的不斷增多、其復(fù)雜性不斷增大,但因為分模塊函數(shù)一個一個的調(diào)試;最后將其模塊用多文件編譯運行至沒有遇到語法錯誤。但是,運行結(jié)果完全不正確,常常出現(xiàn)亂碼和死循環(huán)等問題,通過查找資料、與同學(xué)相互討論、多次上機實踐及請教,程序終于正確地運行。在此過程中,通過實踐的學(xué)習(xí),學(xué)好計算機要重視實踐操作,不僅僅是學(xué)習(xí)C語言,還有其他語言,要注重實踐能力的培養(yǎng),學(xué)到的不止是如何調(diào)試這個知識,學(xué)到得最多的是一種遇到不懂問題怎么去解決的方法和在遇到困難時心態(tài)的調(diào)節(jié)即無論學(xué)習(xí)什么,親手動手去做才能得到最深刻的體會。在此課程設(shè)計中,不僅綜合了數(shù)據(jù)結(jié)構(gòu)的知識,而且還綜合了文件處理數(shù)據(jù)的知識,難度顯得較大,但這些功能還是能在較短的時間內(nèi)完成,倒是課本上那些屬于基礎(chǔ)和細(xì)節(jié)上的知識點總不知道如何使用、常常用錯,如在使用switch()、while()、和getch(),scanf()以及gets()等語句上,有時因用錯它們,使程序無法停止??偟膩碚f,這次課程設(shè)計收獲很多,為了完成這次設(shè)計,參考了一些書籍,查看一些資料,對課本知識進(jìn)行總結(jié),了解了以前常忽視卻很重要的東西,深化了對C語言的理解,進(jìn)一步理解對C語言進(jìn)行程序設(shè)計的方法和步驟,加深了結(jié)構(gòu)化程序設(shè)計的思想,更重要的是,積累了很多調(diào)試程序的經(jīng)驗,為進(jìn)一步學(xué)習(xí)C語言奠定了一定的基礎(chǔ)。 4:參考文獻(xiàn)1 C/C+程序設(shè)計,王連相等,中國科學(xué)技術(shù)出版社,20042 C語言程序設(shè)計,譚浩強,清華大學(xué)出版社,19993 C程序設(shè)計題解與上機指導(dǎo),譚浩強,清華大學(xué)出版社,19994 C語言實用程序薈萃,西安電子科技大學(xué)出版社,19935 C語言函數(shù)手冊,機械工業(yè)出版社,1999附錄:源程序#include#include#includestruct airlineInformation/存儲航線信息的結(jié)構(gòu),初始為三條航線char flightNum20;char planeNum20;char destination20;int bookTicketNum;int spareTicketNum;int seat100;/表示該航班的座位是否有人坐的情況airline3=0001,china-001,BeiJing,1,99,0,0002,china-002,ShangHai,1,99,0,0003,china-003,Guangzhou,1,99,0; struct clientInformation/存儲客戶信息的結(jié)構(gòu),初始為三位客戶 char clientName20; char clientFlightNum20; int seatNum;client300=zhangsan,0001,1,lisi,0002,1,wangwu,0003,1;int enterChoice(void);void airLine(FILE * cfPtr1 , FILE * cfPtr2);/進(jìn)行航線信息與客戶信息的儲存的函數(shù)原型void bookTicket(FILE * cfPtr1 , FILE * cfPtr2);/訂票的函數(shù)原型void cancelTicket(FILE * cfPtr1 , FILE * cfPtr2);/退票的函數(shù)原型void printInformation(FILE * cfPtr1 , FILE * cfPtr2);/打印航線信息與客戶信息的函數(shù)原型int main()FILE * cfPtr1;FILE * cfPtr2;int choice,i,j; for(i=0;i=2;i+)/開始時只有每次航班的第一個座有人坐 for(j=0;j=99;j+) airlinei.seatj=0; airlinei.seat0=1;if (cfPtr1=fopen(airline.dat,wb+)=NULL)printf(非常抱歉!n存儲航線信息的文件不能打開!n請稍候n);else if(cfPtr2=fopen(customer.dat,wb+)=NULL)printf(非常抱歉!n存儲客戶信息的文件不能打開!n請稍候n);elseairLine(cfPtr1,cfPtr2);for(i=1;i=30;i+) printf(*); printf(n歡迎使用南航訂票系統(tǒng)!n有何疑問詳詢800-800-800!n);while(choice=enterChoice()!=5)/對操作的選擇,當(dāng)選擇5時,操作結(jié)束switch (choice) case 1: airLine(cfPtr1,cfPtr2); printInformation(cfPtr1,cfPtr2); break; case 2: bookTicket(cfPtr1,cfPtr2); break; case 3: cancelTicket(cfPtr1,cfPtr2); break; case 4: printInformation(cfPtr1,cfPtr2); break; printf(n);for(i=1;i=30;i+)printf(*);printf(n);printf(謝謝您使用本系統(tǒng)!n歡迎您下次再次使用!n再見!n);for(i=1;i=30;i+)printf(*);printf(n);fclose(cfPtr1);fclose(cfPtr2);system(pause);return 0;int enterChoice(void)int i; int menuChoice; for(i=1;i=30;i+)printf(*);printf(n); printf(n請輸入您想進(jìn)行的操作:n 1-航線信息及客戶信息的存儲n 2-訂票n 3-退票n 4-查詢信息n 5-退出系統(tǒng)n);printf(n);for(i=1;i=30;i+)printf(*);printf(n);scanf(%d,&menuChoice); for(i=1;i=20;i+)printf(*);printf(n);return menuChoice;void airLine(FILE * cfPtr1 , FILE * cfPtr2) int i;if (cfPtr1=fopen(airline.dat,rb+)=NULL)printf(非常抱歉!n存儲航線信息的文件不能打開!n請稍候n);else if(cfPtr2=fopen(customer.dat,rb+)=NULL)printf(非常抱歉!n存儲客戶信息的文件不能打開!n請稍候n);elsefor(i=0;i=2;i+)/將目前airline結(jié)構(gòu)數(shù)組中的每一項都儲存在航線信息中fwrite(&airlinei,sizeof(struct airlineInformation),1,cfPtr1);for(i=0;i=299;i+)/將目前client結(jié)構(gòu)數(shù)組中的每一項都儲存在客戶信息中fwrite(&clienti,sizeof(struct clientInformation),1,cfPtr2);fclose(cfPtr1);fclose(cfPtr2);void bookTicket(FILE * cfPtr1 , FILE * cfPtr2)char Name20;char flightnum20;int i,j,ok=0;/ok為是否訂上票的標(biāo)記值,0表示沒訂上,1表示訂上if (cfPtr1=fopen(airline.dat,rb+)=NULL)printf(非常抱歉!n存儲航線信息的文件不能打開!n請稍候n);else if(cfPtr2=fopen(customer.dat,rb+)=NULL)printf(非常抱歉!n存儲客戶信息的文件不能打開!n請稍候n);elsegetchar();printf(尊敬的客戶,歡迎您訂票!n);for(i=1;i=30;i+) printf(*);printf(n請輸入您的姓名:n);gets(Name);printf(%s先生/女士,請輸入您想乘坐的航班號:n,Name);gets(flightnum);printf(操作正在進(jìn)行中,請稍后.n);for(i=1;i=30;i+) printf(*);printf(n);for(i=0;i0)/并且有余票ok=1;airlinei.bookTicketNum+; airlinei.spareTicketNum-;break;if(ok=1)for(j=0;j=99;j+)/為客戶選擇一座位 if(airlinei.seatj=0)airlinei.seatj=1;break;printf(恭喜您!n您已經(jīng)訂上了%s次航班的%d座位, 您的目的地為%sn,flightnum,j+1,airlinei.destination);for(i=0;i 2)printf(對不起!n這里沒有該次航班,請檢查后再次輸入!n);elseprintf(抱歉!n您所要坐的%s航班由于客滿,不能為您辦理!n,flightnum);for(i=1;i=30;i+)printf(*);printf(n);/將此時的信息儲存airLine(cfPtr1,cfPtr2);fclose(cfPtr1);fclose(cfPtr2);void cancelTicket(FILE * cfPtr1 , FILE * cfPtr2)char Name20;char flightnum20;int i,j,ok=0,ok1=0;/ok表示是否退票成功,ok1表示是否有該客戶if (cfPtr1=fopen(airline.dat,rb+)=NULL)printf(非常抱歉!n存儲航線信息的文件不能打開!n請稍候n);else if(cfPtr2=fopen(customer.dat,rb+)=NULL)printf(非常抱歉!n存儲客戶信息的文件不能打開!n請稍候n);elsegetchar();printf(尊敬的客戶,歡迎您退票!n);for(i=1;i=30;i+) printf(*);printf(n請輸入您的姓名:n); gets(Name); printf(%s先生/女士,請輸入您想退掉的航班號:n,Name);gets(flightnum); for(i=1;i=30;i+) printf(*);printf(n);printf(操作正在進(jìn)行中,請稍后.n);for(i=1;i=20;i+) printf(*);printf(n);for(i=0;i=299;i+)/檢查是否有該客戶if(strcmp(clienti.clientName,Name)=0)/有該客戶ok1=1;for(j=0;j=2;j+)/檢查其輸入的航班號是否真確if(strcmp(airlinej.flightNum,flightnum)=0)ok=1; airlinej.bookTicketNum-;airlinej.spareTicketNum+;airlinej.seatclienti.seatNum=0; break;if(ok=1)/退票成功,刪除客戶信息strcpy(clienti.clientName,);strcpy(clienti.clientFlightNum,); clienti.seatNum=0;break;if(ok1=0)printf(抱歉!n您還沒有訂票!n);elseif(ok=1)printf(恭喜您!n您已經(jīng)退票成功!n);elseprintf(抱歉!n您訂的不是這次航班,請檢查后再次輸入!n);for(i=1;i=30;i+)printf(*);printf(n);airLine(cfPtr1,cfPtr2);fclose(cfPtr1);fclose(cfPtr2);void printInformation(FILE * cfPtr1 , FILE * cfPtr2)int i;struct airlineInformation airline;struct clientInformation client;if (cfPtr1=fopen(airline.dat,rb+)=NULL)printf(非常抱歉!n存儲航線信息的文件不能打開!n請稍候n);else if(cfPtr2=fopen(customer.dat,rb

溫馨提示

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

最新文檔

評論

0/150

提交評論