




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、#include<stdio.h>/標(biāo)準(zhǔn)輸入、輸出頭文件#include<string.h>/包含字符串函數(shù)處理頭文件#include<process.h>/包含access函數(shù)的頭文件#include<io.h>#include<stdlib.h>#include<windows.h>#include<conio.h>#define N 9999/定義最多的航班數(shù)#define PRINT "%dtt%stt%stt星期%stt%dn ",si.num,si.start,si.over,s
2、i.time,si.count /宏定義輸出格式struct air /定義結(jié)構(gòu)體數(shù)組int num;/定義航班號(hào)char start20;/航班起始站char over20;/終點(diǎn)站char time10;/飛行時(shí)間int count;/機(jī)票數(shù)量sN;int i,a,m=0;/定義全局變量char ii10;void add();/函數(shù)聲明增加航班信息函數(shù)void print(); /顯示航班信息void search();/查找航班信息void dingpiao();/訂票業(yè)務(wù)void tuipiao();/退票void read();/讀取文件void save();/保存文件void
3、output();/輸出格式void paixu();/航班排序void chushihua();/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void paixu1();/按航班號(hào)從小到大排序void paixu2();/從大到小int head ();/進(jìn)入訂票系統(tǒng) int main()/主函數(shù)int j; system("color b0");chushihua();/系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件system("cls"); head();/打印出系統(tǒng)主界面system("cls");do printf("
4、= "); printf("1.增加航班信息n" "t2.瀏覽航班信息n" "tt3.查找航班信息(按航班號(hào))ttn" "ttt4.航班排序(按航班號(hào))n" "tttt5.訂票業(yè)務(wù)n" "ttttt6.退票業(yè)務(wù)n" "tttttt0.退出n");printf("= "); printf("請(qǐng)?jiān)?-6中選擇以回車鍵結(jié)束: ");scanf("%d",&j);switch(j)cas
5、e 1: add();system("cls");/調(diào)用增加航班函數(shù)break;case 2:print();system("cls");/調(diào)用顯示模塊break;case 3:search();system("cls");/調(diào)用查找模塊break;case 4:paixu(); system("cls");/調(diào)用排序函數(shù)break;case 5:dingpiao();system("cls");/調(diào)用訂票模塊break;case 6:tuipiao();system("cls&quo
6、t;);/調(diào)用退票模塊break; case 0:/退出系統(tǒng)save();system("cls");printf("nnnttttnnt謝謝使用,再見! ");printf("nnnnnnnnnnnnn");break;while(j!=0);/判斷是否調(diào)用其他函數(shù) void chushihua()/定義系統(tǒng)初始化函數(shù)if(access("hangban.dat",0)build();elseread();void build()/定義建立數(shù)據(jù)文件函數(shù)FILE *fp;/定義文件指針if(fp=fopen(&qu
7、ot;hangban.dat","wb")=NULL)/打開文件并判定是否出錯(cuò) printf("創(chuàng)建文件失敗! ");/打印出錯(cuò)提示getchar();return;printf("請(qǐng)依次輸入航班信息(以回車鍵結(jié)束):n"); /打印提示信息printf("- n");for(i=0;i<N;i+)printf("請(qǐng)輸入航班號(hào): "); scanf("%d",&si.num);/輸入航班號(hào)printf("請(qǐng)輸入起始站: ");sca
8、nf("%s",si.start);/輸入起始站printf("請(qǐng)輸入終點(diǎn)站: ");scanf("%s",si.over);/輸入終點(diǎn)站printf("請(qǐng)輸入時(shí)間(星期幾): ");scanf("%s",si.time);/輸入時(shí)間printf("請(qǐng)輸入機(jī)票數(shù): ");scanf("%d",&si.count);/輸入機(jī)票數(shù)fwrite(&si,sizeof(struct air),1,fp);m+;printf("添加完畢,是
9、否繼續(xù)添加?請(qǐng)鍵入y或n以回車鍵結(jié)束:");scanf("%s",ii);if(strcmp(ii,"y")!=0)/判斷是否繼續(xù)添加航班信息fclose(fp);/關(guān)閉文件return;void read()/定義讀取文件函數(shù)FILE *fp;if(fp=fopen("hangban.dat","r")=NULL)printf("創(chuàng)建文件失敗! ");getchar();return;i=0;while(!feof(fp)fread(&si,sizeof(struct air
10、),1,fp);/逐塊讀取數(shù)據(jù)i+;m+;/計(jì)算存在航班數(shù)m-;fclose(fp);printf("請(qǐng)稍候,正在初始化");for(a=0;a<3;a+)printf(".");Sleep(600);printf("n");void save()/定義保存函數(shù)FILE *fp;if(fp=fopen("hangban.dat","wb")=NULL) printf("創(chuàng)建文件失敗! ");getchar();return;for(i=0;i<m;i+)/逐塊保存
11、數(shù)據(jù)fwrite(&si,sizeof(struct air),1,fp);fclose(fp);printf("正在保存數(shù)據(jù)并退出");for(a=0;a<3;a+)printf(".");Sleep(600);printf("n");printf("n");void add()/定義增加航班信息函數(shù)doprintf("請(qǐng)依次輸入您要增加的航班信息(以回車鍵結(jié)束): n"); /打印提示信息printf("- n");printf("請(qǐng)輸入航班號(hào):
12、"); scanf("%d",&sm.num);/讀取航班號(hào)printf("請(qǐng)輸入起始站: ");scanf("%s",sm.start);/讀取起始站printf("請(qǐng)輸入終點(diǎn)站: ");scanf("%s",sm.over);/讀取終點(diǎn)站printf("請(qǐng)輸入時(shí)間(星期幾): ");scanf("%s",sm.time);/讀取時(shí)間printf("請(qǐng)輸入機(jī)票數(shù): ");scanf("%d",&a
13、mp;sm.count);/讀取機(jī)票數(shù)m+;printf("添加完畢,是否繼續(xù)添加?請(qǐng)鍵入y或n以回車鍵結(jié)束:");scanf("%s",ii);while(!strcmp(ii,"y");/判斷是否繼續(xù)添加printf("正在保存,請(qǐng)稍候");for(a=0;a<5;a+)printf(".");Sleep(600);printf("n");void output()/定義輸出格式函數(shù)printf("航班號(hào)tt起始站tt終點(diǎn)站tt時(shí)間tt機(jī)票數(shù)n"
14、);/信息標(biāo)題 for(i=0;i<m;i+)printf(PRINT);/打印出信息void print()/定義顯示航班信息函數(shù)printf("正在加載,請(qǐng)稍候");for(a=0;a<5;a+)printf(".");Sleep(400);printf("n");system("cls");printf("n目前我們有如下航班:nn");output();/調(diào)用輸出格式函數(shù)printf("n請(qǐng)按回車鍵返回上層菜單 ");getchar();getchar()
15、; void search()/定義查詢函數(shù)int n;doprintf("n請(qǐng)輸入航班號(hào): ");scanf("%d",&n);/輸入查詢的航班號(hào)printf("正在查詢");for(a=0;a<5;a+)printf(".");Sleep(400);printf("n");for(i=0;i<m;i+) if(si.num=n)/按航班號(hào)判定輸出條件 printf("n您所查找的航班信息為:n ");printf("航班號(hào)tt起始站tt終點(diǎn)站
16、tt時(shí)間tt機(jī)票數(shù) nn");printf(PRINT);/顯示信息 printf("n查詢完畢,按回車鍵繼續(xù)");getchar();getchar();return;printf("n對(duì)不起,沒有您需要的信息!n ");printf("是否重新查找?請(qǐng)鍵入y或n以回車鍵結(jié)束 ");scanf("%s",ii);while(!strcmp(ii,"y");/判定是否重新查找 void dingpiao()/定義訂票業(yè)務(wù)函數(shù)int n,x;char a10="y"d
17、osearch();/調(diào)用查詢模塊if(!strcmp(ii,"n")printf("對(duì)不起!沒有找到您所需要的航班,所以不能訂票。n");/未查找到所需航班printf("n請(qǐng)按回車鍵返回上層菜單 ");getchar();getchar();strcpy(ii,"n");break;doprintf("請(qǐng)輸入您要訂的機(jī)票數(shù)(以回車鍵結(jié)束): ");scanf("%d",&n);/輸入所訂機(jī)票數(shù)printf("請(qǐng)稍候,正在訂票");for(x=0
18、;x<3;x+)printf(".");Sleep(600);printf("n");if(n<=0)/判定機(jī)票數(shù)是否出錯(cuò)printf("輸入錯(cuò)誤!至少需訂1張機(jī)票。n");else if(si.count=0)/判定機(jī)票是否售完printf("對(duì)不起,你所選擇的航班的機(jī)票已售完!n");break;else if(si.count!=0&&si.count>=n)/判定機(jī)票數(shù)是否大于等于訂票數(shù)si.count=si.count-n;printf("訂票成功! "
19、;);break;else if(si.count<n)/判定機(jī)票數(shù)是否小于訂票數(shù) printf("對(duì)不起,你所選擇的航班只剩 %d張機(jī)票n", si.count);printf("是否需要重新輸入機(jī)票數(shù)?n請(qǐng)輸入y或n以回車鍵結(jié)束: ");/判定是否重新輸入訂票數(shù)scanf("%s",a);printf("請(qǐng)稍候,正在訂票");for(x=0;x<3;x+)printf(".");Sleep(600);printf("n");while(!strcmp(a,&q
20、uot;y");printf("是否需要訂其他航班的機(jī)票?n請(qǐng)輸入y或n以回車鍵結(jié)束: ");scanf("%s",a);while(!strcmp(a,"y");/判定是否繼續(xù)訂票void tuipiao()/定義退票函數(shù)int n,x;char a10;dosearch();/調(diào)用查詢函數(shù)if(!strcmp(ii,"n")printf("對(duì)不起!沒有找到您所需要的航班,所以不能退票。n");printf("n請(qǐng)按回車鍵返回上層菜單 ");getchar();g
21、etchar();strcpy(ii,"n");break;printf("請(qǐng)輸入您要退的機(jī)票數(shù)目: ");scanf("%d",&n);/輸入所退票數(shù)printf("請(qǐng)稍候,正在退票");for(x=0;x<3;x+)printf(".");Sleep(600);printf("n");if(n<=0)/判定票數(shù)是否有效printf("輸入錯(cuò)誤!至少需退1張機(jī)票。 ");else si.count=si.count+n;printf(
22、"退票成功! ");printf("是否繼續(xù)? 請(qǐng)鍵入y或n以回車鍵結(jié)束: ");/判定是否繼續(xù)退票scanf("%s",a);while(!strcmp(a,"y");/判定并跳出循環(huán)void paixu()/定義排序函數(shù)int n;printf("n* "); printf("1.按航班號(hào)從小到大排序n" "t2.按航班號(hào)從大到小排序n");printf("* "); printf("請(qǐng)?jiān)?-2中選擇以回車鍵結(jié)束: &qu
23、ot;);scanf("%d",&n);/輸入排序方式switch(n)case 1:paixu1();/調(diào)用從小到大排序函數(shù)break;case 2:paixu2();/調(diào)用從大到小排序函數(shù)break;printf("排序后的航班信息為:n");output();/顯示排序后航班信息printf("n請(qǐng)按回車鍵返回上層菜單 "); getchar();getchar();/*for(a=0;a<5;a+)printf(".");Sleep(400);printf("n");*/ void paixu1()/定義從小到大排序函數(shù)int k,j;struct air t;for(i=0;i<m;i+)/選擇法排序k=i;f
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏電池生產(chǎn)線參觀保密協(xié)議書
- 慢性腫瘤用藥指導(dǎo)
- 綜合貨物運(yùn)輸基礎(chǔ)
- 2024年高考語文備考:非連續(xù)性文本+提出對(duì)策措施
- 2024年高考語文沖刺小題增分練03含答案
- Zika學(xué)前教育體系構(gòu)建路徑
- 為誰工作總結(jié)匯報(bào)
- 豬胸膜肺炎放線桿菌研究概述
- 足浴行業(yè)服務(wù)培訓(xùn)
- 知“帕”不怕:科學(xué)防治帕金森病健康宣教
- 物業(yè)防盜應(yīng)急預(yù)案
- 2024用于水泥和混凝土中的焚燒飛灰
- 鄭開馬拉松小馬志愿者培訓(xùn)
- 超市會(huì)議內(nèi)容記錄
- 23秋國家開放大學(xué)《液壓與氣壓傳動(dòng)》形考任務(wù)1-2參考答案
- 煤礦架空乘人裝置安裝檢驗(yàn)報(bào)告
- 自來水廠操作規(guī)程手冊(cè)
- 《路由交換技術(shù)》部署和實(shí)施企業(yè)網(wǎng)絡(luò)互聯(lián)(任務(wù)2)
- 工程量清單及招標(biāo)控制價(jià)編制服務(wù)采購實(shí)施方案(技術(shù)標(biāo))
- 中國風(fēng)中醫(yī)藥文化PPT模板
- 汽修廠配件材料管理制度
評(píng)論
0/150
提交評(píng)論