




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)報(bào)告 指導(dǎo)老師: 班 級(jí): 學(xué)生姓名: 學(xué) 號(hào): 完成日期: 計(jì)算機(jī)科學(xué)與技術(shù)系飛機(jī)訂票系統(tǒng)課程設(shè)計(jì)報(bào)告一、系統(tǒng)分析。1.1根據(jù)飛機(jī)訂票系統(tǒng)的設(shè)計(jì)目的,設(shè)計(jì)內(nèi)容和設(shè)計(jì)要求。本團(tuán)隊(duì)對(duì)飛機(jī)訂票系統(tǒng)這一基礎(chǔ)管理系統(tǒng)的業(yè)務(wù)進(jìn)行了細(xì)致的分析討論。最終我們決定將整個(gè)系統(tǒng)分成7個(gè)主要模塊。采用結(jié)構(gòu)體這一數(shù)據(jù)結(jié)構(gòu)來存放教師的信息。首先是信息錄入模塊,接下來輸出模塊,即瀏覽,查詢,排序信息三個(gè)模塊,最后是訂票,退票模塊。為降低操作難度,以及出錯(cuò)率,決定使用全局?jǐn)?shù)組及變量進(jìn)行操作。1.2飛機(jī)訂票系統(tǒng)簡(jiǎn)易圖二、系統(tǒng)設(shè)計(jì)2.1總體設(shè)計(jì)(主要功能)本程序包含六大主要模塊添加
2、信息模塊;瀏覽信息模塊;信息查詢模塊;信息排序模塊;訂票模塊;退票模塊。整體程序采用全局?jǐn)?shù)組fj(飛機(jī))進(jìn)行存儲(chǔ),全局變量pd(判斷)作為標(biāo)識(shí)變量。宏定義輸出格式。采用Y,N的方式進(jìn)行操作回退或繼續(xù)操作的選擇。航班信息包括:航班號(hào),起點(diǎn),終點(diǎn),票價(jià),數(shù)量及訂票標(biāo)志量(隱藏信息)。輸入模塊,使用分條輸入,以減少錯(cuò)誤率并方便操作。瀏覽,查詢及排序模塊,組合成輸出模塊。多方式輸出更便于觀察并方便記錄,同時(shí)為后續(xù)模塊的執(zhí)行提供操作基礎(chǔ)。訂,退票模塊調(diào)用查詢模塊實(shí)現(xiàn)其功能。2.2 軟件、硬件環(huán)境軟件環(huán)境 VC2009硬件環(huán)境 處理器 Intel(R) Core(TM) i5-3210M CPU 2.50
3、GHz 2.50GHz;顯卡 GTX650。內(nèi) 存 4.0GB操作系統(tǒng) Windows 72.3主要數(shù)據(jù)結(jié)構(gòu)和程序的關(guān)系說明主要數(shù)據(jù)結(jié)構(gòu)是結(jié)構(gòu)體struct hbxx/定義結(jié)構(gòu)體數(shù)組,航班信息int hbh;/定義航班號(hào)char qd20;/起點(diǎn)站char zd20;/終點(diǎn)站float pj;/票價(jià)int sl;/機(jī)票數(shù)量int dcp;/訂票標(biāo)志量fjN;2.4界面設(shè)計(jì)本程序開始運(yùn)行的界面,共7個(gè)選項(xiàng),簡(jiǎn)潔而大方。接下來是添加信息的界面。采用分條添加,清晰而明朗。瀏覽信息的界面,將所有航班信息顯示在屏幕上。查詢航班信息界面,根據(jù)用戶輸入的航班號(hào),顯示其航班信息。便于用戶使用,查找。航班排序界
4、面,將所有航班根據(jù)航班號(hào)進(jìn)行排序,可由用戶選擇是由大到小,還是由小到大。訂票界面,由用戶輸入需要訂票的航班號(hào),在進(jìn)行訂票操作。退票界面。2.5函數(shù)模塊設(shè)計(jì)(函數(shù)功能說明和入口參數(shù)的說明)void xxtj();/信息添加的函數(shù)void xianshi();/顯示航班信息void chazhao();/查找航班信息void dingpiao();/訂票業(yè)務(wù)void tuipiao();/退票業(yè)務(wù)void duqu();/讀取文件void baocun();/保存文件void scgs();/輸出格式函數(shù)void paixu();/航班排序void chushihua();/系統(tǒng)初始化void j
5、ianli();/建立數(shù)據(jù)文件void paixu1();/按航班號(hào)從小到大排void paixu2();/從大到小三、系統(tǒng)實(shí)現(xiàn)主要代碼/飛機(jī)訂票系統(tǒng)/頭文件#include<stdio.h>/標(biāo)準(zhǔn)輸入,輸出函數(shù)#include<string.h>/包含字符串處理的頭文件#include<process.h>/包含access的頭文件,用于系統(tǒng)初始化#define N 9999/定義最大航班數(shù)#define PRINT "%dtt%stt%stt%.2ftt%dn",fji.hbh,fji.qd,fji.zd,fji.pj,fji.sl/
6、宏定義輸出格式struct hbxx/定義結(jié)構(gòu)體數(shù)組,航班信息int hbh;/定義航班號(hào)char qd20;/起點(diǎn)站char zd20;/終點(diǎn)站float pj;/票價(jià)int sl;/機(jī)票數(shù)量int dcp;/訂票標(biāo)志量fjN;int i,m=0;/定義全局變量char pd10="y"/函數(shù)聲明void xxtj();/信息添加的函數(shù)蘆杰void xianshi();/顯示航班信息祁海鵬void chazhao();/查找航班信息祁海鵬void dingpiao();/訂票業(yè)務(wù)李平void tuipiao();/退票業(yè)務(wù)李平void duqu();/讀取文件蔡曉宏voi
7、d baocun();/保存文件蔡曉宏void scgs();/輸出格式函數(shù)祁海鵬void paixu();/航班排序李平void chushihua();/系統(tǒng)初始化蘆杰void jianli();/建立數(shù)據(jù)文件蘆杰void paixu1();/按航班號(hào)從小到大排蔡曉宏void paixu2();/從大到小蔡曉宏/主函數(shù)void main()/主函數(shù)李平int j;chushihua();/系統(tǒng)初始化判斷是否存在原始的數(shù)據(jù)文件printf("歡迎使用飛機(jī)訂票系統(tǒng)n");/打印出系統(tǒng)主界面doprintf("=n""ttt1.添加航班信息。n&
8、quot;"ttt2.瀏覽航班信息。n""ttt3.查詢航班信息。n""ttt4.航班信息排序。n""ttt5.訂票業(yè)務(wù)。n""ttt6.退票業(yè)務(wù)。n""ttt0.退出。n""=n");printf("請(qǐng)?jiān)?-6中選擇以回車鍵結(jié)束:");scanf("%d",&j);switch(j)case 1:xxtj();break;/調(diào)用信息添加函數(shù)case 2:xianshi();break;/調(diào)用顯示模塊case
9、 3:chazhao();break;/調(diào)用查找模塊case 4:paixu();break;/調(diào)用排序函數(shù)case 5:dingpiao();break;/調(diào)用訂票模塊case 6:tuipiao();break;/調(diào)用退票模塊case 0:baocun();printf("謝謝使用,再見!n");break;default:printf("輸入有誤!n");break;while(j!=0);/判斷是否調(diào)用其他函數(shù)void chushihua()/定義系統(tǒng)初始化函數(shù)盧杰if(access("fjdpxt.dat",0)jianli
10、();elseduqu();void jianli()/定義建立數(shù)據(jù)文件函數(shù)盧杰FILE *fp;if(fp=fopen("fjdpxt.dat","wb")=NULL)/打印文件判斷是否出錯(cuò)printf("創(chuàng)建文件失?。?quot;);/打印出錯(cuò)提示getchar();return;printf("請(qǐng)依次輸出航班信息(以回車鍵結(jié)束):n");/打印提示信息printf("-n");for(i=0;i<N;i+)printf("請(qǐng)輸入航班號(hào):");scanf("%d&q
11、uot;,&fji.hbh);printf("請(qǐng)輸入起始站:");scanf("%s",fji.qd);printf("請(qǐng)輸入終點(diǎn)站:");scanf("%s",fji.zd);printf("請(qǐng)輸入票價(jià):");scanf("%f",&fji.pj);printf("請(qǐng)輸入機(jī)票數(shù):");scanf("%d",&fji.sl);fwrite(&fji,sizeof(struct hbxx),1,fp);m+
12、;printf("添加完畢,是否繼續(xù)添加?請(qǐng)鍵入y或n以回車鍵結(jié)束:");scanf("%s",pd);if(strcmp(pd,"y")!=0)/判斷是否繼續(xù)添加航班信息fclose(fp);/關(guān)閉文件return;void duqu()/定義讀取文件函數(shù)蔡曉宏FILE *fp;if(fp=fopen("fjdpxt.dat","r")=NULL)printf("創(chuàng)建文件失敗!");getchar();return;i=0;while(!feof(fp)/判斷是否遇到文件結(jié)
13、束, fread(&fji,sizeof(struct hbxx),1,fp);/逐塊讀取數(shù)據(jù)i+;m+;/計(jì)算存在的航班數(shù)m-;fclose(fp);void baocun()/定義保存函數(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
14、()/定義添加航班信息函數(shù)盧杰doprintf("請(qǐng)依次輸入您要添加的航班信息(以回車鍵結(jié)束):n");/打印提示信息printf("n");printf("請(qǐng)輸入航班號(hào):");scanf("%d",&fjm.hbh);printf("請(qǐng)輸入起點(diǎn)站:");scanf("%s",fjm.qd);printf("請(qǐng)輸入終點(diǎn)站:");scanf("%s",fjm.zd);printf("請(qǐng)輸入票價(jià):");scanf
15、("%f",&fjm.pj);printf("請(qǐng)輸入機(jī)票數(shù):");scanf("%d",&fjm.sl);m+;printf("添加完畢,是否繼續(xù)添加?請(qǐng)鍵入y或者n以回車鍵結(jié)束:");scanf("%s",pd);while(!strcmp(pd,"y");/判斷是否繼續(xù)添加void scgs()/定義輸出格式祁海鵬printf("航班號(hào)tt起始站tt終點(diǎn)站tt價(jià)格tt機(jī)票數(shù)n");/信息標(biāo)題 for(i=0;i<m;i+)prin
16、tf(PRINT);/打印出信息void xianshi()/定義顯示航班信息函數(shù)祁海鵬printf("n目前我們有如下航班:n");scgs();/調(diào)用輸出格式函數(shù)printf("n請(qǐng)按回車鍵返回上層菜單");getchar();getchar();void chazhao()/定義查詢函數(shù)祁海鵬int n;doprintf("n請(qǐng)輸入航班號(hào):");scanf("%d",&n);/輸入查詢的航班號(hào)for(i=0;i<m;i+)if(fji.hbh=n)/按航班號(hào)判定輸出條件printf("
17、n您所查找的航班信息為:n");printf("航班號(hào)tt起始站tt終點(diǎn)站tt票價(jià)tt機(jī)票數(shù)nn");printf(PRINT);/顯示信息strcpy(pd,"y");printf("n查詢完畢,按回車鍵繼續(xù)");getchar();getchar();return;printf("n對(duì)不起,沒有您需要的信息!n");printf("是否重新查找?請(qǐng)鍵入y或n以回車鍵結(jié)束:");scanf("%s",pd);while(!strcmp(pd,"y&quo
18、t;);/判斷是否重新查找void dingpiao()/定義訂票業(yè)務(wù)函數(shù)李平char a10="y"dochazhao();/調(diào)用查詢模塊if(strcmp(pd,"y")printf("對(duì)不起!沒有找到您所需要的航班,所以不能訂票。n");printf("n請(qǐng)按回車鍵返回上層菜單");getchar();getchar();strcpy(pd,"y");break;doprintf("請(qǐng)輸入您要訂的機(jī)票數(shù)(以回車結(jié)束):");scanf("%d",&a
19、mp;fji.dcp);/輸入所定機(jī)票數(shù)if(fji.dcp<=0)/判斷機(jī)票數(shù)是否出錯(cuò)printf("輸入錯(cuò)誤!至少需訂1張機(jī)票。n");else if(fji.sl=0)/判斷機(jī)票是否手售完printf("對(duì)不起,你所選擇的航班的機(jī)票已售完!n");break;else if(fji.sl!=0&&fji.sl>=fji.dcp)/判斷機(jī)票數(shù)是否大于等于訂票數(shù)fji.sl=fji.sl-fji.dcp;printf("訂票成功!");break;else if(fji.sl<fji.dcp)/判斷
20、機(jī)票數(shù)是否小于訂票數(shù)printf("對(duì)不起,您所選擇的航班只剩%d張機(jī)票n",fji.sl);printf("是否需要重新輸入機(jī)票數(shù)?請(qǐng)輸入y或n以回車鍵結(jié)束:");/判斷是否重新輸入訂票數(shù)scanf("%s",a);while(!strcmp(a,"y");printf("是否需要訂其他航班的機(jī)票?請(qǐng)輸入y或n以回車鍵結(jié)束:");scanf("%s",a);while(!strcmp(a,"y");/判斷是否繼續(xù)訂票void tuipiao()/定義退票
21、函數(shù)李平char a10;doint n=0;chazhao();/調(diào)用查找函數(shù)if(strcmp(pd,"y")printf("對(duì)不起!沒有找到你所需要的航班,所以不能退票。n");printf("n請(qǐng)按回車鍵返回上層菜單");getchar();getchar();strcpy(pd,"n");break;printf("請(qǐng)輸入您要退的機(jī)票數(shù)目:");scanf("%d",&n);/輸入所退票數(shù)if(n<=0)/判斷票數(shù)是否有效printf("輸入
22、錯(cuò)誤!至少需退1張機(jī)票。n");else if(n>=fji.dcp)printf("輸入錯(cuò)誤,退票量大于售出量。n");elsefji.sl=fji.sl+n;printf("退票成功!");printf("是否繼續(xù)?請(qǐng)鍵入y或n以回車鍵結(jié)束:");/判斷是否繼續(xù)退票scanf("%s",a);while(!strcmp(a,"y");/判定并跳出循環(huán)void paixu()/定義排序函數(shù)李平intn;printf("n*n");printf("1
23、.按航班號(hào)從小到大排序n""2.按航班號(hào)從大到小排序n");printf("*");printf("請(qǐng)?jiān)?-2中選擇以回車鍵結(jié)束:");scanf("%d",&n);/輸入排序方式switch(n)case 1:paixu1();break;/調(diào)用從小到大排序函數(shù)case 2:paixu2();break;/調(diào)用從大到小排序函數(shù)default:printf("輸入有誤!按默認(rèn)輸出。n");printf("排序后的航班信息為:n");scgs();/顯示排序后的航班信息printf("n請(qǐng)按回車鍵返回上層菜單");getchar();getchar();void paixu1()/定義從小到大排序函數(shù)int k,j;struct hbxx t;for(i=0;j<m;i+)k=1;for(j=1;j<m;j+)if(fjk.hbh&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度汽車銷售折扣及售后服務(wù)合同
- 2025年度環(huán)保主題紀(jì)錄片制作及授權(quán)使用合同
- 中學(xué)生社會(huì)實(shí)踐感悟之旅的讀后感
- 施工總承包合同
- 農(nóng)產(chǎn)品品牌國(guó)際化與差異化發(fā)展戰(zhàn)略方案
- 人工智能輔助教育產(chǎn)品開發(fā)流程
- 企業(yè)員工福利管理信息系統(tǒng)采購(gòu)合同
- 物聯(lián)網(wǎng)設(shè)備安全監(jiān)測(cè)協(xié)議
- 古詩文觀止的教學(xué)教案與文學(xué)評(píng)析
- 食品營(yíng)養(yǎng)與健康管理試題集
- T-IMAS 087-2024 托克托縣辣椒地方品種提純復(fù)壯技術(shù)規(guī)程
- 2025年全國(guó)道路運(yùn)輸企業(yè)安全管理人員考試題庫(含答案)
- 太陽能光伏發(fā)電安裝工程監(jiān)理實(shí)施細(xì)則
- 小學(xué)科學(xué)課件《水》
- 減鹽防控高血壓培訓(xùn)課件
- 全新版大學(xué)高階英語:綜合教程 第3冊(cè) Unit 6 China Rejuvenated課件
- 2024年下半年江蘇省鹽城市射陽縣人民政府項(xiàng)目辦公室招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 醫(yī)療行業(yè)信息安全等級(jí)保護(hù)
- 新公務(wù)員法培訓(xùn)講稿
- 用人部門面試官培訓(xùn)
- 《現(xiàn)代家政導(dǎo)論》電子教案 2.1模塊二項(xiàng)目一家庭及功能認(rèn)知
評(píng)論
0/150
提交評(píng)論