⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.h

📁 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中
💻 H
字号:
#include<stdio.h>     /*标准输入、输出头文件*/
#include<string.h>    /*包含字符串函数处理头文件*/
#include<stdlib.h>     /*包含动态存储与释放函数头文件*/
#define N 1000
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\n",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()
{
 return;
 int  j;
 printf("                       ★---您好,欢迎进入中国民航管理系统!---★\n"); 
    printf("================================================================================\n");
    do
 {
  printf("           -------- ☆        1.输入航班信息            ☆-------- \n\n"
         "           -------- ☆        2.浏览航班信息            ☆-------- \n\n"
         "           -------- ☆        3.修改航班信息            ☆-------- \n\n"
         "           -------- ☆        4.查找航班信息            ☆-------- \n\n"
         "           -------- ☆        5.删除航班信息            ☆-------- \n\n"
         "           -------- ☆        6.订票信息                ☆-------- \n\n" 
         "           -------- ☆        7.退票信息                ☆-------- \n\n"
         "           -------- ☆        0.退出                    ☆-------- \n\n");
     printf("================================================================================\n");
 printf("请在0-7中选择以回车键结束:\n\n");
  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("谢谢使用,再见!\n");
}/*主函数结束*/
void input() /*打印模块程序*/
{ 
 char f[]="202";    /*设置密码*/
 int y;
 printf("请输入密码并以回车键结束:\n\n");
 scanf("%s",f);          /*读取密码*/
 if(strcmp(f,"202")==0)
 {
  printf("请依次输入航班信息(机票数位0结束输入):\n\n"
         "完成输入信息请键入w以回车键结束\n\n");      /*打印提示信息*/
  printf("--------------------------------------------------------------------------\n");
   for(i=0;i<N;i++)
   {
  
  printf("请输入航班号:\n");  
      scanf("%d",&s[i].num); /*读取航班号*/
  printf("请输入起始站:\n");
      scanf("%s",s[i].start);/*读取起始站*/
  printf("请输入终点站:\n");
      scanf("%s",s[i].over);/*读取终点站*/
  printf("请输入时间:\n");
      scanf("%s",s[i].time);/*读取运行时间*/
  printf("请输入机票数(机票数为0结束输入):\n",m);
      scanf("%d",&s[i].count);/*读取机票数*/
  m++;
  
  printf("第%d个信息已经输完是否继续?按任意键继续,按 0结束",m);
  scanf("%d",&y);
  if(y==0)
  {
   save();/*将结构体信息存盘*/
   print();/*输出输入的航班信息*/
   break;
  }
  
   }
 
 }
 else
  printf("输入密码错误!请检查您的密码是否正确!谢谢!再见!\n\n");
}
void save()/*保存模块程序*/
{   
 FILE *fp,*fp1;/*定义文件指针*/
 if((fp=fopen("chen.dat","wb"))==NULL)/*打开文件并判断是否出错 */ 
 {
  printf("创建文件失败!\n\n");/*打印出错提示*/
  getchar();
  return;
 }
 if((fp1=fopen("hao.dat","wb"))==NULL)/*打开文件并判断是否出错 */ 
 {
  printf("创建文件失败!\n\n");/*打印出错提示*/
  getchar();
  return;
 }
 
 for(i=0;i<m;i++)
  if(fwrite(&s[i],sizeof(struct air),1,fp)==0)/*向文件写入数据,并判断是否出错*/
 printf("向文件输入数据失败!\n\n");
 fprintf(fp1,"%d",m);
 fclose(fp);/*关闭文件*/
 fclose(fp1);/*关闭文件*/
}

void read()/*从文件读取信息模块*/
{
 FILE *fp,*fp1;/*定义文件指针*/
 if((fp=fopen("chen.dat","rb"))==NULL)/*打开文件,并判断是否出错*/
 {
  printf("出错,请检查文件是否存在,按任意键返回住菜单");/*打印出错提示*/
  getchar();
 }
 if((fp1=fopen("hao.dat","rb"))==NULL)/*打开文件并判断是否出错 */ 
 {
  printf("创建文件失败!\n\n");/*打印出错提示*/
  getchar();
  return;
 }
 fscanf(fp1,"%d",&m);
 fclose(fp1);         /*关闭文件*/
 for(i=0;i<m;i++) 
 {
  fread(&s[i],sizeof(struct air),1,fp); /*从文件中读取信息*/
 }
 fclose(fp);/*关闭文件*/
}
void print()/*打印模块*/
{
 char w[10];
 read();/*调用读取文件函数*/
 printf("航班号       起始站      终点站    运行时间       机票数\n");
 for(i=0;i<m;i++)
 {
       printf(PRINT);/*打印信息*/
 }
 printf("请按任意键回车键结束返回上层菜单以:\n");
 scanf("%s",w);
}
   
void search()/*查询模块*/
{
 char name1[20];
 char name2[20];
 char ii[10];
 int n,no;
do
{
 printf("请选择查找方式:\n\n");/*打印查询方式菜单*/
 printf("1.按航班号查找\n\n"
     "2.按终点站查找\n\n"
     "3.按航线查找\n\n"
     "0.返回\n\n");
 printf("请在0-3中选择:\n\n"
      "按其他键以回车键结束返回主菜单:\n\n");
 scanf("%d",&n);/*读取查找方式*/
 if(n==0)
  break;
 switch(n)
 {
 case 1:
  printf("请输入航班号:\n");
  scanf("%d",&no);/*航班号*/
  break;
 case 2:
  printf("请输入终点站名称:\n");
  scanf("%s",name2);/*读取终点站*/
  break;
 case 3:
  printf("请输入起始站名称:\n");
  scanf("%s",name1);/*读取起始站*/
  printf("请输入终点站名称:\n");
  scanf("%s",name2);/*终点站*/
  break;
 }
 read();/*调用读取函数*/
 for(i=0;i<m;i++)
 {    
  if(strcmp(s[i].over,name1)==0||strcmp(s[i].over,name2)==0)/*按终点站起始站判断输出条件*/
  {
   printf("\n查找航班信息成功!\n");
   printf("航班号       起始站      终点站    运行时间       机票数\n");
   printf(PRINT);/*打印信息*/
   break;
  }
  if(s[i].num==no)/*按航班号判断输出条件*/
  {  
   printf("\n查找航班信息成功!\n");
   printf("航班号       起始站      终点站    运行时间       机票数\n");
   printf(PRINT);/*打印信息*/
   break;
  } 
 }
 no=0;/*将航班号赋值为0*/
 printf("没有您需要的信息或查找完毕:\n\n"
     "是否继续查找?请键入yes或no以回车键结束\n");
  scanf("%s",ii);
}while(strcmp(ii,"yes")==0);/*判断结束*/
}
void shanchu()/*删除模块*/
{
 char name1[20];
 char name2[20];
 char ii[10];
 char f[]="202"; /*设置密码*/
 int no,n; 
 printf("请输入密码并以回车键结束:\n\n");
 scanf("%s",f);/*读取密码*/
 if(strcmp(f,"202")==0)    /*判断密码是否正确*/
 {
  do 
   {
    printf("请选择删除以方式回车键结束:\n\n");/*打印删除方式菜单*/
    printf("*1.按航班号删除\n\n"
        "*2.按航线删除\n\n"
        "*0.返回\n\n");
    printf("请在0-2中选择以回车键结束:\n");
    scanf("%d",&n);/*读取删除方式*/
    if(n==0)
     break;    /*跳出循环*/
    switch(n)
    {
    case 1:
     printf("请输入航班号:\n");
     scanf("%d",&no);/*读取航班号*/
     read();/*调用读取函数*/
     break;/*跳出循环*/
    case 2:
     printf("请输入起始站 名称:\n");
     scanf("%s",name1);/*读取起始站*/
     printf("请输入终点站名称:\n");
     scanf("%s",name2);/*读取终点站*/
     read();/*调用读取函数*/
     break;/*跳出循环*/
    }
    for(i=0;i<m;i++)
    {
     if(s[i].num==no||strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0)/*判断输入信息是否存在*/
     {       
      s[i]=s[m-1];
      m--;
     }
     
    }
     printf("查找完毕或没有这个信息\n\n");
        printf("是否继续删除\n");     
    printf("请键入yes或no以回车键结束\n");
    scanf("%s",ii);       /*读取是否继续信息*/
    save(); /*调用读取函数*/
    if(!strcmp(ii,"yes")) /*判断是否继续删除*/   
     printf("请按任意键以回车键结束返回上层菜单:\n");
    break;
   }while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0);  /*判断结束*/
 }
 else
  printf("对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!\n\n");
}
void dingpiao()/*订票模块*/
{
 int n;
 char a[10];
 do
 {
  search();/*调用查询模块*/
  printf("请输入您要订的机票数以回车键结束:\n");
  scanf("%d",&n);/*读取所订机票数*/
  if(n<0)
  {
   printf("请输入有效的机票数!\n");/*判断机票数是否出错*/
   break;
  }
   if(s[i].count!=0&&s[i].count>=n)/*判断是否出错*/
  {
   s[i].count=s[i].count-n;
   save();/*调用保存函数*/
   printf("订票成功!\n\n");
   break;
  }
  if(s[i].count<n)/*判断是否出错*/
  {
   printf("请输入有效的机票数:\n");
      break; 
  }
  printf("是否继续? 请输入yes或no以回车键结束:\n");/*判断是否继续订票*/
  scanf("%s",a);
 }while(!strcmp(a,"yes"));/*判断结束*/
 
}
void tuipiao()/*退票模块*/
{
 int n;
 char a[10];
 do
 {
  search();/*调用查询模块*/
  printf("请输入您要退的机票数目:\n");
  scanf("%d",&n);/*输入所退票数*/
  if(n<0) /*判断票数是否有效*/
   printf("请输入有效的机票数!\n");
  s[i].count=s[i].count+n;
  save(); /*调用保存模块*/
  printf("退票成功!\n\n");
  printf("是否继续? 请键入yes或no以回车键结束:\n\n");/*判断是否继续退票*/
  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[]="202";/*设置密码*/
 int n;
 printf("请输入密码并以回车键结束:\n\n");
 scanf("%s",f);/*读取密码*/
 if(strcmp(f,"202")==0)/*判断是否出错*/
 {
  read();/*调用读取模块*/
  do
  {
   printf( "请选择修改方式:\n\n"
              "*1,按航班号修改:\n\n"
           "*2,按航线修改: \n\n");
   printf("请在1---2中修改以回车键结束:\n\n");
   scanf("%d",&n);/*读取修改方式*/
   switch(n)
   {
   case 1:printf("请输入航班号:\n");
    scanf("%d",&x[0].no);/*读取航班号*/
    break;
   case 2:printf("请输入起始站:\n");
    scanf("%s",x[0].name1);/*读取起始站*/
    printf("请输入终点站:\n");
    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("航班号       起始站      终点站    运行时间       机票数\n");
        printf(PRINT);
        break;}
    if(s[i].num==x[0].no)/*判断输出条件*/
      {
        printf("航班号       起始站      终点站    运行时间       机票数\n");
        printf(PRINT);
        break;
    }
   }
   x[0].no=0;           /* 将结构体中的航班号置为零*/
   printf("请输入新航班号、起始站、终点站、运行时间(星期几)、机票数:\n");
   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以回车键结束:\n\n");
      scanf("%s",j);
  }while(strcmp(j,"yes")==0);  /*判断结束*/
  printf("对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!\n\n");
}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -