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

📄 air.c

📁 数据结构课程设计:(1)民航航班信息服务系统 (2)运动会分数统计 包括源代码、EXE文件、课程设计报告!比较全。
💻 C
📖 第 1 页 / 共 3 页
字号:
    if(strcmp(input,"yes")==0) {
        printf("请输入用户名:");
        scanf("%s",&name);
        while((strcmp(name,p->name)!=0)&&(p!=NULL)) {
                    q=p;
                    p=p->next;
                }
                if(strcmp(name,p->name)==0) {
                    for(i=0;i<m;i++)
                        {
                            if((strcmp(s[i].linenum,p->linenum)==0)&&(strcmp(s[i].num,p->num)==0)&&(s[i].year==p->year)
								&&(s[i].month==p->month)&&(s[i].day==p->day)&&(s[i].hour==p->hour)&&(s[i].minute==p->minute))
                            {
                                if((strcmp(p->seatlevel,"a")==0)||(strcmp(p->seatlevel,"A")==0))
                                s[i].remainA+=p->ticketnum;
                                if((strcmp(p->seatlevel,"b")==0)||(strcmp(p->seatlevel,"B")==0))
                                s[i].remainB+=p->ticketnum;
                                if((strcmp(p->seatlevel,"c")==0)||(strcmp(p->seatlevel,"C")==0))
                                s[i].remainC+=p->ticketnum; break;
                            }
                        }
                        if(p==h)
                        h=p->next;
                        else
                        q->next=p->next;
                        free(p);
                        printf("退票成功!\n");
                        printf("按任意键回车返回\n");
                        scanf("%s",&input);
                  }
                  else {
                      printf("没有你的用户名");
                      scanf("%s",&input);
                  }
    }
    return(h);
}
void print(struct guest *h)
{
    struct guest *p;
    char ch[10];
    p=h;
    if(h!=NULL)
    do {
		printf(Print3);
        p=p->next;
	}
	while(p!=NULL);
    scanf("%s",&ch);
}
int InitQueue(LinkQueue *Q) 
{
    Q->front=Q->rear=(QNode*)malloc(sizeof(QNode));
    if(!Q->front)
    exit(0); 
    Q->front->next=NULL;
    return(1);
}
int EnQueue(LinkQueue *Q,struct guest *c)
{
    QNode *p;
    p=(QNode*)malloc(sizeof(QNode));
    if(!p) 
    exit(0);
    strcpy(p->name,c->name);
    strcpy(p->linenum,c->linenum);
    strcpy(p->num,c->num);
    strcpy(p->seatlevel,c->seatlevel);
    p->hour=c->hour;
    p->minute=c->minute;
    p->year=c->year;
    p->month=c->month;
    p->day=c->day;
    p->ticketnum=c->ticketnum;
    p->next=NULL;
    Q->rear->next=p;
    Q->rear=p;
    return(1);
}
int DeQueue(LinkQueue *Q)
{
    QNode *p;
    if(Q->front==Q->rear) return(0);
    p=Q->front->next;
    Q->front->next=p->next;
    if(Q->rear==p)
    Q->rear=Q->front;
    free(p);
    return(1);
}
int PrintQueue(LinkQueue *Q)
{
    QNode *p;
    if(Q->front==Q->rear) return 0;
    p=Q->front->next;
    for(;p!=NULL;p=p->next)
        printf(Print3);
        return 1;
}
int GettopQueue(LinkQueue *Q,int remainA,int remainB,int remainC) 
{
    int leap=0;
    char input[20];
           if((strcmp(Q->front->next->seatlevel,"A")==0)||(strcmp(Q->front->next->seatlevel,"a")==0)) {
               if(Q->front->next->ticketnum<=remainA)
               leap=1;
               else {
                   printf("票数不够");
                   scanf("%s",&input);
			   }
		   }
           if((strcmp(Q->front->next->seatlevel,"B")==0)||(strcmp(Q->front->next->seatlevel,"b")==0)) {
               if(Q->front->next->ticketnum<=remainB)
                   leap=1;
               else {
				   printf("票数不够");
                   scanf("%s",&input);
			   }
           }
           if((strcmp(Q->front->next->seatlevel,"c")==0)||(strcmp(Q->front->next->seatlevel,"C")==0)) {
               if(Q->front->next->ticketnum<=remainC)
               leap=1;
               else {
				   printf("票数不够");
                   scanf("%s",&input);
			   }
		   }
           return(leap);
}
struct guest *manage(struct guest *h,LinkQueue Q[N])
{
    char key[]="hh";
    struct guest *c;
    char input[20];
    char linenum[20];
    char num[20];
    int year,month,day;
    int hour,minute;
    int i;
    printf("输入密码:");
    scanf("%s",&input);
    if(strcmp(input,key)!=0)
    printf("密码错误!\n");
    else {
        printf("请选择进行以下操作:\n");
        printf("1.候补\n");
        printf("2.预订\n");
        printf("0.退出\n");
        printf("请输入:");
        scanf("%d",&i);
        switch(i) {
            case 0:break;
            case 1:printf("是否进行候补操作(yes/no):");
                   scanf("%s",&input);
                   if(strcmp(input,"yes")==0) {
                    printf("请输入你要进行候补的信息:\n");
                    printf("请输入你的航线号:");
                    scanf("%s",&linenum);
                    printf("请输入你的航班号:");
                    scanf("%s",&num);
                    printf("请输入航班时间:\n");
                    printf("航班时间 年份:");
                    scanf("%d",&year);
                    year=checkyear(year);
                    printf("航班时间 月份:");
                    scanf("%d",&month);
                    month=checkmonth(month);
                    printf("航班时间 日份:");
                    scanf("%d",&day);
                    day=checkdata(day,month,year);
                    printf("请输入起飞时间:\n");
                    printf("起飞的小时(以24小时制):");
                    scanf("%d",&hour);
                    hour=checkhour(hour);
                    printf("起飞的分钟:");
                    scanf("%d",&minute);
                    minute=checkminute(minute);
                    for(i=0;i<m;i++)
                    {
                        if((strcmp(s[i].linenum,linenum)==0)&&(strcmp(s[i].num,num)==0)&&(s[i].year==year)
							&&(s[i].month==month)&&(s[i].day==day)&&(s[i].hour==hour)&&(s[i].minute==minute))
                        break;
                    }
                    PrintQueue(&Q[i]);
                    scanf("%s",&input);
                    if(GettopQueue(&Q[i],s[i].remainA,s[i].remainB,s[i].remainC)==1)  {
                        if((strcmp(Q[i].front->next->seatlevel,"a")==0)||(strcmp(Q[i].front->next->seatlevel,"A")==0))
                        s[i].remainA-=Q[i].front->next->ticketnum;
                        if((strcmp(Q[i].front->next->seatlevel,"b")==0)||(strcmp(Q[i].front->next->seatlevel,"B")==0))
                        s[i].remainB-=Q[i].front->next->ticketnum;
                        if((strcmp(Q[i].front->next->seatlevel,"c")==0)||(strcmp(Q[i].front->next->seatlevel,"C")==0))
                        s[i].remainC-=Q[i].front->next->ticketnum;
                        c=(struct guest *)malloc(Len);
                        strcpy(c->name,Q[i].front->next->name);
                        strcpy(c->linenum,linenum);
                        strcpy(c->num,num);
                        strcpy(c->seatlevel,Q[i].front->next->seatlevel);
                        c->hour=hour;
                        c->minute=minute;
                        c->year=year;
                        c->month=month;
                        c->day=day;
                        c->ticketnum=Q[i].front->next->ticketnum;
                        c->next=h;
                        h=c;
                        DeQueue(&Q[i]);
					}
                    else {
                        printf("候补失败!");
                        scanf("%s",&input);
					}
				   } break;
            case 2:
            printf("是否进行预订操作(yes/no):");
            scanf("%s",&input);
            if(strcmp(input,"yes")==0)  {
                printf("请输入你要进行预订的信息:\n");
                printf("请输入你的航线号:");
                scanf("%s",&linenum);
                printf("请输入你的航班号:");
                scanf("%s",&num);
                printf("请输入航班时间:\n");
                printf("航班时间 年份:");
                scanf("%d",&year);
                year=checkyear(year);
                printf("航班时间 月份:");
                scanf("%d",&month);
                month=checkmonth(month);
                printf("航班时间 日期:");
                scanf("%d",&day);
                day=checkdata(day,month,year);
                printf("请输入起飞时间:\n");
                printf("起飞的小时(以24小时制)");
                scanf("%d",&hour);
                hour=checkhour(hour);
                printf("起飞的分钟");
                scanf("%d",&minute);
                minute=checkminute(minute);
                for(i=0;i<m;i++)
    {
        if((strcmp(s[i].linenum,linenum)==0)&&(strcmp(s[i].num,num)==0)&&(s[i].year==year)
			&&(s[i].month==month)&&(s[i].day==day)&&(s[i].hour==hour)&&(s[i].minute==minute))
         break;
    }
             PrintQueue(&Q[i]);
             getch();
			} break;
		}
     }
     return(h);
 }
main()
{
    FILE *fp,*fp1;
    int i;
    struct guest *h;
    LinkQueue Q[N];
    system("cls");
    for(i=0;i<N;i++)
    InitQueue(&Q[i]);
    h=create();
    if((fp=fopen("flight.txt","a+"))==NULL) {
        printf("创建文件失败!\n\n");
        getch();
        return;
	}
    rewind(fp);
    if((fp1=fopen("f1.txt","a+"))==NULL) {
        printf("创建文件失败!\n\n");
        getch();
        return;
    }
    fscanf(fp1,"%d",&m);
    for(i=0;i<m;i++)
    {
     fscanf(fp,"%s",s[i].linenum);
     fscanf(fp,"%s",s[i].num);
     fscanf(fp,"%d",&s[i].seatA);
     fscanf(fp,"%d",&s[i].remainA);
     fscanf(fp,"%d",&s[i].seatB);
     fscanf(fp,"%d",&s[i].remainB);
     fscanf(fp,"%d",&s[i].seatC);
     fscanf(fp,"%d",&s[i].remainC);
     fscanf(fp,"%d",&s[i].year);
     fscanf(fp,"%d",&s[i].month);
     fscanf(fp,"%d",&s[i].day);
     fscanf(fp,"%d",&s[i].hour);
     fscanf(fp,"%d",&s[i].minute);
     fscanf(fp,"%d",&s[i].start);
     fscanf(fp,"%d",&s[i].end);
	}
     fclose(fp);
     fclose(fp1);
     printf("请输入当前时间\n(格式:年份 月份 日期):");
	 scanf("%d%d%d",&Ye,&Mo,&Da);
     do {
        system("cls");
        printf("\n");
        printf("民航航班信息查询与客票发售服务系统\n\n");
        printf("1.输入各航班的信息\n");
        printf("2.查询\n");
        printf("3.订票\n");
        printf("4.打印买票的用户信息\n");
        printf("5.退票\n");
        printf("6.管理员操作\n");
        printf("0.退出\n");
        scanf("%d",&i);
        switch(i) {
            case 1:printf("你选择了输入各航班信息的操作\n");
                   input(); break;
            case 2:printf("你选择了查询信息的操作\n");
                   search(); break;
            case 3:printf("你选择了订票的操作\n");
                   h=book(h,&Q[m]); break;
            case 4:printf("用户名--航线号--航班号--航班时间--机舱等级--买票数目\n");
                   print(h); break;
            case 5:h=refund(h); break;
            case 6:h=manage(h,&Q[m]); break;
            case 0:exit(1);
        }
    }while((i==1)||(i==2)||(i==3)||(i==4)||(i==5)||(i==6));
}

⌨️ 快捷键说明

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