飞机订票系统设计

2016-02-19 20:54 9 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是飞机订票系统设计,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

这是我编写的程序请大家多多指教!!!谢谢!!#includestdio.h  //标准输入、输出头文件
  #includestring.h    //包含字符串函数处理头文件
  #includestdlib.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;iN;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;im;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;im;i++) 
   
   fclose(fp);//关闭文件
  }
  void print()//打印模块
  {
   char w[10];
   read();//调用读取文件函数
   printf("航班号       起始站      终点站    时间       机票数 ");
   for(i=0;im;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;im;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;im;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(n0)
    {
     printf("请输入有效的机票数! ");//判定机票数是否出错
     break;
    }
     if(s[i].count!=0&&s[i].count=n)//判定是否出错
    {
     s[i].count=s[i].count-n;
     save();//调用保存函数
     printf("订票成功! ");
     break;
    }
    if(s[i].countn)//判定是否出错
    {
     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(n0) //判定票数是否有效
     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;im;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("对不起密码错误!您不是治理员,不能使用此项功能!谢谢!再见! ");
  } 
  

来源:https://www.tulaoshi.com/n/20160219/1624787.html

延伸阅读
标签: 生活常识
12306为什么提示订票失败_12306提示订票失败原因   12306为什么提示订票失败_12306提示订票失败原因 图老师阅读配图 1.你的身份信息已购买过一张同一车次的火车票,再购买的时候就会提示:订票失败 2.如果在同一个城市的两个火车站都有购票,也会提示订票失败 行程冲突。 3.如果你坐的那一趟火车人多,你想先买...
标签: 手机游戏 IOS
《全民飞机大战》宠物系统更新解析 对于《全民飞机大战》宠物系统更新哪些内容好多小伙伴都不太明白,图老师图老师小编就来帮各位小伙伴来解答一下,感兴趣的小伙伴就认真的往下面看咯。 获得的宠物碎片可以合成相应的宠物。不同品质宠物合成所需要的碎片数量不同,当玩家集齐一定数量对应宠物的碎片时就可以合成完整的宠物,并且合成后...
春运期间12306网站(http://www.12306.cn/)较难登录,支付起来也比较困难,客流量较大时建议大家使用电话购票,火车票电话订票号码95105105。在电话订票前一定要先熟悉整体流程,有条不紊的订票。以下介绍电话订火车票流程、技巧。 自2013年1月1日起,通过电话预订车票的旅客可凭订票时乘车人有效身份证件,到全国任一车站窗口或...
标签: 手机 12306
12306手机客户端 12306手机客户端是已经被交通部兼并的铁道部旗下国铁路客户服务中心12306推出的官方12306手机客户端,12306手机客户端苹果版与12306.cn网站共享用户、订单和票额等信息,并使用统一的购票业务规则,12306手机客户端手机购票更方便。并使用统一的购票业务规则,软件具有车票预订、在线支付、改签、退票、订单查询、常用联...
12308汽车订票怎么用   1)打开,进入首页后,在汽车票预定页面输入出发地、到达地以及乘车日期后,点击。 2)选择一张需要购买的发车,跳转到填写订单页面,输入姓名、手机号以及身份证号码后点击的按钮。   3)跳转至支付订单后,选择一种支付方式,接着点击,输入支付密码后就可以预订成功啦。

经验教程

847

收藏

11
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部