code:blocks中航空订票系统候补怎样实现


void return_tkt(){//退票模块
    struct airline *info;
    linklist *p1,*p2,*head;
    char cusname[10];
    if(!(info=find())) return;//调用查询函数根据客户提供的航线进行搜索
    head=info->order;
    p1=head;
    printf("请输入退票客户的姓名:");
    scanf("%s",cusname);
    while(p1!=NULL) {//根据客户提供的姓名到订票客户名单域进行查询
        if(!strcmp(cusname,p1->name)) break;
        p2=p1;p1=p1->next;
    }
    if(p1==NULL) {
        printf("对不起你没有订过票!\n"); //若未找到退出本模块
        return;
    }
    else { //若信息查询成功删除订票客户名单域中的信息
        if(p1==head)
        {
            head=p1->next;
            free(p1);
        }
        else
        {
            p2=p1->next;
            free(p1);
        }
        info->ticket_sur+=p1->order_amount;
        printf("成功退票!!\n");
    }
}

在这个函数中只能退票不能候补

再维护一个候补的链表,把退的票给候补, 把候补中的人添加到购票人的链表中。
望采纳!