| 導購 | 订阅 | 在线投稿
分享
 
 
 

飛機訂票系統設計

2008-06-01 02:07:49  編輯來源:互聯網  简体版  手機版  移動版  評論  字體: ||
 

這是我編寫的程序請大家多多指教!!!謝謝!!

#include<stdio.h> //標准輸入、輸出頭文件

#include<string.h> //包含字符串函數處理頭文件

#include<stdlib.h> //包含動態存儲與釋放函數頭文件

#define N 10000

strUCt air //定義結構體數組

{

int num;

char start[20];

char over[20];

char time[10];

int count;

}s[N];

int i;

int m=0;

#define PRINT "%-d%12s%12s%10s%12d ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //定義輸出格式

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

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

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

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

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

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

void dingpiao(); //訂票信息

void tuipiao(); //退票信息

void xiugai(); //修改信息

void main()

{

int j;

printf(" ★---您好,歡迎進入中國民航治理系統!---★ ");

printf("================================================================================ ");

do

{

printf(" -------- ☆ 1.輸入航班信息 ☆-------- "

" -------- ☆ 2.浏覽航班信息 ☆-------- "

" -------- ☆ 3.修改航班信息 ☆-------- "

" -------- ☆ 4.查找航班信息 ☆-------- "

" -------- ☆ 5.刪除航班信息 ☆-------- "

" -------- ☆ 6.訂票信息 ☆-------- "

" -------- ☆ 7.退票信息 ☆-------- "

" -------- ☆ 0.退出 ☆-------- ");

printf("================================================================================ ");

printf("請在0-7中選擇以回車鍵結束: ");

scanf("%d",&j);

switch(j)

{

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

break;

case 2:print();//調用打印模塊

break;

case 3:xiugai();//調用修改模塊

break;

case 4:search();//調用查找模塊

break;

case 5:shanchu(); //調用刪除模塊

break;

case 6:dingpiao();//調用訂票模塊

break;

case 7:tuipiao();//調用退票模塊

break;

case 0:;

break;

}

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

printf("謝謝使用,再見! ");

}//主函數結束

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

{

char f[]="2008china"; //設置密碼

int y;

printf("請輸入密碼並以回車鍵結束: ");

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

if(strcmp(f,"2008china")==0)

{

printf("請依次輸入航班信息(機票數位0結束輸入): "

"完成輸入信息請鍵入w以回車鍵結束 "); //打印提示信息

printf("-------------------------------------------------------------------------- ");

for(i=0;i<N;i++)

{

printf("請輸入航班號: ");

scanf("%d",&s[i].num); //讀取航班號

printf("請輸入起始站: ");

scanf("%s",s[i].start);//讀取起始站

printf("請輸入終點站: ");

scanf("%s",s[i].over);//讀取終點站

printf("請輸入時間: ");

scanf("%s",s[i].time);//讀取時間

printf("請輸入機票數(機票數爲0結束輸入): ",m);

scanf("%d",&s[i].count);//讀取機票數

m++;

printf("第%d個信息已經輸完是否繼續?按任意鍵繼續,按 0結束",m);

scanf("%d",&y);

if(y==0)

}

}

else

printf("輸入密碼錯誤!請檢查您的密碼是否正確!謝謝!再見! ");

}

void save()//保存模塊程序

{

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

if((fp=fopen("chen.dat","wb"))==NULL)//打開文件並判定是否出錯

{

printf("創建文件失敗! ");//打印出錯提示

getchar();

return;

}

if((fp1=fopen("hao.dat","wb"))==NULL)//打開文件並判定是否出錯

{

printf("創建文件失敗! ");//打印出錯提示

getchar();

return;

}

for(i=0;i<m;i++)

if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件寫入數據,並判定是否出錯

printf("向文件輸入數據失敗! ");

fprintf(fp1,"%d",m);

fclose(fp);//關閉文件

fclose(fp1);//關閉文件

}

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

{

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

if((fp=fopen("chen.dat","rb"))==NULL)//打開文件,並判定是否出錯

if((fp1=fopen("hao.dat","rb"))==NULL)//打開文件並判定是否出錯

{

printf("創建文件失敗! ");//打印出錯提示

getchar();

return;

}

fscanf(fp1,"%d",&m);

fclose(fp1);//關閉文件

for(i=0;i<m;i++)

fclose(fp);//關閉文件

}

void print()//打印模塊

{

char w[10];

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

printf("航班號 起始站 終點站 時間 機票數 ");

for(i=0;i<m;i++)

{

printf(PRINT);//打印信息

}

printf("請按任意鍵回車鍵結束返回上層菜單以: ");

scanf("%s",w);

}

void search()//查詢模塊

{

char name1[20];

char name2[20];

char ii[10];

int n,no;

do

{

printf("請選擇查找方式: ");//打印查詢方式菜單

printf("1.按航班號查找 "

"2.按終點站查找 "

"3.按航線查找 "

"0.返回 ");

printf("請在0-3中選擇: "

"按其他鍵以回車鍵結束返回主菜單: ");

scanf("%d",&n);//讀取查找方式

if(n==0)

break;

switch(n)

{

case 1:

printf("請輸入航班號: ");

scanf("%d",&no);//航班號

break;

case 2:

printf("請輸入終點站名稱: ");

scanf("%s",name2);//讀取終點站

break;

case 3:

printf("請輸入起始站名稱: ");

scanf("%s",name1);//讀取起始站

printf("請輸入終點站名稱: ");

scanf("%s",name2);//終點站

break;

}

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

for(i=0;i<m;i++)

{

if(strcmp(s[i].over,name1)==0strcmp(s[i].over,name2)==0)//按終點站起始站判定輸出條件

{

printf(" 查找航班信息成功! ");

printf("航班號 起始站 終點站 時間 機票數 ");

printf(PRINT);//打印信息

break;

}

if(s[i].num==no)//按航班號判定輸出條件

{

printf(" 查找航班信息成功! ");

printf("航班號 起始站 終點站 時間 機票數 ");

printf(PRINT);//打印信息

break;

}

}

no=0;//將航班號賦值爲0

printf("沒有您需要的信息或查找完畢: "

"是否繼續查找?請鍵入yes或no以回車鍵結束 ");

scanf("%s",ii);

}while(strcmp(ii,"yes")==0);//判定結束

}

void shanchu()//刪除模塊

{

char name1[20];

char name2[20];

char ii[10];

char f[]="2008china";//設置密碼

int no,n;

printf("請輸入密碼並以回車鍵結束: ");

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

if(strcmp(f,"2008china")==0) //判定密碼是否正確

{

do

{

printf("請選擇刪除以方式回車鍵結束: ");//打印刪除方式菜單

printf("*1.按航班號刪除 "

"*2.按航線刪除 "

"*0.返回 ");

printf("請在0-2中選擇以回車鍵結束: ");

scanf("%d",&n);//讀取刪除方式

if(n==0)

break; //跳出循環

switch(n)

{

case 1:

printf("請輸入航班號: ");

scanf("%d",&no);//讀取航班號

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

break;//跳出循環

case 2:

printf("請輸入起始站 名稱: ");

scanf("%s",name1);//讀取起始站

printf("請輸入終點站名稱: ");

scanf("%s",name2);//讀取終點站

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

break;//跳出循環

}

for(i=0;i<m;i++)

}

printf("查找完畢或沒有這個信息 ");

printf("是否繼續刪除 ");

printf("請鍵入yes或no以回車鍵結束 ");

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

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

if(!strcmp(ii,"yes")) //判定是否繼續刪除

printf("請按任意鍵以回車鍵結束返回上層菜單: ");

break;

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

}

else

printf("對不起密碼錯誤!您不是治理員,不能使用此項功能!謝謝!再見! ");

}

void dingpiao()//訂票模塊

{

int n;

char a[10];

do

{

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

printf("請輸入您要訂的機票數以回車鍵結束: ");

scanf("%d",&n);//讀取所訂機票數

if(n<0)

{

printf("請輸入有效的機票數! ");//判定機票數是否出錯

break;

}

if(s[i].count!=0&&s[i].count>=n)//判定是否出錯

{

s[i].count=s[i].count-n;

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

printf("訂票成功! ");

break;

}

if(s[i].count<n)//判定是否出錯

{

printf("請輸入有效的機票數: ");

break;

}

printf("是否繼續? 請輸入yes或no以回車鍵結束: ");//判定是否繼續訂票

scanf("%s",a);

}while(!strcmp(a,"yes"));//判定結束

}

void tuipiao()//退票模塊

{

int n;

char a[10];

do

{

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

printf("請輸入您要退的機票數目: ");

scanf("%d",&n);//輸入所退票數

if(n<0) //判定票數是否有效

printf("請輸入有效的機票數! ");

s[i].count=s[i].count+n;

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

printf("退票成功! ");

printf("是否繼續? 請鍵入yes或no以回車鍵結束: ");//判定是否繼續退票

scanf("%s",a);

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

getchar();

}

void xiugai() //修改模塊

{

struct xiu //定義結構體

{

int no;

char name1[20];

char name2[20];

char time[20];

int count;

}x[1];

char j[10];

char f[]="2008china";//設置密碼

int n;

printf("請輸入密碼並以回車鍵結束: ");

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

if(strcmp(f,"2008china")==0)//判定是否出錯

{

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

do

{

printf( "請選擇修改方式: "

"*1,按航班號修改: "

"*2,按航線修改: ");

printf("請在1---2中修改以回車鍵結束: ");

scanf("%d",&n);//讀取修改方式

switch(n)

{

case 1:printf("請輸入航班號: ");

scanf("%d",&x[0].no);//讀取航班號

break;

case 2:printf("請輸入起始站: ");

scanf("%s",x[0].name1);//讀取起始站

printf("請輸入終點站: ");

scanf("%s",x[0].name2);//讀取終點站

break;

}

for(i=0;i<m;i++)

{

if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0)//判定輸出條件

{

printf("航班號 起始站 終點站 時間 機票數 ");

printf(PRINT);

break;

}

if(s[i].num==x[0].no)//判定輸出條件

{

printf("航班號 起始站 終點站 時間 機票數 ");

printf(PRINT);

break;

}

}

x[0].no=0; //將結構體中的號爲零

printf("請輸入新航班號、起始站、終點站、時間(星期幾)、機票數: ");

scanf("%d%s%s%s%d",&x[0].no,x[0].name1,x[0].name2,x[0].time,&x[0].count);//定義輸入格式

s[i].num=x[0].no;//替換航班號

strcpy(s[i].start,x[0].name1);//替換其始站

strcpy(s[i].over,x[0].name2);//替換終點站

strcpy(s[i].time,x[0].time);//替換時間

s[i].count=x[0].count;//替換機票數

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

printf("是否繼續?請鍵入yes或no以回車鍵結束: ");

scanf("%s",j);

}while(strcmp(j,"yes")==0); //判定結束

}

else

printf("對不起密碼錯誤!您不是治理員,不能使用此項功能!謝謝!再見! ");

}

 
這是我編寫的程序請大家多多指教!!!謝謝!! #include<stdio.h> //標准輸入、輸出頭文件 #include<string.h> //包含字符串函數處理頭文件 #include<stdlib.h> //包含動態存儲與釋放函數頭文件 #define N 10000 strUCt air //定義結構體數組 { int num; char start[20]; char over[20]; char time[10]; int count; }s[N]; int i; int m=0; #define PRINT "%-d%12s%12s%10s%12d ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //定義輸出格式 void input(); //輸入航班信息 void print(); //輸出航班信息 void save(); //保存航班信息 void read(); //讀取航班信息 void search(); //查找航班信息 void shanchu(); //刪除航班信息 void dingpiao(); //訂票信息 void tuipiao(); //退票信息 void xiugai(); //修改信息 void main() { int j; printf(" ★---您好,歡迎進入中國民航治理系統!---★ "); printf("================================================================================ "); do { printf(" -------- ☆ 1.輸入航班信息 ☆-------- " " -------- ☆ 2.浏覽航班信息 ☆-------- " " -------- ☆ 3.修改航班信息 ☆-------- " " -------- ☆ 4.查找航班信息 ☆-------- " " -------- ☆ 5.刪除航班信息 ☆-------- " " -------- ☆ 6.訂票信息 ☆-------- " " -------- ☆ 7.退票信息 ☆-------- " " -------- ☆ 0.退出 ☆-------- "); printf("================================================================================ "); printf("請在0-7中選擇以回車鍵結束: "); scanf("%d",&j); switch(j) { case 1: input();//調用輸入模塊 break; case 2:print();//調用打印模塊 break; case 3:xiugai();//調用修改模塊 break; case 4:search();//調用查找模塊 break; case 5:shanchu(); //調用刪除模塊 break; case 6:dingpiao();//調用訂票模塊 break; case 7:tuipiao();//調用退票模塊 break; case 0:; break; } }while(j!=0); //判定結束 printf("謝謝使用,再見! "); }//主函數結束 void input()//打印模塊程序 { char f[]="2008china"; //設置密碼 int y; printf("請輸入密碼並以回車鍵結束: "); scanf("%s",f); //讀取密碼 if(strcmp(f,"2008china")==0) { printf("請依次輸入航班信息(機票數位0結束輸入): " "完成輸入信息請鍵入w以回車鍵結束 "); //打印提示信息 printf("-------------------------------------------------------------------------- "); for(i=0;i<N;i++) { printf("請輸入航班號: "); scanf("%d",&s[i].num); //讀取航班號 printf("請輸入起始站: "); scanf("%s",s[i].start);//讀取起始站 printf("請輸入終點站: "); scanf("%s",s[i].over);//讀取終點站 printf("請輸入時間: "); scanf("%s",s[i].time);//讀取時間 printf("請輸入機票數(機票數爲0結束輸入): ",m); scanf("%d",&s[i].count);//讀取機票數 m++; printf("第%d個信息已經輸完是否繼續?按任意鍵繼續,按 0結束",m); scanf("%d",&y); if(y==0) } } else printf("輸入密碼錯誤!請檢查您的密碼是否正確!謝謝!再見! "); } void save()//保存模塊程序 { FILE *fp,*fp1;//定義文件指針 if((fp=fopen("chen.dat","wb"))==NULL)//打開文件並判定是否出錯 { printf("創建文件失敗! ");//打印出錯提示 getchar(); return; } if((fp1=fopen("hao.dat","wb"))==NULL)//打開文件並判定是否出錯 { printf("創建文件失敗! ");//打印出錯提示 getchar(); return; } for(i=0;i<m;i++) if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件寫入數據,並判定是否出錯 printf("向文件輸入數據失敗! "); fprintf(fp1,"%d",m); fclose(fp);//關閉文件 fclose(fp1);//關閉文件 } void read()//從文件讀取信息模塊 { FILE *fp,*fp1;//定義文件指針 if((fp=fopen("chen.dat","rb"))==NULL)//打開文件,並判定是否出錯 if((fp1=fopen("hao.dat","rb"))==NULL)//打開文件並判定是否出錯 { printf("創建文件失敗! ");//打印出錯提示 getchar(); return; } fscanf(fp1,"%d",&m); fclose(fp1);//關閉文件 for(i=0;i<m;i++) fclose(fp);//關閉文件 } void print()//打印模塊 { char w[10]; read();//調用讀取文件函數 printf("航班號 起始站 終點站 時間 機票數 "); for(i=0;i<m;i++) { printf(PRINT);//打印信息 } printf("請按任意鍵回車鍵結束返回上層菜單以: "); scanf("%s",w); } void search()//查詢模塊 { char name1[20]; char name2[20]; char ii[10]; int n,no; do { printf("請選擇查找方式: ");//打印查詢方式菜單 printf("1.按航班號查找 " "2.按終點站查找 " "3.按航線查找 " "0.返回 "); printf("請在0-3中選擇: " "按其他鍵以回車鍵結束返回主菜單: "); scanf("%d",&n);//讀取查找方式 if(n==0) break; switch(n) { case 1: printf("請輸入航班號: "); scanf("%d",&no);//航班號 break; case 2: printf("請輸入終點站名稱: "); scanf("%s",name2);//讀取終點站 break; case 3: printf("請輸入起始站名稱: "); scanf("%s",name1);//讀取起始站 printf("請輸入終點站名稱: "); scanf("%s",name2);//終點站 break; } read();//調用讀取函數 for(i=0;i<m;i++) { if(strcmp(s[i].over,name1)==0strcmp(s[i].over,name2)==0)//按終點站起始站判定輸出條件 { printf(" 查找航班信息成功! "); printf("航班號 起始站 終點站 時間 機票數 "); printf(PRINT);//打印信息 break; } if(s[i].num==no)//按航班號判定輸出條件 { printf(" 查找航班信息成功! "); printf("航班號 起始站 終點站 時間 機票數 "); printf(PRINT);//打印信息 break; } } no=0;//將航班號賦值爲0 printf("沒有您需要的信息或查找完畢: " "是否繼續查找?請鍵入yes或no以回車鍵結束 "); scanf("%s",ii); }while(strcmp(ii,"yes")==0);//判定結束 } void shanchu()//刪除模塊 { char name1[20]; char name2[20]; char ii[10]; char f[]="2008china";//設置密碼 int no,n; printf("請輸入密碼並以回車鍵結束: "); scanf("%s",f);//讀取密碼 if(strcmp(f,"2008china")==0) //判定密碼是否正確 { do { printf("請選擇刪除以方式回車鍵結束: ");//打印刪除方式菜單 printf("*1.按航班號刪除 " "*2.按航線刪除 " "*0.返回 "); printf("請在0-2中選擇以回車鍵結束: "); scanf("%d",&n);//讀取刪除方式 if(n==0) break; //跳出循環 switch(n) { case 1: printf("請輸入航班號: "); scanf("%d",&no);//讀取航班號 read();//調用讀取函數 break;//跳出循環 case 2: printf("請輸入起始站 名稱: "); scanf("%s",name1);//讀取起始站 printf("請輸入終點站名稱: "); scanf("%s",name2);//讀取終點站 read();//調用讀取函數 break;//跳出循環 } for(i=0;i<m;i++) } printf("查找完畢或沒有這個信息 "); printf("是否繼續刪除 "); printf("請鍵入yes或no以回車鍵結束 "); scanf("%s",ii); //讀取是否繼續信息 save(); //調用讀取函數 if(!strcmp(ii,"yes")) //判定是否繼續刪除 printf("請按任意鍵以回車鍵結束返回上層菜單: "); break; }while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0); //判定結束 } else printf("對不起密碼錯誤!您不是治理員,不能使用此項功能!謝謝!再見! "); } void dingpiao()//訂票模塊 { int n; char a[10]; do { search();//調用查詢模塊 printf("請輸入您要訂的機票數以回車鍵結束: "); scanf("%d",&n);//讀取所訂機票數 if(n<0) { printf("請輸入有效的機票數! ");//判定機票數是否出錯 break; } if(s[i].count!=0&&s[i].count>=n)//判定是否出錯 { s[i].count=s[i].count-n; save();//調用保存函數 printf("訂票成功! "); break; } if(s[i].count<n)//判定是否出錯 { printf("請輸入有效的機票數: "); break; } printf("是否繼續? 請輸入yes或no以回車鍵結束: ");//判定是否繼續訂票 scanf("%s",a); }while(!strcmp(a,"yes"));//判定結束 } void tuipiao()//退票模塊 { int n; char a[10]; do { search();//調用查詢模塊 printf("請輸入您要退的機票數目: "); scanf("%d",&n);//輸入所退票數 if(n<0) //判定票數是否有效 printf("請輸入有效的機票數! "); s[i].count=s[i].count+n; save(); //調用保存模塊 printf("退票成功! "); printf("是否繼續? 請鍵入yes或no以回車鍵結束: ");//判定是否繼續退票 scanf("%s",a); }while(!strcmp(a,"yes"));//判定並跳出循環 getchar(); } void xiugai() //修改模塊 { struct xiu //定義結構體 { int no; char name1[20]; char name2[20]; char time[20]; int count; }x[1]; char j[10]; char f[]="2008china";//設置密碼 int n; printf("請輸入密碼並以回車鍵結束: "); scanf("%s",f);//讀取密碼 if(strcmp(f,"2008china")==0)//判定是否出錯 { read();//調用讀取模塊 do { printf( "請選擇修改方式: " "*1,按航班號修改: " "*2,按航線修改: "); printf("請在1---2中修改以回車鍵結束: "); scanf("%d",&n);//讀取修改方式 switch(n) { case 1:printf("請輸入航班號: "); scanf("%d",&x[0].no);//讀取航班號 break; case 2:printf("請輸入起始站: "); scanf("%s",x[0].name1);//讀取起始站 printf("請輸入終點站: "); scanf("%s",x[0].name2);//讀取終點站 break; } for(i=0;i<m;i++) { if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0)//判定輸出條件 { printf("航班號 起始站 終點站 時間 機票數 "); printf(PRINT); break; } if(s[i].num==x[0].no)//判定輸出條件 { printf("航班號 起始站 終點站 時間 機票數 "); printf(PRINT); break; } } x[0].no=0; //將結構體中的號爲零 printf("請輸入新航班號、起始站、終點站、時間(星期幾)、機票數: "); scanf("%d%s%s%s%d",&x[0].no,x[0].name1,x[0].name2,x[0].time,&x[0].count);//定義輸入格式 s[i].num=x[0].no;//替換航班號 strcpy(s[i].start,x[0].name1);//替換其始站 strcpy(s[i].over,x[0].name2);//替換終點站 strcpy(s[i].time,x[0].time);//替換時間 s[i].count=x[0].count;//替換機票數 save();//調用保存模塊 printf("是否繼續?請鍵入yes或no以回車鍵結束: "); scanf("%s",j); }while(strcmp(j,"yes")==0); //判定結束 } else printf("對不起密碼錯誤!您不是治理員,不能使用此項功能!謝謝!再見! "); }
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有