# 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“);
}