C語(yǔ)言機(jī)票訂票管理系統(tǒng)源代碼_第1頁(yè)
C語(yǔ)言機(jī)票訂票管理系統(tǒng)源代碼_第2頁(yè)
C語(yǔ)言機(jī)票訂票管理系統(tǒng)源代碼_第3頁(yè)
C語(yǔ)言機(jī)票訂票管理系統(tǒng)源代碼_第4頁(yè)
C語(yǔ)言機(jī)票訂票管理系統(tǒng)源代碼_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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中選擇以回車(chē)鍵結(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謝謝使用,再見(jiàn)! ");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)/打開(kāi)文件并判定是否出錯(cuò) printf("創(chuàng)建文件失敗! ");/打印出錯(cuò)提示getchar();return;printf("請(qǐng)依次輸入航班信息(以回車(chē)鍵結(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以回車(chē)鍵結(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)依次輸入您要增加的航班信息(以回車(chē)鍵結(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以回車(chē)鍵結(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)按回車(chē)鍵返回上層菜單 ");getchar();getchar()

15、; void search()/定義查詢(xún)函數(shù)int n;doprintf("n請(qǐng)輸入航班號(hào): ");scanf("%d",&n);/輸入查詢(xún)的航班號(hào)printf("正在查詢(xún)");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ún)完畢,按回車(chē)鍵繼續(xù)");getchar();getchar();return;printf("n對(duì)不起,沒(méi)有您需要的信息!n ");printf("是否重新查找?請(qǐng)鍵入y或n以回車(chē)鍵結(jié)束 ");scanf("%s",ii);while(!strcmp(ii,"y");/判定是否重新查找 void dingpiao()/定義訂票業(yè)務(wù)函數(shù)int n,x;char a10="y"d

17、osearch();/調(diào)用查詢(xún)模塊if(!strcmp(ii,"n")printf("對(duì)不起!沒(méi)有找到您所需要的航班,所以不能訂票。n");/未查找到所需航班printf("n請(qǐng)按回車(chē)鍵返回上層菜單 ");getchar();getchar();strcpy(ii,"n");break;doprintf("請(qǐng)輸入您要訂的機(jī)票數(shù)(以回車(chē)鍵結(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以回車(chē)鍵結(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以回車(chē)鍵結(jié)束: ");scanf("%s",a);while(!strcmp(a,"y");/判定是否繼續(xù)訂票void tuipiao()/定義退票函數(shù)int n,x;char a10;dosearch();/調(diào)用查詢(xún)函數(shù)if(!strcmp(ii,"n")printf("對(duì)不起!沒(méi)有找到您所需要的航班,所以不能退票。n");printf("n請(qǐng)按回車(chē)鍵返回上層菜單 ");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以回車(chē)鍵結(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中選擇以回車(chē)鍵結(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)按回車(chē)鍵返回上層菜單 "); 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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論