飛機訂票系統(tǒng)課程設計報告_第1頁
飛機訂票系統(tǒng)課程設計報告_第2頁
飛機訂票系統(tǒng)課程設計報告_第3頁
飛機訂票系統(tǒng)課程設計報告_第4頁
飛機訂票系統(tǒng)課程設計報告_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、飛機訂票系統(tǒng)課程設計報告指導老師:班 級:學生姓名:學 號:完成日期:計算機科學與技術系飛機訂票系統(tǒng)課程設計報告一、系統(tǒng)分析。1.1 根據(jù)飛機訂票系統(tǒng)的設計目的,設計內(nèi)容和設計要求。本團隊對飛機訂票系統(tǒng)這一基礎管理系統(tǒng)的業(yè)務進行了細致的分析討論。最終我們決定將整個系統(tǒng)分成 7個主要模塊。采用結構體這一數(shù)據(jù)結構來存放教師的信息。首先是信息錄入模塊,接下來輸出模塊,即瀏覽,查詢,排序信息三個模塊,最后是訂票,退票模塊。為降低操作難度,以及出錯率,決定使用全局數(shù)組及變量進行操作。1.2 飛機訂票系統(tǒng)簡易圖飛機訂票系統(tǒng)/(一 上1.1dI 一 上10,退出.1.添加航2.瀏覽航3.查詢航4,航班信5.

2、訂票業(yè) 6,退票業(yè)班信國班信息,班信息評 息排序 務, 務卡L |J喻入航班號.輸入航班號蛉入褊轎卻I .輸入航班號,限人航班數(shù)11 .按航班從輸入機票數(shù)力 小到大排列訂票成功2 一從大到小排如輸入起點站查詢結果口輸入終點站輸入票價”L輸入機票數(shù).二、系統(tǒng)設計2.1 總體設計(主要功能)本程序包含六大主要模塊添加信息模塊;瀏覽信息模塊;信息查詢模塊;信息排序模塊;訂票模塊;退票模 塊。整體程序采用全局數(shù)組fj (飛機)進行存儲,全局變量pd (判 斷)作為標識變量。宏定義輸出格式。采用 Y, N的方式進行 操作回退或繼續(xù)操作的選擇。航班信息包括:航班號,起點,終點,票價,數(shù)量及訂票標志量(隱藏

3、信息)。輸入模塊,使用分條輸入,以減少錯誤率并方便操作。瀏覽,查詢及排序模塊,組合成輸出模塊。多方式輸出更便 于觀察并方便記錄,同時為后續(xù)模塊的執(zhí)行提供操作基礎。訂,退票模塊調(diào)用查詢模塊實現(xiàn)其功能。2.2 軟件、硬件環(huán)境軟件環(huán)境VC2009硬件環(huán)境 處理器 Intel(R) Core(TM) i5-3210M CPU 2.50GHz2.50 GHz;顯卡 GTX650內(nèi)存4.0GB操作系統(tǒng)Windows 72.51 要數(shù)據(jù)結構和程序的關系說明/定義結構體數(shù)組,航班信息主要數(shù)據(jù)結構是結構體struct hbxx2.4int hbh;char qd20;char zd20;float pj;int

4、 sl;int dcp;fjN;界面設計/定義航班號/起點站/終點站/票價/機票數(shù)量/訂票標志量本程序開始運行的界面,共7個選項,簡潔而大方。雙迎使用飛機訂票系自心自心自心 e厘號r: 班班班息務務業(yè)票西壬 添瀏查航工退12 3 4 5 6 0請在gf中選擇以回主鍵結束:接下來是添加信息的界面。采用分條添加,清晰而明朗歡迎使用飛機可零系統(tǒng)息息息序期W1郎壽務諉瀏查航膏青一苴站S班點.快d終挈機畢入人人人人完請荏明臺中選擇以回車鍵結束::清葆次輸流舞淘ta 版舞息以回車犍結束):1s4 * = r.r. "1 -i m -, - UK"-一一- 一 - =. - 1 -.i/

5、r. " - -* - - - - -" - * - ”.Fr- -加 工山西二北素120 t 240否繼續(xù)添加?清橇2或者n以回車施結束工瀏覽信息的界面,將所有航班信息顯示在屏幕上。B心自心班珊班息熱發(fā) 二國一加一死三一口上LJI JMJ- 4班票曲田添瀏查航苴退12 3 4 5 6 0區(qū)在斤6中選擇以回車鍵結束m前巷們有如下航班,價格機票數(shù)24D翩再起始站終點站12312342山西龍京I按回車犍返回上層菜單查詢航班信息界面,根據(jù)用戶輸入的航班號,顯示其航班信息。便于用戶使用,查找。息息S.序: 班班班息務務班票西田 添瀏查骯蔡退產(chǎn)在*6中選擇以回車本束:3 卜ft入航班

6、號.|uU山西詢完畢,按回車鍵繼續(xù).終點站 北京票價機票數(shù)240航班排序界面,將所有航班根據(jù)航班號進行排序,可由用戶選擇是由大到小,還是由小到大息息息序 喑喧后<: 班班班息務務H1 - « 班票西田一一 禽查航訂逼退一一12 3 4 5 6 0 -二 二 二 二 二 二 二 二 二二 二 二 二 二 二 二 二 二 二 二 二 二二 二 二 二 二 二 二 二 二 二 二機票數(shù) 240格比價12站占景終北站盟 為起山息=e 1,/TI:.一一束航 一一結的 一一鍵后號睛按回車健返回上層菜單訂票界面,由用戶輸入需要訂票的航班號,在進行訂票操作一一息息息序F信崔國耶: -班班班息

7、務務業(yè)業(yè), X 班票西茁 一一添瀏查航訂退退 ! -1234560青在回f中選擇以回車鍵結束:5靖輸入航班號:2躁找的航班鹿遍終點站票價機票數(shù)山西北京120.SB240 .按國車鍵繼續(xù)退票界面。12 3 4 5 6 0息息息信喧后<: 班班班息務務 ,冗幾、見士 - 口也也班票西田 添瀏查航訂退退請在日f中選擇以回車鍵結束:E請輸入航班號:2終點站票價山西北樂1200機票數(shù)220完今詢輸票查M最. .何車鍵繼虢要X的機票數(shù)目:12京礴續(xù)號請鍵入照加以回車犍結束2.5函數(shù)模塊設計(函數(shù)功能說明和入口參數(shù)的說明)void xxtj();/信息添加的函數(shù)void xianshi();/顯示航班

8、信息void chazhao();/查找航班信息void dingpiao();/訂票業(yè)務void tuipiao();/退票業(yè)務void duqu();/讀取文件void baocun();/保存義件void scgs();/輸出格式函數(shù)void paixu();/航班排序void chushihua();/系統(tǒng)初始化void jianli();/建立數(shù)據(jù)文件void paixu1();/按航班號從小到大排void paixu2();/從大到小三、系統(tǒng)實現(xiàn)主要代碼/飛機訂票系統(tǒng)/頭文件#include<stdio.h>#include<string.h>#includ

9、e<process.h>#define N 9999/標準輸入,輸出函數(shù)/包含字符串處理的頭文件/包含access的頭文件,用于系統(tǒng)初始化/定義最大航班數(shù)#definePRINT"%dtt%stt%stt%.2ftt%dn",fji.hbh,fji.qd,fji.zd,fji.pj ,fji.sl/宏定義輸出格式上struct hbxxint hbh;char qd20;char zd20;float pj;int sl;int dcp;fjN;/定義結構體數(shù)組,航班信息/定義航班號/起點站/終點站/票價/機票數(shù)量訂票標志量int i,m=0;char pd10

10、="y"/函數(shù)聲明void xxtj();void xianshi();void chazhao();void dingpiao();void tuipiao();void duqu();void baocun();void scgs();void paixu();void chushihua();void jianli();void paixu1();void paixu2();/主函數(shù)void main()int j;chushihua();/定義全局變量/信息添加的函數(shù)一一盧杰/顯示航班信息一一祁海鵬/查找航班信息一一祁海鵬/訂票業(yè)務李平/退票業(yè)務一一李平/讀取文件一

11、一蔡曉宏顯存文件一一蔡曉宏/輸出格式函數(shù)一一祁海鵬/航班排序一一李平/系統(tǒng)初始化一一盧杰/建立數(shù)據(jù)文件一一盧杰/顯航班號從小到大排一一蔡曉宏/從大到小蔡曉宏/主函數(shù)李平/系統(tǒng)初始化判斷是否存在原始的數(shù)據(jù)文件printf("歡迎使用飛機訂票系統(tǒng)n");/ 打印出系統(tǒng)主界面do(printf("= =n""ttt1.添加航班信息。n""ttt2.瀏覽航班信息。n""ttt3.查詢航班信息。n""ttt4.航班信息排序。n""ttt5.訂票業(yè)務。n""

12、ttt6.退票業(yè)務。n""ttt0.退出。n"II =n");printf(" 請在0-6中選擇以回車鍵結束:");scanf("%d",&j);switch(j)(case 1:xxtj();break; /調(diào)用信息添加函數(shù)case 2:xianshi();break;/調(diào)用顯示模塊case 3:chazhao();break;/調(diào)用查找模塊case 4:paixu();break;/調(diào)用排序函數(shù)case 5:dingpiao();break;/調(diào)用訂票模塊case 6:tuipiao();break;/

13、調(diào)用退票模塊case 0:baocun();printf(" 謝謝使用,再見! n"); break;default:printf("輸入有誤! n");break;while(j!=0);/判斷是否調(diào)用其他函數(shù)void chushihua()if(access("fjdpxt.dat",0)jianli();/定義系統(tǒng)初始化函數(shù)盧杰 elseduqu();void jianli()/定義建立數(shù)據(jù)文件函數(shù)盧杰(FILE *fp;if(fp=fopen("fjdpxt.dat","wb")=NUL

14、L)/ 打印文件判斷是否出錯(printf("創(chuàng)建文件失敗!");打印出錯提示getchar(); return;)printf("請依次輸出航班信息(以回車鍵結束):n"); 打印提示信息printf("n");for(i=0;i<N;i+)(printf("請輸入航班號:");scanf("%d",&fji.hbh);printf("請輸入起始站:");scanf("%s",fji.qd);printf("請輸入終點站:&quo

15、t;);scanf("%s",fji.zd);printf("請輸入票價:");scanf("%f",&fji.pj);printf("請輸入機票數(shù):");scanf("%d",&fji.sl);fwrite(&fji,sizeof(struct hbxx),1,fp);m+;printf("添加完畢,是否繼續(xù)添加?請鍵入 y或n以回車鍵結束:");scanf("%s",pd);if(strcmp(pd,"y")

16、!=0)/判斷是否繼續(xù)添加航班信息( fclose(fp);/ 關閉文件return;)void duqu()/定義讀取文件函數(shù)蔡曉宏(FILE *fp;if(fp=fopen("fjdpxt.dat","r")=NULL) (printf("創(chuàng)建文件失敗!");getchar(); return;)i=0;/逐塊讀取數(shù)據(jù)while(!feof(fp) /判斷是否遇到文件結束, fread(&fji,sizeof(struct hbxx),1,fp); i+;m+;/計算存在的航班數(shù))m-;fclose(fp);)void b

17、aocun() /定義保存函數(shù)蔡曉宏FILE *fp;if(fp=fopen("fjdpxt.dat","wb")=NULL)printf("創(chuàng)建文件失敗!");getchar();return;)for(i=0;i<m;i+)/逐塊保存數(shù)據(jù)fwrite(&fji,sizeof(struct hbxx),1,fp);fclose(fp);)void xxtj()/定義添加航班信息函數(shù)盧杰doprintf("請依次輸入您要添加的航班信息(以回車鍵結束):n");/打印提示信息printf("n

18、 );printf("請輸入航班號:");scanf("%d”,&fjm.hbh);printf("請輸入起點站:");scanf("%s",fjm.qd);printf("請輸入終點站:");scanf("%s",fjm.zd);printf(" 請輸入票價:");scanf("%f,',&fjm.pj);printf("請輸入機票數(shù):");scanf("%d",&fjm.sl);m

19、+;printf(" 添加完畢,是否繼續(xù)添加?請鍵入y或者n以回車鍵結束:");scanf("%s",pd);while(!strcmp(pd,"y");/ 判斷是否繼續(xù)添加void scgs()/定義輸出格式祁海鵬printf(" 航班號tt 起始站tt 終點站tt 價格tt 機票數(shù)n");/信息標題for(i=0;i<m;i+)printf(PRINT);/ 打印出信息void xianshi()/定義顯示航班信息函數(shù)祁海鵬printf("n目前我們有如下航班:n");scgs();/

20、調(diào)用輸出格式函數(shù)printf("n請按回車鍵返回上層菜單");getchar();getchar();void chazhao()/定義查詢函數(shù)祁海鵬int n;doprintf("n請輸入航班號:");scanf("%d",&n);/輸入查詢的航班號for(i=0;i<m;i+)if(fji.hbh=n) /按航班號判定輸出條件 printf("n您所查找的航班信息為:n");printf(" 航班號tt 起始站tt 終點站tt 票價tt 機票數(shù) nn");printf(PRIN

21、T); / 顯示信息strcpy(pd,"y");printf("n 查詢完畢,按回車鍵繼續(xù)");getchar();getchar(); return;)printf("n對不起,沒有您需要的信息!n");printf("是否重新查找?請鍵入y或n以回車鍵結束:");scanf("%s",pd);while(!strcmp(pd,"y"); / 判斷是否重新查找)void dingpiao()/定義訂票業(yè)務函數(shù)李平char a10="y"do chazh

22、ao(); /調(diào)用查詢模塊 if(strcmp(pd,"y") printf("對不起!沒有找到您所需要的航班,所以不能訂票。n");printf("n請按回車鍵返回上層菜單");getchar();getchar();strcpy(pd,"y");break; doprintf("請輸入您要訂的機票數(shù)(以回車結束):");scanf("%d",&fji.dcp);/ 輸入所定機票數(shù)if(fji.dcp<=0)/判斷機票數(shù)是否出錯printf("輸入錯

23、誤!至少需訂1張機票。n");else if(fji.sl=0) /判斷機票是否手售完printf("對不起,你所選擇的力定班的機票已售完!n");break;else if(fji.sl!=0&&fji.sl>=fji.dcp) /判斷機票數(shù)是否大于等于訂票數(shù)fji.sl=fji.sl-fji.dcp;printf("訂票成功!");break;) else if(fji.sl<fji.dcp)/判斷機票數(shù)是否小于訂票數(shù)(printf(" 對不起,您所選擇的航班只剩d張機票 n",fji.sl)

24、;printf("是否需要重新輸入機票數(shù)?請輸入 y或n以回車鍵結束:");/判斷是否重新輸入訂票數(shù)scanf("%s",a);)while(!strcmp(a,"y");printf("是否需要訂其他航班的機票?請輸入 y或n以回車鍵結束:");scanf("%s",a);while(!strcmp(a,"y");/ 判斷是否繼續(xù)訂票void tuipiao()/定義退票函數(shù)李平(char a10; do(int n=0;chazhao(); /調(diào)用查找函數(shù) if(strc

25、mp(pd,"y")(printf("對不起!沒有找到你所需要的航班,所以不能退票。n"); printf("n請按回車鍵返回上層菜單");getchar(); getchar(); strcpy(pd,"n"); break;printf("請輸入您要退的機票數(shù)目:");scanf("%d",&n);/輸入所退票數(shù)if(n<=0)/判斷票數(shù)是否有效printf(" 輸入錯誤!至少需退1張機票。n"); else if(n>=fji.d

26、cp) (printf("輸入錯誤,退票量大于售出量。n"); else ( fji.sl=fji.sl+n; printf("退票成功!");printf(" 是否繼續(xù)?請鍵入y或n以回車鍵結束:");/判斷是否繼 續(xù)退票scanf("%s",a);while(!strcmp(a,"y");/ 判定并跳出循環(huán))/定義排序函數(shù)一一李平void paixu() int n;printf("n*n");printf("1.按航班號從小到大排序n"*"

27、2.按航班號從大到小排序n");printf('I*");printf(" 請在1-2中選擇以回車鍵結束:");scanf("%d",&n);/輸入排序方式switch(n)case 1:paixu1();break;/調(diào)用從小到大排序函數(shù)case 2:paixu2();break;/調(diào)用從大到小排序函數(shù)default:printf("輸入有誤!按默認輸出。n");printf("排序后的航班信息為:n");scgs();/顯示排序后的航班信息printf("n請按回車鍵返回上層菜單");getchar(

溫馨提示

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

評論

0/150

提交評論