C語言課程設計——飛機訂票系統(tǒng)源代碼9頁_第1頁
C語言課程設計——飛機訂票系統(tǒng)源代碼9頁_第2頁
C語言課程設計——飛機訂票系統(tǒng)源代碼9頁_第3頁
C語言課程設計——飛機訂票系統(tǒng)源代碼9頁_第4頁
C語言課程設計——飛機訂票系統(tǒng)源代碼9頁_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、#include/標準輸入、輸出頭文件#include/包含字符串函數(shù)處理頭文件#include/包含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 /定義結構體數(shù)組int num;/定義航班號char start20;/航班起始站char over20;/終點站char time10;/飛行時間int count;/機票數(shù)量sN;int i,m=0;/定義全局變量char ii1

2、0;void add();/函數(shù)聲明增加航班信息函數(shù)void print(); /顯示航班信息void search();/查找航班信息void dingpiao();/訂票業(yè)務void tuipiao();/退票void read();/讀取文件void save();/保存文件void output();/輸出格式void paixu();/航班排序void chushihua();/系統(tǒng)初始化void build();/建立數(shù)據(jù)文件void paixu1();/按航班號從小到大排序void paixu2();/從大到小void main()/主函數(shù)int j; chushihua();/

3、系統(tǒng)初始化判斷是否存在原始數(shù)據(jù)文件printf( 歡迎使用飛機訂票系統(tǒng)n);/打印出系統(tǒng)主界面do printf(= ); printf(1.增加航班信息n t2.瀏覽航班信息n tt3.查找航班信息(按航班號)tt(_)n ttt4.航班排序(按航班號)n tttt5.訂票業(yè)務n to()ottt6.退票業(yè)務n tttttt0.退出n);printf(= ); printf(請在0-6中選擇以回車鍵結束: );scanf(%d,&j);switch(j)case 1: add();/調用增加航班函數(shù)break;case 2:print();/調用顯示模塊break;case 3:search

4、();/調用查找模塊break;case 4:paixu();/調用排序函數(shù)break;case 5:dingpiao();/調用訂票模塊break;case 6:tuipiao();/調用退票模塊break; case 0:/退出系統(tǒng)save();printf(謝謝使用,再見! );break;while(j!=0);/判斷是否調用其他函數(shù) void chushihua()/定義系統(tǒng)初始化函數(shù)if(access(hangban.dat,0)build();elseread();void build()/定義建立數(shù)據(jù)文件函數(shù)FILE *fp;/定義文件指針if(fp=fopen(hangban

5、.dat,wb)=NULL)/打開文件并判定是否出錯 printf(創(chuàng)建文件失敗! );/打印出錯提示getchar();return;printf(請依次輸入航班信息(以回車鍵結束):n); /打印提示信息printf(- n);for(i=0;iN;i+)printf(請輸入航班號: ); scanf(%d,&si.num);/輸入航班號printf(請輸入起始站: );scanf(%s,si.start);/輸入起始站printf(請輸入終點站: );scanf(%s,si.over);/輸入終點站printf(請輸入時間(星期幾): );scanf(%s,si.time);/輸入時間p

6、rintf(請輸入機票數(shù): );scanf(%d,&si.count);/輸入機票數(shù)fwrite(&si,sizeof(struct air),1,fp);m+;printf(添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結束:);scanf(%s,ii);if(strcmp(ii,y)!=0)/判斷是否繼續(xù)添加航班信息fclose(fp);/關閉文件return;void read()/定義讀取文件函數(shù)FILE *fp;if(fp=fopen(hangban.dat,r)=NULL)printf(創(chuàng)建文件失敗! );getchar();return;i=0;while(!feof(fp)fre

7、ad(&si,sizeof(struct air),1,fp);/逐塊讀取數(shù)據(jù)i+;m+;/計算存在航班數(shù)m-;fclose(fp);void save()/定義保存函數(shù)FILE *fp;if(fp=fopen(hangban.dat,wb)=NULL) printf(創(chuàng)建文件失敗! );getchar();return;for(i=0;im;i+)/逐塊保存數(shù)據(jù)fwrite(&si,sizeof(struct air),1,fp);fclose(fp);void add()/定義增加航班信息函數(shù)doprintf(請依次輸入您要增加的航班信息(以回車鍵結束): n); /打印提示信息print

8、f(- n);printf(請輸入航班號: ); scanf(%d,&sm.num);/讀取航班號printf(請輸入起始站: );scanf(%s,sm.start);/讀取起始站printf(請輸入終點站: );scanf(%s,sm.over);/讀取終點站printf(請輸入時間: );scanf(%s,sm.time);/讀取時間printf(請輸入機票數(shù): );scanf(%d,&sm.count);/讀取機票數(shù)m+;printf(添加完畢,是否繼續(xù)添加?請鍵入y或n以回車鍵結束:);scanf(%s,ii);while(!strcmp(ii,y);/判斷是否繼續(xù)添加void ou

9、tput()/定義輸出格式函數(shù)printf(航班號tt起始站tt終點站tt時間tt機票數(shù)n);/信息標題 for(i=0;im;i+)printf(PRINT);/打印出信息void print()/定義顯示航班信息函數(shù)printf(n目前我們有如下航班:n);output();/調用輸出格式函數(shù)printf(n請按回車鍵返回上層菜單 );getchar();getchar(); void search()/定義查詢函數(shù)int n;doprintf(n請輸入航班號: );scanf(%d,&n);/輸入查詢的航班號for(i=0;im;i+) if(si.num=n)/按航班號判定輸出條件 p

10、rintf(n您所查找的航班信息為:n );printf(航班號tt起始站tt終點站tt時間tt機票數(shù) nn);printf(PRINT);/顯示信息 printf(n查詢完畢,按回車鍵繼續(xù));getchar();getchar();return;printf(n對不起,沒有您需要的信息!n );printf(是否重新查找?請鍵入y或n以回車鍵結束 );scanf(%s,ii);while(!strcmp(ii,y);/判定是否重新查找 void dingpiao()/定義訂票業(yè)務函數(shù)int n;char a10=y;dosearch();/調用查詢模塊if(!strcmp(ii,n)prin

11、tf(對不起!沒有找到您所需要的航班,所以不能訂票。n);/未查找到所需航班printf(n請按回車鍵返回上層菜單 );getchar();getchar();strcpy(ii,n);break;doprintf(請輸入您要訂的機票數(shù)(以回車鍵結束): );scanf(%d,&n);/輸入所訂機票數(shù)if(n=n)/判定機票數(shù)是否大于等于訂票數(shù)si.count=si.count-n;printf(訂票成功! );break;else if(si.countn)/判定機票數(shù)是否小于訂票數(shù) printf(對不起,你所選擇的航班只剩 %d張機票n, si.count);printf(是否需要重新輸入

12、機票數(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ù)int n;char a10;dosearch();/調用查詢函數(shù)if(!strcmp(ii,n)printf(對不起!沒有找到您所需要的航班,所以不能退票。n);printf(n請按回車鍵返回上層菜單 );getchar();getchar();strcpy(ii,n);bre

13、ak;printf(請輸入您要退的機票數(shù)目: );scanf(%d,&n);/輸入所退票數(shù)if(n=0)/判定票數(shù)是否有效printf(輸入錯誤!至少需退1張機票。 );else si.count=si.count+n;printf(退票成功! );printf(是否繼續(xù)? 請鍵入y或n以回車鍵結束: );/判定是否繼續(xù)退票scanf(%s,a);while(!strcmp(a,y);/判定并跳出循環(huán) void paixu()/定義排序函數(shù)int n;printf(n* ); printf(1.按航班號從小到大排序n t2.按航班號從大到小排序n);printf(* ); printf(請在1-2中選擇以回車鍵結束: );scanf(%d,&n);/輸入排序方式switch(n)case 1:paixu1();/調用從小到大排序函數(shù)break;case 2:paixu2();/調用從大到小排序函數(shù)break;printf(排序后的航班信息為:n);output();/顯示排序后航班信息printf(n請按回車鍵返回上層菜單 ); getchar(); getchar();void paixu1()/定義從小到大排序

溫馨提示

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

評論

0/150

提交評論