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

📄 air.c

📁 数据结构课程设计:(1)民航航班信息服务系统 (2)运动会分数统计 包括源代码、EXE文件、课程设计报告!比较全。
💻 C
📖 第 1 页 / 共 3 页
字号:
            if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)) {
                day+=31;
                return(day-Da);
            }
            else {
                if(month==2)  {
                    if(year%400==0)
                    leap=1;
                    else {
                        if((year%100!=0)&&(year%4==0))
                        leap=1;
                        else
                        leap=0;
                    }
                    if(leap==1)
                    return(day+29-Da);
                    else
                    return(day+28-Da);
                }
                else
                return(day+30-Da);
            }
        }
    } 
}
/*检查客户信息*/
checkguestonly(struct guest *h,char name[20])
{
    struct guest *p;
    int i;
    char input[20];
    p=h;
    strcpy(input,name);
    for(i=0;(i<5)&&(p!=NULL);i++)
    {
		p=h;
        while(p!=NULL) {
			if(strcmp(input,p->name)==0) {
				printf("已经有该用户了,请输入另外的用户名:");
                scanf("%s",&input); break;
			}
            else p=p->next;
		}
    }
    if(i<5)
    strcpy(name,input);
    else {
		printf("错误输入太多,系统自动退出!");
        exit(0);
    }
}
/*查找函数*/
void search()
{
    int i;
    char input[20];
    char linenum[20];
    char num[20];
    do {
        system("cls");
        printf("请输入查询的方式:\n");
        printf("1.查询各航线的航班情况\n");
        printf("2.查询各航班的座位情况\n");
        printf("3.查询各航班的机票发售情况及余额\n");
        printf("0.退出\n");
        scanf("%d",&i);
        if(i==0) break;
        else {
			switch(i) {
			case 1:printf("请输入要查询的航线号:");
                   scanf("%s",&linenum);
                   xiansearch(linenum); break;
            case 2:printf("请输入你要查询的航班:");
                   scanf("%s",&num);
                   weisearch(num); break;
            case 3:printf("要查询的航班号:\n");
                   piaosearch(); break;
			}
            printf("是否继续查询?(yes/no)");
            scanf("%s",&input);
		} 
	}
	while(strcmp(input,"yes")==0); 
}
/*航线查找*/
xiansearch(char linenum[20])
{
    int i;
    printf("航线号 航班号 A等舱 B等舱 C等舱 起飞日期   起飞时间 起飞地点 终点\n");
    for(i=0;i<m;i++)
    {
        if(strcmp(s[i].linenum,linenum)==0)
        printf(Print1);
    }
}
/*位置查找*/
weisearch(char num[20])
{
    int i;
    printf("航线号 航班号 A等舱 B等舱 C等舱 起飞日期   起飞时间 起飞地点 终点\n");
    for(i=0;i<m;i++)
    {
        if(strcmp(s[i].num,num)==0)
        printf(Print1);
    }
}
/*查找票数*/
piaosearch()
{
    int i;
    printf("航线号 航班号 A等舱售出 剩余 B等舱售出 剩余 C等舱售出 剩余\n");
	for(i=0;i<m;i++)
    { 
        if(checkday(s[i].year,s[i].month,s[i].day,Ye,Mo,Da)<=7)
        printf(Print2);
    } 
}
struct guest *create()
{
    struct guest *h;
    h=NULL;
    return(h);
}
struct guest *book(struct guest *h,LinkQueue Q[N])
{
    struct guest *c;
    char input[10];
    int ch,i;
    int leap=0;
    c=(struct guest *)malloc(Len);
    printf("请输入你的用户名:");
    scanf("%s",&c->name);
    checkguestonly(h,c->name);
    printf("请输入你的航线号:");
    scanf("%s",&c->linenum);
    printf("请输入你的航班号:");
    scanf("%s",&c->num);
    printf("请输入航班时间:\n");
    printf("航班时间 年份:");
    scanf("%d",&c->year);
    c->year=checkyear(c->year);
    printf("航班时间 月份:");
    scanf("%d",&c->month);
    c->month=checkmonth(c->month);
    printf("航班时间 日期:");
    scanf("%d",&c->day);
    c->day=checkdata(c->day,c->month,c->year);
    printf("请输入起飞时间:\n");
    printf("起飞时间 hour(以24小时制)");
    scanf("%d",&c->hour);
    c->hour=checkhour(c->hour);
    printf("起飞时间 minutes");
    scanf("%d",&c->minute);
    c->minute=checkminute(c->minute);
    printf("请输入你要买的座位等级(A,B,C):");
    scanf("%s",&c->seatlevel);
    printf("请输入你要购买的票数:");
    scanf("%d",&c->ticketnum);
    for(i=0;i<m;i++)
    {
        if((strcmp(s[i].linenum,c->linenum)==0)&&(strcmp(s[i].num,c->num)==0)&&(s[i].year==c->year)
			&&(s[i].month==c->month)&&(s[i].day==c->day)&&(s[i].hour==c->hour)&&(s[i].minute==c->minute))
        break;
     }
    if(i==m) {
        printf("没有该航班信息,请重新检查!\n");
    }
    else  {
        if(checkday(s[i].year,s[i].month,s[i].day,Ye,Mo,Da)<=7) {
             if((strcmp(c->seatlevel,"A")==0)||(strcmp(c->seatlevel,"a")==0)) {
                 if(c->ticketnum<s[i].remainA) {
                      s[i].remainA-=c->ticketnum;
                      leap=1;
                      printf("订票成功!\n");
                      scanf("%s",&input);
                  }    
                 else {
                      printf("你要订的票数不够!\n");
                      printf("你可以选择以下方式解决:\n");
                      printf("1.购买其他等级的机票 \n");
                      printf("2.候补\n");
                      printf("0.退出\n");
                      printf("请输入:\n");
                      scanf("%d",&ch);
                      switch(ch) {
                         case 1:printf("剩下的机舱票数情况\n");
                                printf("A等舱剩下票数--B等舱剩下票数--C等舱剩下票数\n");
                                printf("%d %d %d\n",s[i].remainA,s[i].remainB,s[i].remainC);
                                leap=book2(c,s[i].remainA,s[i].remainB,s[i].remainC); break;
                         case 2:EnQueue(&Q[i],c);
                                printf("候补完成!\n");
                                PrintQueue(&Q[i]);
                                scanf("%s",&input); break;
                     }
                  }             
			 }
             if((strcmp(c->seatlevel,"B")==0)||(strcmp(c->seatlevel,"b")==0)) {
                   if(c->ticketnum<s[i].remainB) {
                      s[i].remainB-=c->ticketnum;
                      leap=1;
                      printf("订票成功!\n");
                      scanf("%s",&input);
                  }
                 else {
                      printf("你要订的票数不够!\n");
                      printf("你可以选择以下方式解决:\n");
                      printf("1.购买其他等级的机票\n");
                      printf("2.候补\n");
                      printf("0.退出\n");
                      printf("请选择:\n");
                      scanf("%d",&ch);
                      switch(ch) {
					  case 1:printf("剩下的机舱票数情况\n");
                             printf("A等舱剩下票数--B等舱剩下票数--C等舱剩下票数\n");
                             printf("%d      %d      %d\n",s[i].remainA,s[i].remainB,s[i].remainC);
                             leap=book2(c,s[i].remainA,s[i].remainB,s[i].remainC); break;
                      case 2:EnQueue(&Q[i],c);
                             printf("候补完成!\n");
                             PrintQueue(&Q[i]);
                             scanf("%s",&input); break;
					  }
                 }            
			 } 
               if((strcmp(c->seatlevel,"c")==0)||(strcmp(c->seatlevel,"C")==0)) {
                   if(c->ticketnum<s[i].remainC) {
                      s[i].remainC-=c->ticketnum;
                      leap=1;
                      printf("订票成功!\n");
                      scanf("%s",&input);
                  }
                 else {
                      printf("你要订的票数不够!\n");
                      printf("你可以选择以下方式解决:\n");
                      printf("1.购买其他等级的机票\n");
                      printf("2.候补\n");
                      printf("0.退出\n");
                      printf("请选择:\n");
                      scanf("%d",&ch);
                      switch(ch) {
                         case 1:printf("剩下的机舱票数情况\n");
                                printf("A等舱剩下票数--B等舱剩下票数--C等舱剩下票数\n");
                                printf("%d       %d        %d\n",s[i].remainA,s[i].remainB,s[i].remainC);
                                leap=book2(c,s[i].remainA,s[i].remainB,s[i].remainC); break;
                         case 2:EnQueue(&Q[i],c);
                                printf("候补完成!\n");
                                PrintQueue(&Q[i]);
                                scanf("%s",&input); break;
					  }
				 }
              }
          }
          else  {
              printf("你想购买的机票时间比当前时间早8天,现在不能进行买票!\n");
              printf("你是否选择预定你想要的机票(yes/no):");
              scanf("%s",&input);
              if(strcmp(input,"yes")==0) {
                EnQueue(&Q[i],c);
                printf("预订完成!");
                scanf("%s",&input);
              }
          }
   }
   if(leap==1) {
    c->next=h;
    h=c;
   }
   return(h);
}
int book2(struct guest *p,int remainA,int remainB,int remainC)
{
    int leap=0;
    char input[10];
            do {
            printf("请输入你想要的机票等级:");
            scanf("%s",&p->seatlevel);
            printf("请输入你要购买的票数:");
            scanf("%d",&p->ticketnum);
            if((strcmp(p->seatlevel,"A")==0)||(strcmp(p->seatlevel,"a")==0)) {
              if(p->ticketnum<=remainA) {
				  remainA-=p->ticketnum;
                  leap=1;
                  printf("订票成功!\n");
                  scanf("%s",&input); break;
              }   
              else {
                  printf("票数不够,是否继续(yes/no):");
                  scanf("%s",&input);
              }
            }
           if((strcmp(p->seatlevel,"B")==0)||(strcmp(p->seatlevel,"b")==0)) {
             if(p->ticketnum<remainB) {
              remainB-=p->ticketnum;
              leap=1;
              printf("订票成功!\n");
              scanf("%s",&input); break;
             }
             else {
                 printf("票数不够,是否继续(yes/no):");
                 scanf("%s",&input);
             }
           }
           if((strcmp(p->seatlevel,"c")==0)||(strcmp(p->seatlevel,"C")==0)) {
             if(p->ticketnum<remainC) {
              remainC-=p->ticketnum;
              leap=1;
              printf("订票成功!\n");
              scanf("%s",&input); break;
             }
             else {
                 printf("票数不够,是否继续(yes/no):");
                 scanf("%s",&input);
             }
           }
          }
			while(strcmp(input,"yes")==0);
            return(leap);
}
struct guest *refund(struct guest *h)
{
    int i;
    struct guest *p,*q;
    char input[20];
    char name[20];
    p=h;
    printf("是否进行退票(yes/no):");
    scanf("%s",&input);

⌨️ 快捷键说明

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