C語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)源代碼_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)源代碼_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)源代碼_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)源代碼_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)源代碼_第5頁(yè)
已閱讀5頁(yè),還剩4頁(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ù)的頭文件#define N 9999/定義最多的航班數(shù)#define PRINT "%dtt%stt%stt星期%stt%dn ",si.num,si.start,si.over,si.time,si.count /宏定義輸出格式struct air /定義結(jié)構(gòu)體數(shù)組int num;/定義航班號(hào)char start20;/航班起始站char over20;/終點(diǎn)站

2、char time10;/飛行時(shí)間int count;/機(jī)票數(shù)量sN;int i,m=0;/定義全局變量char ii10;void add();/函數(shù)聲明增加航班信息函數(shù)void print(); /顯示航班信息void search();/查找航班信息void dingpiao();/訂票業(yè)務(wù)void tuipiao();/退票void read();/讀取文件void save();/保存文件void output();/輸出格式void paixu();/航班排序void chushihua();/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void paixu1();/按航班號(hào)

3、從小到大排序void paixu2();/從大到小void main()/主函數(shù)int j; chushihua();/系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件printf(" 歡迎使用飛機(jī)訂票系統(tǒng)n");/打印出系統(tǒng)主界面do printf("= "); printf("1.增加航班信息n" "t2.瀏覽航班信息n" "tt3.查找航班信息(按航班號(hào))tt(_)n" "ttt4.航班排序(按航班號(hào))n" "tttt5.訂票業(yè)務(wù)n" "to()ottt

4、6.退票業(yè)務(wù)n" "tttttt0.退出n");printf("= "); printf("請(qǐng)?jiān)?-6中選擇以回車(chē)鍵結(jié)束: ");scanf("%d",&j);switch(j)case 1: add();/調(diào)用增加航班函數(shù)break;case 2:print();/調(diào)用顯示模塊break;case 3:search();/調(diào)用查找模塊break;case 4:paixu();/調(diào)用排序函數(shù)break;case 5:dingpiao();/調(diào)用訂票模塊break;case 6:tuipiao();

5、/調(diào)用退票模塊break; case 0:/退出系統(tǒng)save();printf("謝謝使用,再見(jiàn)! ");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("hangban.dat","wb")=NULL)/打開(kāi)文件并判定是否出錯(cuò) printf("創(chuàng)建文件

6、失敗! ");/打印出錯(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)輸入起始站: ");scanf("%s",si.start);/輸入起始站printf("請(qǐng)輸入終點(diǎn)站: ");scanf(&qu

7、ot;%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("添加完畢,是否繼續(xù)添加?請(qǐng)鍵入y或n以回車(chē)鍵結(jié)束:");scanf("%s",ii);if(strcmp(ii,"y

8、")!=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),1,fp);/逐塊讀取數(shù)據(jù)i+;m+;/計(jì)算存在航班數(shù)m-;fclose(fp);void save()/定義保存函數(shù)FILE *fp;if

9、(fp=fopen("hangban.dat","wb")=NULL) printf("創(chuàng)建文件失敗! ");getchar();return;for(i=0;i<m;i+)/逐塊保存數(shù)據(jù)fwrite(&si,sizeof(struct air),1,fp);fclose(fp);void add()/定義增加航班信息函數(shù)doprintf("請(qǐng)依次輸入您要增加的航班信息(以回車(chē)鍵結(jié)束): n"); /打印提示信息printf("- n");printf("請(qǐng)輸入航班號(hào):

10、"); 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",&sm

11、.count);/讀取機(jī)票數(shù)m+;printf("添加完畢,是否繼續(xù)添加?請(qǐng)鍵入y或n以回車(chē)鍵結(jié)束:");scanf("%s",ii);while(!strcmp(ii,"y");/判斷是否繼續(xù)添加void output()/定義輸出格式函數(shù)printf("航班號(hào)tt起始站tt終點(diǎn)站tt時(shí)間tt機(jī)票數(shù)n");/信息標(biāo)題 for(i=0;i<m;i+)printf(PRINT);/打印出信息void print()/定義顯示航班信息函數(shù)printf("n目前我們有如下航班:n");outpu

12、t();/調(diào)用輸出格式函數(shù)printf("n請(qǐng)按回車(chē)鍵返回上層菜單 ");getchar();getchar(); void search()/定義查詢(xún)函數(shù)int n;doprintf("n請(qǐng)輸入航班號(hào): ");scanf("%d",&n);/輸入查詢(xún)的航班號(hào)for(i=0;i<m;i+) if(si.num=n)/按航班號(hào)判定輸出條件 printf("n您所查找的航班信息為:n ");printf("航班號(hào)tt起始站tt終點(diǎn)站tt時(shí)間tt機(jī)票數(shù) nn");printf(PRINT

13、);/顯示信息 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;char a10="y"dosearch();/調(diào)用查詢(xún)模塊if(!strcmp(ii,&qu

14、ot;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ù)if(n<=0)/判定機(jī)票數(shù)是否出錯(cuò)printf("輸入錯(cuò)誤!至少需訂1張機(jī)票。n");else if(si.co

15、unt=0)/判定機(jī)票是否售完printf("對(duì)不起,你所選擇的航班的機(jī)票已售完!n");break;else if(si.count!=0&&si.count>=n)/判定機(jī)票數(shù)是否大于等于訂票數(shù)si.count=si.count-n;printf("訂票成功! ");break;else if(si.count<n)/判定機(jī)票數(shù)是否小于訂票數(shù) printf("對(duì)不起,你所選擇的航班只剩 %d張機(jī)票n", si.count);printf("是否需要重新輸入機(jī)票數(shù)?請(qǐng)輸入y或n以回車(chē)鍵結(jié)束: &

16、quot;);/判定是否重新輸入訂票數(shù)scanf("%s",a);while(!strcmp(a,"y");printf("是否需要訂其他航班的機(jī)票?請(qǐng)輸入y或n以回車(chē)鍵結(jié)束: ");scanf("%s",a);while(!strcmp(a,"y");/判定是否繼續(xù)訂票void tuipiao()/定義退票函數(shù)int n;char a10;dosearch();/調(diào)用查詢(xún)函數(shù)if(!strcmp(ii,"n")printf("對(duì)不起!沒(méi)有找到您所需要的航班,所以不

17、能退票。n");printf("n請(qǐng)按回車(chē)鍵返回上層菜單 ");getchar();getchar();strcpy(ii,"n");break;printf("請(qǐng)輸入您要退的機(jī)票數(shù)目: ");scanf("%d",&n);/輸入所退票數(shù)if(n<=0)/判定票數(shù)是否有效printf("輸入錯(cuò)誤!至少需退1張機(jī)票。 ");else si.count=si.count+n;printf("退票成功! ");printf("是否繼續(xù)? 請(qǐng)鍵入y或

18、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é)束: ");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ē)鍵返回上層菜單 "); getch

溫馨提示

  • 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)論