c語言實(shí)現(xiàn)機(jī)票管理系統(tǒng)源代碼_第1頁(yè)
c語言實(shí)現(xiàn)機(jī)票管理系統(tǒng)源代碼_第2頁(yè)
c語言實(shí)現(xiàn)機(jī)票管理系統(tǒng)源代碼_第3頁(yè)
c語言實(shí)現(xiàn)機(jī)票管理系統(tǒng)源代碼_第4頁(yè)
c語言實(shí)現(xiàn)機(jī)票管理系統(tǒng)源代碼_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、/*1 、用戶和管理員及航班信息請(qǐng)以英文字母或數(shù)字輸入 */*2、管理員賬戶為:boss,密碼為:123。保存在 txt 文件中,需 改*/*3 、部分文件讀寫為二進(jìn)制讀寫,所以打開文件時(shí)會(huì)看到亂碼 */#include#include #include #include #define N 1000void zhujiemian();/主界面函數(shù)void loginmanager();/管理員登錄void loginflightm();/管理員登錄機(jī)票系統(tǒng)void loginflightu();/用戶登錄機(jī)票系統(tǒng)void creatfile();/創(chuàng)建用戶信息模塊void input();

2、/輸入航班信息void print(); /輸出航班信息void save(); /保存航班信息void read(); /讀取航班信息void search(); /查找航班信息void loginuser();/用戶登錄void saveuser();/用戶信息保存模塊程序void paixu(); /對(duì)所有航班按航班號(hào)排序要修改請(qǐng)于程序中修void verify();/用戶及管理員登錄選擇void dingpiao(); /訂票信息struct users /r管理員/用戶信息結(jié)構(gòu)體,管理員可以修改航班信息char Name20; /管理員/用戶姓名char sexual10;/用戶性別

3、char ps8; /用戶密碼int age; /用戶年齡long Number; /用戶身份證號(hào)碼int power; /power為1是管理員登錄,為0是用戶登錄userN,up,mg;/up為鍵盤輸入用戶信息,userN為文件保存的用戶信息,mg為管理員結(jié)構(gòu)體int n;/所有用戶個(gè)數(shù),初始化為0 struct air /航班信息結(jié)構(gòu)體int num; /航班號(hào)char start20; /出發(fā)地char over20; /目的地char time10; /時(shí)間int count; /票數(shù)int prize; /票價(jià)sN,fnew;int i;int m=0; /所有航班個(gè)數(shù)case 1

4、:verify();/進(jìn)入機(jī)票系統(tǒng)#define %-d%12s%12s%10s%12d%10dn,si.num,si.start,si.over,si.time,si.count,si.prize /定義輸出格式void main()/主函數(shù)zhujiemian();void zhujiemian()/主界面函數(shù)int j;printf(#=#n);printf(#歡迎進(jìn)入機(jī)票管理系統(tǒng)#n);printf(# 1、登錄系統(tǒng)#n);printf(# 2、新用戶注冊(cè)#n);printf(# 0、退出#n);printf(#=#n);printf(請(qǐng)?jiān)?-2中選擇以回車鍵結(jié)束:nn); scanf

5、(%d,&j);switch(j)PRINTbreak;case 2:loginuser();/進(jìn)入用戶登錄界面case 2:creatfile();/進(jìn)入用戶注冊(cè)系統(tǒng)break;case 0:;break;void verify()/驗(yàn)證用戶及管理員信息模塊int j;system(cls);printf(#=#n);printf(#1、管理員登錄#n);printf(# 2、用戶登錄#n);printf(#0、返回主界面#n);printf(#=#n);scanf(%d,&j);switch(j)case 1:loginmanager();/進(jìn)入管理員登錄界面break;b

6、reak;printf(管理員賬戶為:boss密碼為:123n);case 0:system(cls);break;void loginmanager()FILE * fp=NULL;/定義文件指針char DataFile20=manager.txt;/存儲(chǔ)管理員信息的文件名int i=0,j=1;char relogin; /是否重新登錄int success=0; /登錄成功的標(biāo)志printf(n-管理員登錄-n);fp=fopen(DataFile,r);if(fp=NULL)/如果當(dāng)前文件不存在,初始化根用戶名為boss,密碼為123,權(quán) 限為管理員zhujiemian(); /進(jìn)入

7、主界面/*管理員登錄確定函數(shù)*/break;printf(管理員賬戶為:boss密碼為:123n);printf(首次使用該系統(tǒng)!n);fp=fopen(DataFile,a);/user0.Number=0;strcpy(user0.Name,boss);strcpy(user0.sexual,male);user0.age=22;user0.power=1;strcpy(user0.ps,123);fwrite(&user0,sizeof(user),1,fp);fclose(fp);elsefclose(fp);again:printf(請(qǐng)輸入管理員姓名:);scanf(%s,u

8、p.Name);/輸入用戶名up.Name19=0;printf(請(qǐng)輸入管理員密碼:);fflush(stdin);for(i=0;i7;i+)/輸入密碼,以*在屏幕顯示up.psi=getch();up.psi+1=0;/字符要以0結(jié)尾if(up.psi=b)以追加方式打開文件i-;up.psi=0;/清除前一個(gè)字符i-;/接收前一個(gè)字符printf(b );printf(b);continue;if(up.psi=r)up.psi=0;break;printf(*);fp=fopen(DataFile,rt);if(fp=NULL) /打開文件失敗時(shí)提示printf(n打開%s失敗!按任意

9、鍵結(jié)束程序n,DataFile); perror(Open file fail);getchar();return;if(fp=fopen(manager.txt,r)=NULL)/打開文件,并判斷是否出錯(cuò)printf(n出錯(cuò),請(qǐng)檢查文件是否存在,按任意鍵返回主菜單n);/打 印出錯(cuò)提示getchar();elsefread(&mg,sizeof(struct users),1,fp);/從文件中讀取信息fclose(fp);/關(guān)閉文件if(strcmp(mg.Name,up.Name)=0&strcmp(mg.ps,up.ps)=0)success=1;if(success=

10、1) /登錄成功printf(n登錄成功,按任意鍵進(jìn)入機(jī)票調(diào)整系統(tǒng)!n);getchar();loginflightm();else/未登錄成功fflush(stdin);/清除輸入緩沖區(qū)中的字符用戶名或密碼錯(cuò)誤!重新輸入請(qǐng)按y,退出請(qǐng)按n:n);relogin=getchar();if(relogin=y|relogin=Y)getchar();goto again;elseverify();exit(0);用戶登錄函數(shù)void loginuser()FILE *fp=NULL,*fp1;/定義文件指針char DataFile20=yonghu.txt;/printf(n存儲(chǔ)管理員信息的文

11、件名fflush(stdin);/清除輸入緩沖區(qū)中的字符char relogin;/是否重新登錄int i=0,j=0;fprintf(fp1,%d,0);/打開用戶文件失敗,則輸入用戶個(gè)數(shù)0到fp1printf(n-用戶登錄-n);fp=fopen(DataFile,r);/讀取文件中數(shù)據(jù)if(fp1=fopen(howmanyusers.txt,a)=NULL)/讀寫方式打開文件 文件不存在,則n=0/printf(創(chuàng)建文件失敗!nn);/打印出錯(cuò)提示n=0;/getchar();/continue;elsefp1=fopen(howmanyusers.txt,r);fscanf(fp1,

12、 %d,&n);/讀取fp1中的用戶個(gè)數(shù)fclose(fp1);if(fp=fopen(yonghu.txt,r)=NULL)/打開文件,并判斷是否出錯(cuò)fp1=fopen(howmanyusers.txt,w+);/以寫方式打開int success=0;/登錄成功的標(biāo)志,若fclose(fp1);prin tf(n目前沒有用戶信息,請(qǐng)按ENTER鍵返回主菜單先進(jìn)行注冊(cè)!n);getchar();getchar();system(cls);zhujiemian();for(i=0;in;i+)fread(&useri,sizeof(struct users),1,fp);/從文

13、件中讀取信息fclose(fp);/關(guān)閉文件/輸入數(shù)據(jù)與文件中用戶比對(duì)again:printf(請(qǐng)輸入用戶姓名:);scanf(%s,up.Name);/輸入用戶名up.Name19=0;printf(請(qǐng)輸入用戶密碼:);fflush(stdin);for(i=0;i7;i+)/輸入密碼,以*在屏幕顯示up.psi=getch();up.psi+1=0;/字符要以0結(jié)尾if(up.psi=b)i-;up.psi=0;/清除前一個(gè)字符i-;/接收前一個(gè)字符printf(b );printf(b);continue;if(up.psi=r)up.psi=0;break;printf(*);for(

14、i=0;in;i+) /對(duì)比用戶名和密碼,進(jìn)行登錄if(strcmp(useri.Name,up.Name)=0&strcmp(useri.ps,up.ps)=0)success=1;break;if(success=1) /登錄成功printf(n登錄成功,按任意鍵進(jìn)入機(jī)票調(diào)整系統(tǒng)!n);getchar();loginflightu();else /未登錄成功fflush(stdin);/清除輸入緩沖區(qū)中的字符printf(n用戶名或密碼錯(cuò)誤!重新輸入請(qǐng)按y,退出請(qǐng)按n:n); relogin=getchar();if(relogin=y|relogin=Y)getchar();go

15、to again;else verify();exit(0);void saveuser(struct users)/用戶信息保存模塊程序FILE *fp,*fp1;/定義文件指針if(fp=fopen(yonghu.txt,a)=NULL)/打開文件并判斷是否出錯(cuò)printf(創(chuàng)建文件失敗!nn);/打印出錯(cuò)提示getchar();return;if(fp1=fopen(howmanyusers.txt,w+)=NULL)/打開文件并判斷是否 出錯(cuò)printf(創(chuàng)建文件失敗!nn);/打印出錯(cuò)提示getchar();return;for(i=0;in;i+)if(fwrite(&us

16、eri,sizeof(struct users),1,fp)=0)/據(jù),并判斷是否出錯(cuò)向文件寫入數(shù)printf(向文件輸入數(shù)據(jù)失敗!nn);fprintf(fp1,%d,n);/輸入用戶個(gè)數(shù)到fp1fclose(fp);/fclose(fp1);/void creatfile()/關(guān)閉文件關(guān)閉文件增加用戶信息模塊FILE *fp=NULL,*p=NULL,*fp1;char DataFile20=yonghu.txt;/存儲(chǔ)用戶信息的文件名/int a100;int i=0,k=1,count=0;fp=fopen(DataFile,r);system(cls);/清屏if(fp=NULL)/

17、如果當(dāng)前文件不存在,提示打開文件失敗fp1=fopen(howmanyusers.txt,w+);/fprintf(fp1,%d,0);/打開用戶文件失敗,則輸入用戶個(gè)數(shù)0到fp1 fclose(fp1);printf(n不存在%s正在創(chuàng)建!n,DataFile);fp=fopen(DataFile,a);creatfile();if(fp1=fopen(howmanyusers.txt,a)=NULL)/讀寫方式打開文件,若文件不存在,則n=0n=0;elsefp1=fopen(howmanyusers.txt,r);fscanf(fp1, %d,&n);/讀取fp1中的用戶個(gè)數(shù)fc

18、lose(fp1);for(i=0;in;i+)fread(&useri,sizeof(struct users),1,fp);/以寫方式打開從文件中讀取信息i+;fclose(fp);/關(guān)閉文件/如果成功打開文件,則提示輸入用戶相關(guān)信息printf(請(qǐng)輸入用戶信息n); fflush(stdin);while(k)/printf(n輸入身份證號(hào)碼注意身份證號(hào)碼不能為0!n); printf(請(qǐng)輸入身份證號(hào)碼:);scanf(%ld,&up.Number);i=0;/再次初始化i為0/判斷身份證號(hào)是否存在while(in)if(useri.Number=up.Number)pr

19、intf(該身份證號(hào)碼已被使用過!n請(qǐng)重新輸入身份證號(hào):);scanf(%ld,&up.Number);i=0; /continue; else/經(jīng)循環(huán)對(duì)比后,i的值仍和n相等,將新注冊(cè)的信息加入數(shù)組末位useri.Number=up.Number;printf(姓名:);scanf(%s,&useri.Name);useri.Name19=0;printf(性別:);scanf(%s,&useri.sexual);printf(用戶密碼:);scanf(%s,&useri.ps);printf(年齡:);scanf(%d,&useri.age);n+;

20、/用戶數(shù)目增加printf(是否繼續(xù)注冊(cè)?是:選1,否:選0;);scanf(%d,&k);saveuser(user);/保存用戶信息fclose(fp);/在屏幕上顯示文件內(nèi)容system(cls);printf(數(shù)據(jù)已經(jīng)成功保存到$中n,DataFile);getchar();票 信 息-*nn *printf(按任意鍵返回主界面!n);getchar();system(cls);zhujiemian();/返回主界面void loginflightm()/管理員登錄機(jī)票系統(tǒng)int j;dosystem(cls);printf( -您好,歡迎進(jìn)入自動(dòng)化飛機(jī)訂票系統(tǒng)!n);prin

21、tf(n);printf( *1.輸 入 航 班 信 息 *nn *2.瀏*nn *3.找航班信*nn *4.對(duì)航班按航班票價(jià)排序-*nn5.訂-*nn*nn);printf(=n);printf(請(qǐng)?jiān)?-5中選擇以回車鍵結(jié)束:nn);scanf(%d,&j);switch(j)case 1:input();/調(diào)用輸入模塊break;case 2:system(cls);print();/調(diào)用打印模塊break;case 3:search();/調(diào)用查找模塊break;0.退 出- -*nn- -*- -*nncase 4:paixu();/調(diào)用排序模塊break;case 5:din

22、gpiao();/調(diào)用訂票模塊break;case 0:;break;while(j!=0); /判斷結(jié)束printf(按任意鍵返回主界面n);system(cls);zhujiemian();/登錄函數(shù)結(jié)束void loginflightu()/用戶登錄機(jī)票系統(tǒng)int j;dosystem(cls);n);printf(您好,歡迎進(jìn)入自動(dòng)化飛機(jī)訂票系統(tǒng)!*nn);printf(=n);printf(請(qǐng)?jiān)?-5中選擇以回車鍵結(jié)束:nn);scanf(%d,&j);switch(j)case 1:system(cls);printf(n);printf( *1.瀏覽*nn *2.找 航

23、班 信 息-*nn *3.對(duì)航班按航班票價(jià)排序-*nnII4.訂 票*nn *0.*nn*nnII*nnIIprint();/調(diào)用打印模塊break;case 2:search();/調(diào)用查找模塊break;case 3:paixu();/調(diào)用排序模塊break;case 4:dingpiao();/調(diào)用訂票模塊break;case 0:;break;while(j!=0); /判斷結(jié)束printf(按任意鍵返回主界面n);system(cls);zhujiemian();/登錄函數(shù)結(jié)束void input()/輸入航班信息模塊,管理員操作int i=0,k=1;read();printf(請(qǐng)

24、依次輸入航班信息 (航班號(hào),起始站,終點(diǎn)站,起飛時(shí)間,機(jī)票數(shù),票價(jià)):nn);/打印提示信息printf(-n);/fflush(stdin);while(k)printf(請(qǐng)輸入航班號(hào):n);scanf(%d,&fnew.num); /讀取航班號(hào)i=0;/再次初始化i為0/判斷航班是否已經(jīng)存在while(im)if(si.num=fnew.num)printf(該航班已經(jīng)存在!n請(qǐng)重新輸入:); scanf(%d,&fnew.num);i=0; /continue; elsei+;/經(jīng)循環(huán)對(duì)比后,i的值仍和n相等,將新注冊(cè)的信息加入數(shù)組末位si.num=fnew.num;pr

25、intf(請(qǐng)輸入起始站:n); scanf(%s,si.start);/讀取起始站printf(請(qǐng)輸入終點(diǎn)站:n);scanf(%s,si.over);/讀取終點(diǎn)站printf(請(qǐng)輸入時(shí)間:n);scanf(%s,si.time);/讀取時(shí)間printf(請(qǐng)輸入余票數(shù)(機(jī)票數(shù)為0結(jié)束輸入):n,m); scanf(%d,&si.count);/讀取機(jī)票數(shù)printf(請(qǐng)輸入機(jī)票票價(jià):n,m);scanf(%d,&si.prize);/讀取機(jī)票票價(jià)m+; /所有航班信息個(gè)數(shù)/ printf(第小個(gè)信息已經(jīng)輸完是否繼續(xù)?按1-9任意數(shù)字繼續(xù),按0結(jié)/scanf(%d,&y)

26、;printf(是否繼續(xù)添加航班?是:選1,否:選0;); scanf(%d,&k);if(k=0)束,m);save();/將結(jié)構(gòu)體信息存盤system(cls);print();/輸出輸入的航班信息break;void save()/航班信息保存模塊程序FILE *fp,*fp1;/定義文件指針if(fp=fopen(flight.txt,wb)=NULL)/打開文件并判斷是否出錯(cuò)printf(創(chuàng)建文件失敗!nn);/打印出錯(cuò)提示getchar();return;if(fp1=fopen(howmanyflights.txt,wb)=NULL)/打開文件并判斷是 否出錯(cuò)printf

27、(創(chuàng)建文件失敗!nn);/打印出錯(cuò)提示getchar();return;for(i=0;im;i+)if(fwrite(&si,sizeof(struct air),1,fp)=0)/向文件寫入數(shù)據(jù),并判斷是否出錯(cuò)printf(向文件輸入數(shù)據(jù)失敗!nn);fprintf(fp1,%d,m);fclose(fp);/關(guān)閉文件fclose(fp1);/關(guān)閉文件void read()/從文件讀取航班信息模塊FILE *fp,*fp1;/定義文件指針fp=fopen(flight.txt,r);/system(cls);/清屏if(fp=NULL)/如果當(dāng)前文件不存在,提示打開文件失敗fp1=

28、fopen(howmanyflights.txt,w+);/以寫方式打開fprintf(fp1,%d,0);/打開用戶文件失敗,則輸入用戶個(gè)數(shù)0到fp1 fclose(fp1);printf(n不存在flight.txt,正在創(chuàng)建!n); fp=fopen(flight.txt,a);printf(創(chuàng)建完成!n);system(cls);read();/perror(Open file fail);/getch();if(fp1=fopen(howmanyflights.txt,rb)=NULL)/讀寫方式打開文 件,若文件不存在,則m=0/printf(創(chuàng)建文件失敗!nn);/打印出錯(cuò)提示m

29、=0;elsefp1=fopen(howmanyflights.txt,r);fscanf(fp1, %d,&m);/讀取fp1中的用戶個(gè)數(shù)fclose(fp1);for(i=0;im;i+)fread(&si,sizeof(struct air),1,fp);/從文件中讀取信息fclose(fp);/關(guān)閉文件void print()/屏幕打印航班信息模塊read();/調(diào)用讀取文件函數(shù)if(m=0)printf(nn目前沒有航班信息!n);elseprintf(航班信息如下:n);printf(航班號(hào) 起始站終點(diǎn)站 時(shí)間票價(jià)n);for(i=0;im;i+)printf(PR

30、INT);/打印信息printf(n請(qǐng)按任意鍵回車鍵結(jié)束返回主菜單);getchar();getchar();void paixu()/對(duì)所有航班按航班價(jià)格排序余票數(shù)int j;struct paiint no;char name120;char name220;char time20;int count;int prize;p1;/臨時(shí)定義結(jié)構(gòu)體,作為排序時(shí)的第三變量read();/調(diào)用讀取信息函數(shù)for(j=0;j(m-1);j+)for(i=0;isi+1.prize) /按價(jià)格升序排列,p0為中間變 量p0.no=si.num;/替換航班號(hào)strcpy(1,si.start);/替換其始站strcpy(2,si.over);/替換終點(diǎn)站strcpy(p0.time,si.time);/替換時(shí)間p0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論