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

下載本文檔

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

文檔簡介

1、實用文檔文案大全/*1 、用戶和管理員及航班信息請以英文字母或數(shù)字輸入*/ /*2 、管理員賬戶為: boss,密碼為: 123。保存在txt文件中,需要修改請于程序中修改 */ /*3 、部分文件讀寫為二進制讀寫,所以打開文件時會看到亂碼*/ #include #include #include #include #define n 1000 void zhujiemian();/主界面函數(shù)void verify();/用戶及管理員登錄選擇void loginmanager();/管理員登錄void loginuser();/用戶登錄void loginflightm();/管理員登錄機票系

2、統(tǒng)void loginflightu();/用戶登錄機票系統(tǒng)void creatfile();/創(chuàng)建用戶信息模塊void saveuser();/用戶信息保存模塊程序void input(); /輸入航班信息void print(); /輸出航班信息void save(); /保存航班信息void read(); /讀取航班信息void paixu(); / 對所有航班按航班號排序void search(); /查找航班信息void dingpiao(); /訂票信息struct users /管理員 / 用戶信息結(jié)構(gòu)體,管理員可以修改航班信息 char name20; /管理員 / 用戶姓名

3、char sexual10;/用戶性別 char ps8; / 用戶密碼 int age; /用戶年齡long number; /用戶身份證號碼int power; /power為 1 是管理員登錄,為0 是用戶登錄usern,up,mg;/up為鍵盤輸入用戶信息,usern 為文件保存的用戶信息,mg為管理員結(jié)構(gòu)體int n;/所有用戶個數(shù) , 初始化為0 實用文檔文案大全struct air /航班信息結(jié)構(gòu)體 int num; /航班號char start20; /出發(fā)地char over20; /目的地char time10; /時間int count; /票數(shù)int prize; /票

4、價sn,fnew; int i; int m=0; /所有航班個數(shù)#define print %-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(# 歡迎進入機票管理系統(tǒng) #n); printf(# 1、登錄系統(tǒng) #n); printf(# 2、新用戶注冊 #n); printf(# 0、退出 #n); printf(#=

5、#n); printf(請在 1-2 中選擇以回車鍵結(jié)束:nn); scanf(%d,&j); switch(j) case 1:verify();/進入機票系統(tǒng)break; case 2:creatfile();/進入用戶注冊系統(tǒng)break; case 0:; break; void verify()/驗證用戶及管理員信息模塊 實用文檔文案大全int j; system(cls); printf(#=#n); printf(# 1、管理員登錄 #n); printf(# 2、用戶登錄 #n); printf(# 0、返回主界面 #n); printf(#=#n); scanf(%d,

6、&j); switch(j) case 1:loginmanager();/進入管理員登錄界面break; case 2:loginuser();/進入用戶登錄界面break; case 0: system(cls); zhujiemian(); /進入主界面break; /*管理員登錄確定函數(shù)*/ void loginmanager() file * fp=null;/定義文件指針 char datafile20=manager.txt;/存儲管理員信息的文件名 int i=0,j=1; char relogin; /是否重新登錄 int success=0; /登錄成功的標(biāo)志pri

7、ntf(n-管理員登錄 -n); fp=fopen(datafile,r); if(fp=null)/如果當(dāng)前文件不存在, 初始化根用戶名為boss, 密碼為 123, 權(quán)限為管理員 printf(首次使用該系統(tǒng)!n); printf(管理員賬戶為:boss 密碼為: 123n); 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(&

8、amp;user0,sizeof(user),1,fp); 實用文檔文案大全 fclose(fp); else fclose(fp); again: printf(請輸入管理員姓名:); scanf(%s,up.name);/輸入用戶名 up.name19=0; printf(請輸入管理員密碼:); fflush(stdin); for(i=0;i7;i+)/輸入密碼,以*在屏幕顯示 up.psi=getch(); up.psi+1=0;/字符要以 0結(jié)尾if(up.psi=b) i-; up.psi=0;/清除前一個字符 i-;/接收前一個字符 printf(b ); printf(b);

9、continue; if(up.psi=r) up.psi=0; break; printf(*); fp=fopen(datafile,rt); if(fp=null) / 打開文件失敗時提示 printf(n打開 %s 失敗 !按任意鍵結(jié)束程序n,datafile); perror(open file fail); getchar(); return; if(fp=fopen(manager.txt,r)=null)/打開文件,并判斷是否出錯 printf(n出錯,請檢查文件是否存在,按任意鍵返回主菜單n);/打印出錯提示 getchar(); 實用文檔文案大全 else fread(&a

10、mp;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=1) /登錄成功 printf(n登錄成功,按任意鍵進入機票調(diào)整系統(tǒng)!n); getchar(); loginflightm(); else/未登錄成功 fflush(stdin);/清除輸入緩沖區(qū)中的字符 printf(n用戶名或密碼錯誤! 重新輸入請按y, 退出請按n:n); relogin=getchar(); if(r

11、elogin=y|relogin=y) getchar(); goto again; else verify(); exit(0); /*用戶登錄函數(shù)*/ void loginuser() file *fp=null,*fp1;/定義文件指針 char datafile20=yonghu.txt;/存儲管理員信息的文件名 int i=0,j=0; char relogin; /是否重新登錄 int success=0; /登錄成功的標(biāo)志實用文檔文案大全printf(n-用戶登錄 -n); fp=fopen(datafile,r); / 讀取文件中數(shù)據(jù)if(fp1=fopen(howmanyus

12、ers.txt,a)=null)/讀寫方式打開文件, 若文件不存在,則 n=0 /printf(創(chuàng)建文件失敗!nn);/打印出錯提示n=0; /getchar(); /continue; else fp1=fopen(howmanyusers.txt,r); fscanf(fp1, %d,&n);/讀取 fp1 中的用戶個數(shù) fclose(fp1); if(fp=fopen(yonghu.txt,r)=null)/打開文件,并判斷是否出錯 fp1=fopen(howmanyusers.txt,w+);/以寫方式打開fprintf(fp1,%d,0);/打開用戶文件失敗,則輸入用戶個數(shù)0

13、 到 fp1 fclose(fp1); printf(n目前沒有用戶信息,請按enter 鍵返回主菜單先進行注冊!n); getchar(); getchar(); system(cls); zhujiemian(); for(i=0;in;i+) fread(&useri,sizeof(struct users),1,fp);/從文件中讀取信息 fclose(fp);/關(guān)閉文件/ 輸入數(shù)據(jù)與文件中用戶比對again: printf(請輸入用戶姓名:); scanf(%s,up.name);/輸入用戶名 up.name19=0; printf(請輸入用戶密碼:); fflush(std

14、in); for(i=0;i7;i+)/輸入密碼,以*在屏幕顯示 up.psi=getch(); 實用文檔文案大全 up.psi+1=0;/字符要以 0結(jié)尾if(up.psi=b) i-; up.psi=0;/清除前一個字符 i-;/接收前一個字符 printf(b ); printf(b); continue; if(up.psi=r) up.psi=0; break; printf(*); for(i=0;in;i+) /對比用戶名和密碼,進行登錄 if(strcmp(useri.name,up.name)=0&strcmp(useri.ps,up.ps)=0) success=1

15、; break; if(success=1) /登錄成功 printf(n登錄成功,按任意鍵進入機票調(diào)整系統(tǒng)!n); getchar(); loginflightu(); else /未登錄成功 fflush(stdin);/清除輸入緩沖區(qū)中的字符 printf(n用戶名或密碼錯誤! 重新輸入請按y, 退出請按n:n); relogin=getchar(); if(relogin=y|relogin=y) getchar(); goto again; else verify(); 實用文檔文案大全 exit(0); void saveuser(struct users)/用戶信息保存模塊程序

16、file *fp,*fp1;/定義文件指針if(fp=fopen(yonghu.txt,a)=null)/打開文件并判斷是否出錯 printf(創(chuàng)建文件失敗 !nn);/打印出錯提示getchar(); return; if(fp1=fopen(howmanyusers.txt,w+)=null)/打開文件并判斷是否出錯 printf(創(chuàng)建文件失敗 !nn);/打印出錯提示getchar(); return; for(i=0;in;i+) if(fwrite(&useri,sizeof(struct users),1,fp)=0)/向文件寫入數(shù)據(jù),并判斷是否出錯 printf(向文件輸

17、入數(shù)據(jù)失敗!nn); fprintf(fp1,%d,n);/輸入用戶個數(shù)到fp1 fclose(fp);/關(guān)閉文件fclose(fp1);/關(guān)閉文件 void creatfile()/增加用戶信息模塊 file *fp=null,*p=null,*fp1; char datafile20=yonghu.txt;/存儲用戶信息的文件名 /int a100; int i=0,k=1,count=0; fp=fopen(datafile,r); system(cls);/清屏 if(fp=null)/如果當(dāng)前文件不存在,提示打開文件失敗 實用文檔文案大全 fp1=fopen(howmanyusers

18、.txt,w+);/以寫方式打開 fprintf(fp1,%d,0);/打開用戶文件失敗,則輸入用戶個數(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=0 n=0; else fp1=fopen(howmanyusers.txt,r); fscanf(fp1, %d,&n);/讀取 fp1 中的用戶個數(shù) fclose(fp1); for(

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

20、號碼已被使用過!n請重新輸入身份證號:); scanf(%ld,&up.number); i=0; /continue; else i+; 實用文檔文案大全 /經(jīng)循環(huán)對比后,i 的值仍和n 相等,將新注冊的信息加入數(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

21、(%d,&useri.age); n+;/用戶數(shù)目增加 printf(是否繼續(xù)注冊?是:選1,否:選0;); scanf(%d,&k); saveuser(user);/保存用戶信息 fclose(fp); /在屏幕上顯示文件內(nèi)容 system(cls); printf(數(shù)據(jù)已經(jīng)成功保存到%s中 n,datafile); getchar(); printf(按任意鍵返回主界面!n); getchar(); system(cls); zhujiemian();/返回主界面 void loginflightm()/管理員登錄機票系統(tǒng) int j; do system(cls); p

22、rintf( -您好,歡迎進入自動化飛機訂票系統(tǒng)!- n); printf(=n); printf( *- -1.輸入 航班 信息- -*nn *- - 2. 瀏 覽航班信息 - -*nn *- 3. 查找航班信息 - -*nn *- - 4.對航班按航班票價排序-*nn *- - 5. 訂 票 信 息- - 實用文檔文案大全-*nn *- -0. 退 出- - -*nn *- - - -*nn *- - -*nn *- - - -*nn); printf(=n); printf(請在 0-5 中選擇以回車鍵結(jié)束:nn); scanf(%d,&j); switch(j) case 1:

23、 input();/調(diào)用輸入模塊break; case 2: system(cls); print();/調(diào)用打印模塊break; case 3: search();/調(diào)用查找模塊break; case 4: paixu();/調(diào)用排序模塊break; case 5: dingpiao();/調(diào)用訂票模塊break; case 0:; break; while(j!=0); /判斷結(jié)束printf(按任意鍵返回主界面n); system(cls); zhujiemian(); / 登錄函數(shù)結(jié)束void loginflightu()/用戶登錄機票系統(tǒng) int j; do system(cls);

24、 printf( -您好,歡迎進入自動化飛機訂票系統(tǒng)!- n); 實用文檔文案大全printf(=n); printf( *- -1. 瀏覽航班信息 - -*nn *- 2. 查找航班信息 - -*nn *- - 3.對航班按航班票價排序-*nn *- - 4. 訂 票 信 息- - -*nn *- -0. 退 出- - -*nn *- - - -*nn *- - -*nn *- - - -*nn); printf(=n); printf(請在 0-5 中選擇以回車鍵結(jié)束:nn); scanf(%d,&j); switch(j) case 1: system(cls); print()

25、;/調(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(請依次輸入航班信息(航班號,起始站,終點站,起飛時間,機票數(shù),票價) :nn

26、);/打印提示信息printf(-n); /fflush(stdin); while(k) printf(請輸入航班號:n); scanf(%d,&fnew.num); /讀取航班號 i=0;/再次初始化i 為 0 /判斷航班是否已經(jīng)存在 while(im) if(si.num=fnew.num) printf(該航班已經(jīng)存在!n請重新輸入:); scanf(%d,&fnew.num); i=0; /continue; else i+; /經(jīng)循環(huán)對比后,i 的值仍和n 相等,將新注冊的信息加入數(shù)組末位 si.num=fnew.num; printf(請輸入起始站:n); sca

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

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

29、文件并判斷是否出錯 printf(創(chuàng)建文件失敗 !nn);/打印出錯提示getchar(); return; for(i=0;im;i+) if(fwrite(&si,sizeof(struct air),1,fp)=0)/向文件寫入數(shù)據(jù),并判斷是否出錯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=nu

30、ll)/如果當(dāng)前文件不存在,提示打開文件失敗 fp1=fopen(howmanyflights.txt,w+);/以寫方式打開 fprintf(fp1,%d,0);/打開用戶文件失敗,則輸入用戶個數(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)/

31、讀寫方式打開文件, 若文件不存在,則m=0 /printf(創(chuàng)建文件失敗!nn);/打印出錯提示m=0; else fp1=fopen(howmanyflights.txt,r); fscanf(fp1, %d,&m);/讀取 fp1 中的用戶個數(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); else pr

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論