国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

飛機訂票系統(tǒng)設(shè)計

2019-11-17 05:01:16
字體:
供稿:網(wǎng)友
這是我編寫的程序請大家多多指教?。?!謝謝??!#include<stdio.h>  //標(biāo)準(zhǔn)輸入、輸出頭文件
#include<string.h>    //包含字符串函數(shù)處理頭文件
#include<stdlib.h>     //包含動態(tài)存儲與釋放函數(shù)頭文件
#define N 10000 
strUCt air         //定義結(jié)構(gòu)體數(shù)組
{
 int num;
 char start[20];
 char over[20];
 char time[10];
 int count;
}s[N];
int i;
int m=0;
#define void input();    //輸入航班信息
void print();    //輸出航班信息
void save();     //保存航班信息
void read();     //讀取航班信息
void search();   //查找航班信息
void shanchu();  //刪除航班信息
void dingpiao(); //訂票信息
void tu
ipiao();  //退票信息
void xiugai();   //修改信息
void main()
{
 
 int  j; printf("                       ★---您好,歡迎進(jìn)入中國民航治理系統(tǒng)!---★ "); 
    printf("================================================================================ ");    do
 {
  printf("           -------- ☆        1.輸入航班信息            ☆-------- "
               "     -------- ☆        2.瀏覽航班信息            ☆-------- "
      "           -------- ☆        3.修改航班信息            ☆-------- "
      "           -------- ☆        4.查找航班信息            ☆-------- "
      "           -------- ☆        5.刪除航班信息            ☆-------- "
      "           -------- ☆        6.訂票信息                ☆-------- "

         "           -------- ☆        7.退票信息                ☆-------- "
         "           -------- ☆        0.退出                    ☆-------- ");
     printf("================================================================================ "); printf("請在0-7中選擇以回車鍵結(jié)束: ");
  scanf("%d",&j);
  switch(j)
  {
  case 1: input();//調(diào)用輸入模塊
    break;
  case 2:print();//調(diào)用打印模塊
    break;
  case 3:xiugai();//調(diào)用修改模塊
    break;
  case 4:search();//調(diào)用查找模塊
    break;
  case 5:shanchu();  //調(diào)用刪除模塊
    break;
  case 6:dingpiao();//調(diào)用訂票模塊
    break;
  case 7:tuipiao();//調(diào)用退票模塊
    break; 
  case 0:;
   break;
  }
 }while(j!=0);     //判定結(jié)束
 printf("謝謝使用,再見! ");
}//主函數(shù)結(jié)束void input()//打印模塊程序
{
 char f[]="2008china";    //設(shè)置密碼
 int y;
 printf("請輸入密碼并以回車鍵結(jié)束: ");
 scanf("%s",f);          //讀取密碼
 if(strcmp(f,"2008china")==0)
 {
  printf("請依次輸入航班信息(機票數(shù)位0結(jié)束輸入): "
         "完成輸入信息請鍵入w以回車鍵結(jié)束 ");      //打印提示信息
  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("請輸入機票數(shù)(機票數(shù)為0結(jié)束輸入): ",m);
      scanf("%d",&s[i].count);//讀取機票數(shù)
  m++;
  
  printf("第%d個信息已經(jīng)輸完是否繼續(xù)?按任意鍵繼續(xù),按 0結(jié)束",m);
  scanf("%d",&y);
  if(y==0)
  
  
   }
 }
 else
  printf("輸入密碼錯誤!請檢查您的密碼是否正確!謝謝!再見! ");
}
void save()//保存模塊程序
{  
 FILE *fp,*fp1;//定義文件指針

 if((fp=fopen("chen.dat","wb"))==NULL)//打開文件并判定是否出錯 
 {
  printf("創(chuàng)建文件失敗! ");//打印出錯提示
  getchar();
  return;
 }
 if((fp1=fopen("hao.dat","wb"))==NULL)//打開文件并判定是否出錯 
 {
  printf("創(chuàng)建文件失敗! ");//打印出錯提示
  getchar();
  return;
 }
 
 for(i=0;i<m;i++)
  if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件寫入數(shù)據(jù),并判定是否出錯
 printf("向文件輸入數(shù)據(jù)失敗! ");
 fprintf(fp1,"%d",m);
 fclose(fp);//關(guān)閉文件
 fclose(fp1);//關(guān)閉文件
}
void read()//從文件讀取信息模塊
{
 FILE *fp,*fp1;//定義文件指針
 if((fp=fopen("chen.dat","rb"))==NULL)//打開文件,并判定是否出錯
 
 if((fp1=fopen("hao.dat","rb"))==NULL)//打開文件并判定是否出錯 
 {
  printf("創(chuàng)建文件失敗! ");//打印出錯提示
  getchar();
  return;
 }
 fscanf(fp1,"%d",&m);
 fclose(fp1);//關(guān)閉文件
 for(i=0;i<m;i++) 
 
 fclose(fp);//關(guān)閉文件
}
void print()//打印模塊
{
 char w[10];
 read();//調(diào)用讀取文件函數(shù)
 printf("航班號       起始站      終點站    時間       機票數(shù) ");
 for(i=0;i<m;i++)
 {
       printf(PRINT);//打印信息
 }
 printf("請按任意鍵回車鍵結(jié)束返回上層菜單以: ");
 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中選擇: "
      "按其他鍵以回車鍵結(jié)束返回主菜單: ");
 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();//調(diào)用讀取函數(shù)
 for(i=0;i<m;i++)
 {   
  if(strcmp(s[i].over,name1)==0strcmp(s[i].over,name2)==0)//按終點站起始站判定輸出條件
  {
   printf(" 查找航班信息成功! ");
   printf("航班號       起始站      終點站    時間       機票數(shù) ");
   printf(PRINT);//打印信息
   break;

  }
  if(s[i].num==no)//按航班號判定輸出條件
  { 
   printf(" 查找航班信息成功! ");
   printf("航班號       起始站      終點站    時間       機票數(shù) ");
   printf(PRINT);//打印信息
   break;
  }
 }
 no=0;//將航班號賦值為0
 printf("沒有您需要的信息或查找完畢: "
     "是否繼續(xù)查找?請鍵入yes或no以回車鍵結(jié)束 ");
  scanf("%s",ii);
}while(strcmp(ii,"yes")==0);//判定結(jié)束
}void shanchu()//刪除模塊
{
 char name1[20];
 char name2[20];
 char ii[10];
 char f[]="2008china";//設(shè)置密碼
 int no,n;
 printf("請輸入密碼并以回車鍵結(jié)束: ");
 scanf("%s",f);//讀取密碼
 if(strcmp(f,"2008china")==0)    //判定密碼是否正確
 {
  do
   {
    printf("請選擇刪除以方式回車鍵結(jié)束: ");//打印刪除方式菜單
    printf("*1.按航班號刪除 "
        "*2.按航線刪除 "
        "*0.返回 ");
    printf("請在0-2中選擇以回車鍵結(jié)束: ");
    scanf("%d",&n);//讀取刪除方式
    if(n==0)
     break;    //跳出循環(huán)
    switch(n)
    {
    case 1:
     printf("請輸入航班號: ");
     scanf("%d",&no);//讀取航班號
     read();//調(diào)用讀取函數(shù)
     break;//跳出循環(huán)
    case 2:
     printf("請輸入起始站 名稱: ");
     scanf("%s",name1);//讀取起始站
     printf("請輸入終點站名稱: ");
     scanf("%s",name2);//讀取終點站
     read();//調(diào)用讀取函數(shù)
     break;//跳出循環(huán)
    }
    for(i=0;i<m;i++)
    
     
    }
     printf("查找完畢或沒有這個信息 ");
        printf("是否繼續(xù)刪除 ");    
    printf("請鍵入yes或no以回車鍵結(jié)束 ");
    scanf("%s",ii);       //讀取是否繼續(xù)信息
    save(); //調(diào)用讀取函數(shù)
    if(!strcmp(ii,"yes")) //判定是否繼續(xù)刪除    
     printf("請按任意鍵以回車鍵結(jié)束返回上層菜單: ");
    break;
   }while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0);  //判定結(jié)束
 }
 else
  printf("對不起密碼錯誤!您不是治理員,不能使用此項功能!謝謝!再見! ");
}
  void dingpiao()//訂票模塊
{
 int n;
 char a[10];

 do
 {
  search();//調(diào)用查詢模塊
  printf("請輸入您要訂的機票數(shù)以回車鍵結(jié)束: ");
  scanf("%d",&n);//讀取所訂機票數(shù)
  if(n<0)
  {
   printf("請輸入有效的機票數(shù)! ");//判定機票數(shù)是否出錯
   break;
  }
   if(s[i].count!=0&&s[i].count>=n)//判定是否出錯
  {
   s[i].count=s[i].count-n;
   save();//調(diào)用保存函數(shù)
   printf("訂票成功! ");
   break;
  }
  if(s[i].count<n)//判定是否出錯
  {
   printf("請輸入有效的機票數(shù): ");
      break; 
  }
  printf("是否繼續(xù)? 請輸入yes或no以回車鍵結(jié)束: ");//判定是否繼續(xù)訂票
  scanf("%s",a);
 }while(!strcmp(a,"yes"));//判定結(jié)束
 
}void tuipiao()//退票模塊
{
 int n;
 char a[10];
 do
 {
  search();//調(diào)用查詢模塊
  printf("請輸入您要退的機票數(shù)目: ");
  scanf("%d",&n);//輸入所退票數(shù)
  if(n<0) //判定票數(shù)是否有效
   printf("請輸入有效的機票數(shù)! ");
  s[i].count=s[i].count+n;
  save(); //調(diào)用保存模塊
  printf("退票成功! ");
  printf("是否繼續(xù)? 請鍵入yes或no以回車鍵結(jié)束: ");//判定是否繼續(xù)退票
  scanf("%s",a);
 }while(!strcmp(a,"yes"));//判定并跳出循環(huán) getchar();
}
void xiugai()   //修改模塊
{
 struct xiu    //定義結(jié)構(gòu)體
 {
  int no;
  char name1[20];
  char name2[20];
  char time[20];
  int count;
 }x[1];
 char j[10];
 char f[]="2008china";//設(shè)置密碼
 int n;
 printf("請輸入密碼并以回車鍵結(jié)束: ");
 scanf("%s",f);//讀取密碼
 if(strcmp(f,"2008china")==0)//判定是否出錯
 {
  read();//調(diào)用讀取模塊
  do
  {
   printf( "請選擇修改方式: "
              "*1,按航班號修改: "
           "*2,按航線修改: ");
   printf("請在1---2中修改以回車鍵結(jié)束: ");
   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("航班號       起始站      終點站    時間       機票數(shù) ");

     printf(PRINT);
     break;
    }
       if(s[i].num==x[0].no)//判定輸出條件
    { 
     printf("航班號       起始站      終點站    時間       機票數(shù) ");
     printf(PRINT);
     break;
    }
   }
   x[0].no=0;            //將結(jié)構(gòu)體中的號為零
   printf("請輸入新航班號、起始站、終點站、時間(星期幾)、機票數(shù): ");
   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;//替換機票數(shù)
      save();//調(diào)用保存模塊
      printf("是否繼續(xù)?請鍵入yes或no以回車鍵結(jié)束: ");
      scanf("%s",j);
  }while(strcmp(j,"yes")==0);  //判定結(jié)束
 }
 else
  printf("對不起密碼錯誤!您不是治理員,不能使用此項功能!謝謝!再見! ");



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 寿宁县| 东兰县| 余江县| 深州市| 长垣县| 荔波县| 泸定县| 灌阳县| 进贤县| 财经| 绥江县| 双城市| 平邑县| 错那县| 定西市| 邳州市| 托克托县| 平潭县| 镇远县| 大方县| 喀喇沁旗| 兴业县| 墨脱县| 闻喜县| 天峻县| 界首市| 大荔县| 廊坊市| 辉县市| 丰城市| 芜湖县| 安阳县| 惠东县| 丹巴县| 从化市| 姜堰市| 东城区| 鲁山县| 老河口市| 玛纳斯县| 开江县|