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

📄 sfile.cpp

📁 民航机票预订系统 结合MFC界面编程 具有订票、退票
💻 CPP
字号:
#include "stdafx.h" 
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "SFile.h"
//#include "Keshe_flightView.h"

airline *start_air()
{
        airline *a;
        a=(airline*)malloc(sizeof(airline));
        if(a==NULL)
        a->next=NULL;
        return a;
}
customer *start_cus()
{
        customer *c;
        c=(customer*)malloc(sizeof(customer));
        if(c==NULL)
        c->next=NULL;
        return c;
}
airline *modefy_airline(airline *l,char *air_num)
{
        airline *p;
        p=l->next;
        for(;p!=NULL;p=p->next)
        {
                if(strcmp(air_num,p->air_num)==0)
                {
                        p->left++;
                        return l;
                }
                printf("NO the airline!");
                return 0;
        }
}

int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)
{
	airline *q;
	q=(airline*)malloc(sizeof(airline));
	strcpy(q->air_num,air_num);
	strcpy(q->plane_num,plane_num);
	strcpy(q->end_place,end_place);
	q->total=total;
	q->left=left;
	q->next=NULL;
	(*p)->next=q;
	(*p)=(*p)->next;
	return OK;
}
int  insert_cus(customer **p,char *name,char *air_num,int seat_num)
{
	customer *q;
	q=(customer*)malloc(sizeof(customer));
	strcpy(q->name,name);
	strcpy(q->air_num,air_num);
	q->seat_num=seat_num;
	q->next=NULL;
	(*p)->next=q;
	(*p)=(*p)->next;
	return OK;
}
int book(airline *a,char *air_num,customer *c,char *name)
{
        airline  *p=a;
        customer *q=c->next;
        p=a->next;
        for(;q->next!=NULL;q=q->next){}
        for(;p->next!=NULL;p=p->next)
        {
                if(p->left>0)
                {
                        printf("你的座位号是: %d",(p->total-p->left+1));
                        insert_cus(&q,name,air_num,p->total-p->left+1);
                        p->left--;
                        return OK;
                }
                else
                {
                        printf("座位已满!");
                        return 0;
                }
        }
}

int del_cus(customer *c,airline *l,char *name)
{
        customer *p,*pr;
        char air_num[8];
        pr=c;
        p=pr->next;
        while(p!=NULL)
        {
                if(strcmp(p->name,name)==0)
                {
                        strcpy(air_num,p->air_num);
                        l=modefy_airline(l,air_num);
                        pr->next=p->next;
                        p=pr->next;
                        printf("已完成!");
                        return OK;
                }
                pr=pr->next;
                p=pr->next;
        }
        printf("没有此乘客!");
        return ERROR;
}
int search_air(airline *head)
{
        airline *p=head->next;
        printf("air_num  plane_num  end_place  total  left\n");
        for(;p!=NULL;p=p->next)
        {
                printf("%s    %-10s %-8s    %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);
        }
        return OK;
}
int search_cus(customer *head)
{
        struct customer *q=head->next;
        printf("name    air_num    seat_num\n");
        for(;q!=NULL;q=q->next)
        {
                printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);
        }
        return OK;
}
int search_one_cus(customer *c,char *cus_name)
{
   customer *p;
   p=c->next;
   while (p) 
   {
       if(strcmp(p->name,cus_name)==0)
	   {
		 printf("姓名:%s     航班号:%s   座位号:%d",p->name,p->air_num,p->seat_num);
         return OK;
	   }
	   p=p->next;
   }
   printf("没有此乘客!");
   return ERROR;
}
int creat_air(airline **l)
{
        airline *p=*l;
        int i=0;
        char *air_num[4]   =  {"0007af","0008af","0009af","0010af"};
        char *plane_num[4] =  {"plane1","plane2","plane3","plane4"};
        char *end_place[4] =  {"Beijing","Shanghai","Tianjin","荆州"};
        int total[4]       =  {100,100,100,100};
        int left[4]        =  {52,54,76,50};
        for(i=0;i<4;i++)
        insert_air(&p,air_num[i],plane_num[i],end_place[i],total[i],left[i]);
        return OK;
}
int creat_cus(customer **l)
{
        customer *p=*l;
        int i=0;
        char *name[4]     =   {"zhsan","lisi","wangwu","宋健"};
        char *air_num[4]  =   {"0007af","0008af","0009af","0010af"};
        int seat_num[4]   =   {2,5,7,1};
        for(i=0;i<4;i++)
        insert_cus(&p,name[i],air_num[i],seat_num[i]);
        return OK;

}
/*void main()
{
	int t=1;
	customer *cus=start_cus();
	airline  *air=start_air();
	char name[8],air_num[8],ch;
	creat_air(&air);
	creat_cus(&cus);
	printf("\n");
	printf("*********************************\n");
	printf("*     欢迎进入民航订票系统!     *\n");
	printf("*          订票请输入1          *\n");
	printf("*          退票请输入2          *\n");
	printf("*       查询乘客列表请输入3     *\n");
	printf("*        乘客查询请输入4        *\n");
				printf("*          退出请输入5          *\n");
                printf("*********************************\n");
				while(t==1)
				{
					ch=getchar();//输入
					if(ch=='1')//订票
					{
                        printf("请输入航班号(0007af-0010af):");
                        scanf("%s",air_num);
                        printf("请输入您的姓名:");
                        scanf("%s",name);
                        book(air,air_num,cus,name);
					}
					else
						if(ch=='2')//退票
						{
							printf("请输入要退票的乘客姓名:");
							scanf("%s",name);
							del_cus(cus,air,name);
						}
						else
							if(ch=='3')//查询
							{
                                search_air(air);
                                printf("\n");
                                search_cus(cus);
							}
							else
								if(ch=='4')
								{
									printf("请输入您要查询的乘客姓名:");
									scanf("%s",name);
									search_one_cus(cus,name);
								}
								else
									if(ch=='5')
										t=0;
				}
}*/

⌨️ 快捷键说明

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