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),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上#include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #include<conio.h> #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 c

2、lass_num=0; CLASS recordsN; int system_time(); void message(); void ShowTable1(); void ShowTable2(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(in

3、t); /判斷購買時(shí)間void find(char s1,char s2); /按起點(diǎn)終點(diǎn)查詢void deletemessage(); /刪除int findnum(char s1); /班次查詢void get(int,int); /修改及增加班次char *menu=" 歡迎使用車票查詢系統(tǒng) ","n*菜單*","n 1. 錄入班次 ","n 2. 瀏覽班次信息 ","n 3. 查詢路線 ","n 4. 增加班次 ","n 5. 售票 ","

4、;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: add();break; case 5: buyticket();break; case 6: deleteticket();br

5、eak; 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;i<11;i+)printf("%s",menui); /輸出菜單 i=0; while(c<0|c>9) printf("n"); printf("n請(qǐng)輸入選項(xiàng)(1-9): ");scanf("%s&q

6、uot;,s);c=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("請(qǐng)輸入任意鍵返回n");scanf("%s",s);i=1; if(i=0) system(&quo

7、t;cls"); /刷屏printf("請(qǐng)輸入班次總數(shù):n");scanf("%d",&class_num); /指向班次指針system("cls"); /刷屏for(i=0;i<class_num;i+) system("cls"); /刷屏printf("請(qǐng)輸入%d班次信息:n",i+1);h=-1;for(;h!=i;) /循環(huán)輸出printf("請(qǐng)輸入班次:n");scanf("%s",recordsi.num);for(

8、h=0;h<i;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(); / 按班次查詢ShowTable1(); for(i=0,j=0;i<class_num;i+,j+=2) /按班次順序輸出 if(whether(i) /判斷時(shí)間是否超出printf(&q

9、uot;|%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.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);

10、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");v

11、oid search() /查詢班次int i;char s110='0',s210='0'system("cls"); /刷屏printf("1. 按班次查詢n");printf("2. 按終點(diǎn)站查詢n");printf("3. 退出n");printf("請(qǐng)選擇(1-3):n");scanf("%d",&i);load(); /按班次查詢switch(i) case 1: printf("請(qǐng)輸入要查詢的班次:n"

12、); scanf("%s",s1);find(s1,s2); break;case 2:printf("請(qǐng)輸入要查詢終點(diǎn)站:n"); scanf("%s",s2);find(s1,s2); break; case 3: break;default : 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

13、; else m=0;for(i=0;i<class_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,recordsi.from,recordsi.to,recordsi.hours,recordsi.max,recordsi.now);h+=2;if(m=1)break;S

14、howTable2(h); if(h=0)printf("查找的班次不存在n");void add() int i,j=5;load(); system("cls"); printf("1. 增加班次n");printf("2. 返回n");printf("請(qǐng)選擇(1-2)n");scanf("%d",&i);if(i=1)system("cls"); printf("1. 輸入要增加的班次:n");scanf("%s

15、",recordsclass_num.num);for(i=0;i<class_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"

16、;);printf("請(qǐng)選擇(1-2):n");scanf("%d",&i);if(i=1)load(); / 按班次查詢search(); printf("請(qǐng)輸入要訂票的班次(若無請(qǐng)輸入0):n");scanf("%s",num);for(i=0;i<class_num;i+)if(strcmp(num,recordsi.num)=0) if(recordsi.max>recordsi.now&&whether(i)=1) recordsi.now+; printf("

17、;通向%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("請(qǐng)選擇(1-2)n:");scanf("%d",&i);if(i=1

18、)system("cls"); load(); printf("請(qǐng)輸入要退票的班次: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();

19、elseprintf("該班車已發(fā)出,無法退票n");getch(); if(i=class_num)printf("輸入錯(cuò)誤n");getch(); void change() char num10,s10;int h=0,j=13,i;load(); system("cls"); printf("請(qǐng)輸入要修改的班次:n");scanf("%s",num);i=findnum(num); if(i=class_num)printf("輸入錯(cuò)誤n");getch(); els

20、eprintf("確認(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("請(qǐng)選擇(1-2):n");scanf("%d",&i);if(i=1)system(&

21、quot;cls"); printf("請(qǐng)輸入要?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(;i<class_num-1;i+) recordsi=recordsi+1;class_num-; save();

22、printf("刪除成功n");getch();int findnum(char s1) int i,h=0;ShowTable1(); for(i=0;i<class_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

23、);h+=2; break;ShowTable2(h); return i;void save() FILE *fp1,*fp2; if(fp1=fopen("d:車票管理系統(tǒng).dat","wb")=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),

24、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(

25、"cls"); printf("文件打開錯(cuò)誤n");getch(); exit(0); fread(&class_num,sizeof(int),1,fp2); fread(records,sizeof(CLASS),class_num,fp1);fclose(fp1);fclose(fp2); void quit() char s5; printf("確認(rèn)退出n");scanf("%s",s);if(s0='y'|s0='Y')exit(0);void get(int i,int j) for(;)printf("請(qǐng)輸入發(fā)車時(shí)間(xx xx)");scanf("%s%s",recordsi.hour,recordsi.min);if(atoi(recordsi.hour)<24&&atoi(reco

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論