현재 위치 - 법률 상담 무료 플랫폼 - 온라인 법률 자문 - c語言編程飛機訂票系統
c語言編程飛機訂票系統
呵呵,這也是我在網上搜的。挺好的,沒有錯誤。

# include & ltstdio.h & gt//標準輸入和輸出頭文件

# include & ltstring.h & gt//包含字符串函數處理的頭文件

# include & ltstdlib.h & gt//包含動態存儲和釋放函數的頭文件

#定義N 10000

Struct air //定義壹個結構數組。

{

int num

char start【20】;

char超過【20】;

充電時間【10】;

int計數;

} s【N】;

int I;

int m = 0;

# define print“%-d % 12s % 12s % 10s % 12d \ n“,s【I】。數字,s【I】開始,s【I】。結束了。

void input();//輸入航班信息

void print();//輸出航班信息

void save();//保存航班信息

void read();//讀取航班信息

void search();//查找航班信息

void shanchu();//刪除航班信息

void ding Piao();//預訂信息

void退票();//退款信息

void修改();//修改信息

void main()

{

int j;

printf(“★-您好,歡迎使用中國民航管理系統!-★\ n“);

printf(“= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = n“);

{

printf(“-1。輸入航班信息☆ - \ n \ n“

" - 2.瀏覽航班信息-n——”

" - 3.修改航班信息☆ - \n\n“

" - 4.查找航班信息。

" - ☆ 5.刪除航班信息☆ - \ n \ n“

" - 6.預訂信息- n“

" - 7.退款信息- n“

" - 0.退出☆-n \ n“);

printf(“= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = n“);

Printf(“請選擇0-7以回車結束:\ n \ n“);

scanf(“% d“,& ampj);

開關(j)

{

case 1:input();//調用輸入模塊

打破;

情況二:打印();//調用打印模塊

打破;

案例三:修改派();//調用修改模塊

打破;

案例四:搜索();//調用查找模塊

打破;

案例五:山初();//調用刪除模塊

打破;

案例六:頂票();//調用預訂模塊

打破;

案例七:推票();//調用退款模塊

打破;

案例0:;

打破;

}

} while(j!=0);//判斷結束

Printf(“感謝您使用它,再見!\ n ");

}//主函數結束

void input()//打印模塊程序

{

char f【】=“2008 China“;//設置密碼

int y;

Printf(“請輸入您的密碼並以enter結尾:\ n \ n“);

scanf(“% s“,f);//讀取密碼

if(strcmp(f,“2008 China“)= = 0)

{

Printf(“請依次輸入航班信息(機票數字0輸入結束):\n\n“

“輸入完信息後,請鍵入w並以Enter結束\ n \ n“);//打印提示信息

printf(“-\ n“);

for(I = 0;我& ltn;i++)

{

Printf(“請輸入航班號:\ n“);

scanf(“% d“,& amps【I】。num);//讀取航班號

Printf(“請輸入起點站:\ n“);

scanf(“% s“,s【I】。開始);//讀取起點站

Printf(“請輸入終端:\ n“);

scanf(“% s“,s【I】。over);//讀取終端

Printf(“請輸入時間:\ n“);

scanf(“% s“,s【I】。時間);//讀取時間

Printf(“請輸入機票數量(機票數量為0):\ n“,m);

scanf(“% d“,& amps【I】。計數);//讀取機票號碼

m++;

Printf(“已輸入%d條消息。妳想繼續嗎?按任意鍵繼續,按0結束“,m);

scanf(“% d“,& ampy);

如果(y==0)

{

save();//保存結構信息。

print();//輸出輸入的航班信息。

打破;

}

}

}

其他

Printf(“密碼錯誤!請檢查您的密碼是否正確!謝謝妳再見!\ n \ n“);

}

void Save()//保存模塊程序。

{

FILE *fp,* FP 1;//定義文件指針

if((FP = fopen(“Chen。Dat“,WB“))= = null)//打開文件並判斷是否有錯誤。

{

Printf(“無法創建文件!\ n \ n“);//打印錯誤提示

getchar();

返回;

}

if((FP 1 = fopen(“Hao . dat“,“WB“))= = null)//打開文件並判斷是否有錯誤。

{

Printf(“無法創建文件!\ n \ n“);//打印錯誤提示

getchar();

返回;

}

for(I = 0;我& ltm;i++)

if(fwrite(& amp;s【I】,sizeof(struct air),1,FP = = 0)//向文件中寫入數據並判斷是否有錯誤。

Printf(“無法將數據輸入文件!\ n \ n“);

fprintf(FP 1,“%d“,m);

fclose(FP);//關閉文件

fclose(FP 1);//關閉文件

}

void read()//從文件讀取信息的模塊

{

FILE *fp,* FP 1;//定義文件指針

if((FP = fopen(“Chen。Dat“,“Rb“))= = null)//打開文件並判斷是否有錯誤。

{

Printf(“錯誤,請檢查文件是否存在,並按任意鍵返回菜單“);//打印錯誤提示

getchar();

}

if((FP 1 = fopen(“Hao . dat“,“Rb“))= = null)//打開文件並判斷是否有錯誤。

{

Printf(“無法創建文件!\ n \ n“);//打印錯誤提示

getchar();

返回;

}

fscanf(FP 1,“%d“,& ampm);

fclose(FP 1);//關閉文件

for(I = 0;我& ltm;i++)

{

弗雷德(& amps【I】,sizeof(air),1,FP);//從文件中讀取信息

}

fclose(FP);//關閉文件

}

void print()//打印模塊

{

char w【10】;

read();//調用讀取文件函數

Printf(“航班號、始發站、終點站時間、機票號碼\ n“);

for(I = 0;我& ltm;i++)

{

printf(PRINT);//打印信息

}

Printf(“請按任意鍵結束並返回上級菜單:\ n“);

scanf(“% s“,w);

}

void search()//查詢模塊

{

char name 1【20】;

char name 2【20】;

char ii【10】;

int n,no;

{

Printf(“請選擇壹種搜索方法:\ n \ n“);//打印查詢模式菜單

printf(“1。按航班號搜索\n\n“

"2.按終端搜索\n\n“

"3.按航空公司搜索\n\n“

"0.return \ n \ n“);

Printf(“請從0-3中選擇:\n\n“

”按其他鍵返回主菜單:\ n \ n“);

scanf(“% d“,& ampn);//讀取搜索模式

如果(n==0)

打破;

開關(n)

{

案例1:

Printf(“請輸入航班號:\ n“);

scanf(“% d“,& amp否);//航班號

打破;

案例二:

Printf(“請輸入終端名稱:\ n“);

scanf(“% s“,name 2);//讀取終端

打破;

案例三:

Printf(“請輸入起點站的名稱:\ n“);

scanf(“% s“,name 1);//讀取起點站

Printf(“請輸入終端名稱:\ n“);

scanf(“% s“,name 2);//終端

打破;

}

read();//調用讀取函數

for(I = 0;我& ltm;i++)

{

if(strcmp(s【I】。over,name 1)= | strcmp(s【I】。over,name 2)= = 0)//根據終端的起始站確定輸出條件。

{

Printf(“成功搜索航班信息!\ n ");

Printf(“航班號、始發站、終點站時間、機票號碼\ n“);

printf(PRINT);//打印信息

打破;

}

if(s【I】。num = = no)//根據航班號判斷輸出條件。

{

Printf(“成功搜索航班信息!\ n ");

Printf(“航班號、始發站、終點站時間、機票號碼\ n“);

printf(PRINT);//打印信息

打破;

}

}

no = 0;//將航班號指定為0。

Printf(“沒有您需要的信息或搜索未完成:\n\n“

“妳想繼續搜索嗎?請鍵入“是”或“否”以回車結束(\ n“);

scanf(“% s“,ii);

} while(strcmp(ii,“yes“)= = 0);//判斷結束

}

void shanchu()//刪除模塊

{

char name 1【20】;

char name 2【20】;

char ii【10】;

char f【】=“2008 China“;//設置密碼

int no,n;

Printf(“請輸入您的密碼並以enter結尾:\ n \ n“);

scanf(“% s“,f);//讀取密碼

if(strcmp(f,“2008 China“= = 0)//判斷密碼是否正確。

{

{

Printf(“請選擇刪除並以回車鍵結束:\ n \ n“);//打印刪除模式菜單

printf(* 1。按航班號刪除\n\n“

"*2.由航空公司刪除\n\n“

"*0.return \ n \ n“);

Printf(“請選擇0-2以回車結束:\ n“);

scanf(“% d“,& ampn);//讀取和刪除模式

如果(n==0)

打破;//跳出循環

開關(n)

{

案例1:

Printf(“請輸入航班號:\ n“);

scanf(“% d“,& amp否);//讀取航班號

read();//調用讀取函數

打破;//跳出循環

案例二:

Printf(“請輸入起點站的名稱:\ n“);

scanf(“% s“,name 1);//讀取起點站

Printf(“請輸入終端名稱:\ n“);

scanf(“% s“,name 2);//讀取終端

read();//調用讀取函數

打破;//跳出循環

}

for(I = 0;我& ltm;i++)

{

if(s【I】。num = = no | | strcmp(s【I】。start,name 1)= 0 & amp;& ampstrcmp(s【I】)。over,name 2)= = 0)//判斷輸入信息是否存在。

{

s【I】= s【m-1】;

m-;

}

}

Printf(“搜索完成或沒有此類信息\ n \ n“);

Printf(“繼續刪除\ n“);

Printf(“請鍵入“是”或“否”以回車結束);

scanf(“% s“,ii);//讀取是否繼續的信息。

save();//調用讀取函數

如果(!strcmp(ii,“yes“))//判斷是否繼續刪除。

Printf(“請按任意鍵返回上級菜單:\ n“);

打破;

} while(n!= 1 & amp;& ampn!= 2 & amp& ampn!= 3 & amp& ampn!= 4 & amp& ampn!=0);//判斷結束

}

其他

Printf(“對不起,密碼錯誤!您不是管理員,因此不能使用此功能!謝謝妳再見!\ n \ n“);

}

voiding Piao()//預訂模塊

{

int n;

char a【10】;

{

search();//調用查詢模塊

Printf(“請輸入您要預訂的機票數量,並以enter結尾:\ n“);

scanf(“% d“,& ampn);//讀取預訂的機票數量。

if(n & lt;0)

{

Printf(“請輸入有效的機票號碼!\ n ");//判斷機票數量是否有錯誤。

打破;

}

if(s【I】。數數。= 0 & amp& amps【I】。計數& gt= n)//判斷是否有錯誤。

{

s【I】。計數= s【I】。count-n;

save();//調用保存函數

Printf(“預約成功!\ n \ n“);

打破;

}

if(s【I】。計數& ltn)//判斷是否有錯誤。

{

Printf(“請輸入有效的機票號碼:\ n“);

打破;

}

Printf(“您想繼續嗎?請輸入“是”或“否”以回車結束:\ n“);//判斷是否繼續訂票。

scanf(“% s“,a);

}while(!strcmp(a,“yes“));//判斷結束

}

Void退票()//退款模塊

{

int n;

char a【10】;

{

search();//調用查詢模塊

Printf(“請輸入您要退票的機票號碼:\ n“);

scanf(“% d“,& ampn);//輸入退票數量。

if(n & lt;0)//判斷選票是否有效。

Printf(“請輸入有效的機票號碼!\ n ");

s【I】。計數= s【I】。count+n;

save();//調用保存模塊

Printf(“退款成功!\ n \ n“);

Printf(“您想繼續嗎?請鍵入“是”或“否”以回車結束:\ n \ n“);//判斷是否繼續退票。

scanf(“% s“,a);

}while(!strcmp(a,“yes“));//判斷並跳出循環

getchar();

}

void xiu Gai()//修改模塊

{

Struct xiu //定義結構。

{

int no

char name 1【20】;

char name 2【20】;

充電時間【20】;

int計數;

} x【1】;

char j【10】;

char f【】=“2008 China“;//設置密碼

int n;

Printf(“請輸入您的密碼並以enter結尾:\ n \ n“);

scanf(“% s“,f);//讀取密碼

if(strcmp(f,“2008 China“= = 0)//判斷是否有錯誤。

{

read();//調用讀取模塊

{

Printf(“請選擇修改方法:\n\n“

*1,根據航班號修改:\n\n

“*2,按路線修改:\ n \ n“);

Printf(“請在1-2中修改並以Enter結尾:\ n \ n“);

scanf(“% d“,& ampn);//讀取修改模式

開關(n)

{

案例1:printf(“請輸入航班號:\ n“);

scanf(“% d“,& ampx【0】。否);//讀取航班號

打破;

情況2:printf(“請輸入始發站:\ n“);

scanf(“% s“,x【0】。name 1);//讀取起點站

Printf(“請輸入終端:\ n“);

scanf(“% s“,x【0】。name 2);//讀取終端

打破;

}

for(I = 0;我& ltm;i++)

{

if(strcmp(s【I】。over,x【0】。name 1 = = 0 & amp;& ampstrcmp(s【I】)。結束,x【0】。name 2)= = 0)//判斷輸出條件。

{

Printf(“航班號、始發站、終點站時間、機票號碼\ n“);

printf(PRINT);

打破;

}

if(s【I】。num = = x【0】。否)//判斷輸出條件。

{

Printf(“航班號、始發站、終點站時間、機票號碼\ n“);

printf(PRINT);

打破;

}

}

x【0】。no = 0;//將結構中的數字歸零。

Printf(“請輸入新的航班號、始發站、終點站、時間(星期幾)、機票號碼:\ n“);

scanf(“% d % s % s % s % d“,& ampx【0】。不,x【0】。name 1,x【0】。name 2,x【0】。時間& ampx【0】。計數);//定義輸入格式

s【I】。num = x【0】。沒有;//替換航班號

strcopy(s【I】)。start,x【0】。name 1);//替換其起始站

strcopy(s【I】)。over,x【0】。name 2);//更換端子

strcopy(s【I】)。時間,x【0】。時間);//替換時間

s【I】。count = x【0】。數數;//更換機票號碼

save();//調用保存模塊

Printf(“您想繼續嗎?請鍵入“是”或“否”以回車結束:\ n \ n“);

scanf(“% s“,j);

} while(strcmp(j,“yes“)= = 0);//判斷結束

}

其他

Printf(“對不起,密碼錯誤!您不是管理員,因此不能使用此功能!謝謝妳再見!\ n \ n“);

}