C語言火車票管理系統(tǒng)_第1頁
C語言火車票管理系統(tǒng)_第2頁
C語言火車票管理系統(tǒng)_第3頁
C語言火車票管理系統(tǒng)_第4頁
C語言火車票管理系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、#include #include #include #include #include #define N 1000 typedef struct TICKET /定義新結(jié)構(gòu)體TICKETchar num10; /車次char hour3; char min3; char from10; char to10; float hours; int max; /車載容量 int now; /已售票數(shù) CLASS;int class_num=0; CLASS recordsN; int system_time(); void message(); void ShowTable1(); void Sh

2、owTable2(int i); void Display(); void add(); void save(); void load(); / 按班次查詢void search(); /查詢void change(); /修改void quit(); /退出void buyticket(); /售票void deleteticket(); /取消int menu_select(); /菜單int whether(int); /判斷購買時(shí)間void find(char s1,char s2); /按起點(diǎn)終點(diǎn)查詢void deletemessage(); /刪除int findnum(char

3、s1); /班次查詢void get(int,int); /修改及增加班次char *menu= 歡迎使用車票查詢系統(tǒng) ,n*菜單*,n 1. 錄入班次 ,n 2. 瀏覽班次信息 ,n 3. 查詢路線 ,n 4. 增加班次 ,n 5. 售票 ,n 6. 退票 ,n 7. 修改班次 ,n 8. 刪除班次 ,n 9. 退出 ; int main()system(cls); while(1) switch(menu_select() /菜單case 1: message();break; case 2: Display();break; case 3: search();break; case 4:

4、 add();break; case 5: buyticket();break; case 6: deleteticket();break; case 7: change();break; case 8: deletemessage();break; case 9: quit();break; int menu_select() /菜單char s5; int c,i; system(cls); for(i=0;i11;i+)printf(%s,menui); /輸出菜單 i=0; while(c9) printf(n); printf(n請輸入選項(xiàng)(1-9): );scanf(%s,s);c

5、=atoi(s); /輸出菜單return c; void message() /錄入 int i=0,j=5,h; char s5;FILE *fp; /定義文件型指針變量system(cls); /刷屏if(fp=fopen(d:車票管理系統(tǒng)0.dat,rb)!=NULL) /fopen打開文件 printf(增加信息n);printf(請輸入任意鍵返回n);scanf(%s,s);i=1; if(i=0) system(cls); /刷屏printf(請輸入班次總數(shù):n);scanf(%d,&class_num); /指向班次指針system(cls); /刷屏for(i=0;iclas

6、s_num;i+) system(cls); /刷屏printf(請輸入%d班次信息:n,i+1);h=-1;for(;h!=i;) /循環(huán)輸出printf(請輸入班次:n);scanf(%s,recordsi.num);for(h=0;hi;h+)if(strcmp(recordsh.num,recordsi.num)=0) printf(該班次已存在n);break; get(i,j); /修改及增加班次j=5;save(); /調(diào)用保存函數(shù)/*顯示所有函數(shù)*/void Display() /顯示所有函數(shù)int i,j;system(cls); /刷屏load(); / 按班次查詢Show

7、Table1(); for(i=0,j=0;iclass_num;i+,j+=2) /按班次順序輸出 if(whether(i) /判斷時(shí)間是否超出printf(|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|,recordsi.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);else printf(|%10s| 已發(fā)車 |%10s|%10s|%8.1f|%8d|%8d|,recordsi.num,recordsi.

8、from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);ShowTable2(j); printf(n按任意鍵繼續(xù)n);getch(); void ShowTable1() int i=2;system(cls); /刷屏printf( 班次信息 n);printf(n|-|-|-|-|-|-|-|n); printf(n| 班次 | 發(fā)車時(shí)間 | 起點(diǎn)站 | 終點(diǎn)站 |行車時(shí)間|額定載量| 已售票 |n);void ShowTable2(int i) printf(n|-|-|-|-|-|-|-|n);void search()

9、/查詢班次int i;char s110=0,s210=0;system(cls); /刷屏printf(1. 按班次查詢n);printf(2. 按終點(diǎn)站查詢n);printf(3. 退出n);printf(請選擇(1-3):n);scanf(%d,&i);load(); /按班次查詢switch(i) case 1: printf(請輸入要查詢的班次:n); scanf(%s,s1);find(s1,s2); break;case 2:printf(請輸入要查詢終點(diǎn)站:n); scanf(%s,s2);find(s1,s2); break; case 3: break;default :

10、printf(輸入錯(cuò)誤!n);break;printf(按任意鍵繼續(xù)n);getch(); void find(char s1,char s2)int i,h=0,m;ShowTable1(); if(s20=0)m=1; else m=0;for(i=0;iclass_num;i+)if(strcmp(s1,recordsi.num)=0|strcmp(s2,recordsi.to)=0) printf(n);printf(|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|,recordsi.num,recordsi.hour,recordsi.min,recor

11、dsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);h+=2;if(m=1)break;ShowTable2(h); if(h=0)printf(查找的班次不存在n);void add() int i,j=5;load(); system(cls); printf(1. 增加班次n);printf(2. 返回n);printf(請選擇(1-2)n);scanf(%d,&i);if(i=1)system(cls); printf(1. 輸入要增加的班次:n);scanf(%s,recordsclass_num.num);f

12、or(i=0;iclass_num;i+)if(strcmp(recordsclass_num.num,recordsi.num)=0) printf(輸入錯(cuò)誤n);getch(); break;if(i=class_num) get(i,j); class_num+; save(); void buyticket() int i;char num10;system(cls); printf(1. 售票n);printf(2. 返回n);printf(請選擇(1-2):n);scanf(%d,&i);if(i=1)load(); / 按班次查詢search(); printf(請輸入要訂票的班

13、次(若無請輸入0):n);scanf(%s,num);for(i=0;irecordsi.now&whether(i)=1) recordsi.now+; printf(通向%s班次為%s的票訂票成功n,recordsi.to,recordsi.num);save(); getch(); break;elseprintf(該班次已滿或已發(fā)出!n);getch(); void deleteticket() int i;char num10;system(cls); printf(1. 退票n);printf(2. 返回n);printf(請選擇(1-2)n:);scanf(%d,&i);if(i

14、=1)system(cls); load(); printf(請輸入要退票的班次:n);scanf(%s,num);i=findnum(num); if(strcmp(num,recordsi.num)=0) if(whether(i) printf(是否確認(rèn));scanf(%s,num);if(num0=y|num0=Y) recordsi.now-; printf(退票成功n);save(); getch(); elseprintf(該班車已發(fā)出,無法退票n);getch(); if(i=class_num)printf(輸入錯(cuò)誤n);getch(); void change() char

15、 num10,s10;int h=0,j=13,i;load(); system(cls); printf(請輸入要修改的班次:n);scanf(%s,num);i=findnum(num); if(i=class_num)printf(輸入錯(cuò)誤n);getch(); elseprintf(確認(rèn)修改n);scanf(%s,s);if(s0=y|s0=Y)get(i,j); save(); void deletemessage() int i,h=0;char num10;system(cls); printf(1. 刪除班次n);printf(2. 返回n);printf(請選擇(1-2):n

16、);scanf(%d,&i);if(i=1)system(cls); printf(請輸入要?jiǎng)h除的班次:n);scanf(%s,num);i=findnum(num); if(i=class_num)printf(輸入錯(cuò)誤n);getch(); elseprintf(是否確認(rèn)n);scanf(%s,num);if(num0=y|num0=Y)for(;iclass_num-1;i+) recordsi=recordsi+1;class_num-; save(); printf(刪除成功n);getch();int findnum(char s1) int i,h=0;ShowTable1();

17、 for(i=0;iclass_num;i+)if(strcmp(s1,recordsi.num)=0) printf(|%10s|%5s:%-4s|%10s|%10s|%8.1f|%8d|%8d|,recordsi.num,recordsi.hour,recordsi.min,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);h+=2; break;ShowTable2(h); return i;void save() FILE *fp1,*fp2; if(fp1=fopen(d:車票管理系統(tǒng).dat,wb

18、)=NULL) /打開文件printf(文件打開錯(cuò)誤!n);exit(0);if(fp2=fopen(d:車票管理系統(tǒng)0.dat,wb)=NULL) printf(文件打開錯(cuò)誤!n);exit(0);fwrite(&class_num,sizeof(int),1,fp2); fwrite(records,sizeof(CLASS),class_num,fp1);fclose(fp1);fclose(fp2); void load() FILE *fp1,*fp2;if(fp1=fopen(d:車票管理系統(tǒng).dat,rb)=NULL)system(cls); printf(文件打開錯(cuò)誤n);getch(); exit(0);if(fp2=fopen(d:車票管理系統(tǒng)0.dat,rb)=NULL)system(cls); printf(文件打開錯(cuò)誤n);getch(); exit(0); fread(&class_num,sizeof(int),1,fp2); fread(records,sizeof(CLAS

溫馨提示

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

最新文檔

評論

0/150

提交評論