求大神解答。数据结构C++为啥程序运行不了

求大神解答。数据结构C++为啥程序运行不了

#include
#include<string.h>
using namespace std;

struct customer
{
char name[10];
int num;
int level;
customer *next;
};
typedef struct airline
{
char line_num[10]; //航班号
char end_place[10]; //终点站名
char aircraft_num[10];//飞机号
int time; //飞行日期
int total; //乘员定额
int left; //余票量
customer *booked;
customer *wait;
airline *next;
}airline,*Lairline;

airline *L;

Lairline search_line()
{
char a[10];
airline *p;
p=L->next;
cout<<“请输入终点站名”;
cin>>a;
for(;p;p=p->next)
if(!strcmp(a,p->end_place))
break;
return p;
}

void boundary()
{
cout<<“欢迎您进入航空客运订票系统”<<endl;
cout<<“请选择你要进行的业务”<<endl;
cout<<“显示所有航线==>请输入1”<<endl;
cout<<“查询航线信息==>请输入2”<<endl;
cout<<“进入订票系统==>请输入3”<<endl;
cout<<“进入退票系统==>请输入4”<<endl;
cout<<“退出客服系统==>请输入0”<<endl;
}
void print_customer(airline *p)
{
customer *c;
if(p->booked)
{
c=p->booked;
cout<<“已经购票的成员信息\n\t姓名\t订票量\t舱位等级\t\n”;
for(;c;c->next)
cout<name<num<level;
}
else cout<<“暂时没有客户订票!”;
if(p->wait)
{
c=p->wait;
cout<<“排队购票的成员信息\n\t姓名\t订票量\t舱位等级\t\n”;
for(;c;c->next)
cout<name<num;
}
else cout<<“暂时没有客户排队订票!”;
}

void insert_line()
{
int flag=1;
for(;flag;)
{
airline *p=new airline;
airline *q=new airline;
cout<<“请输入航班号”;
cin>>q->line_num;
for(p=L;p->next;p=p->next)
if(strcmp(p->next->line_num,q->line_num)>=0) break;
if(p->next&&strcmp(p->next->line_num,q->line_num)==0)
{
cout<<“航班已存在,请重新输入!”;
continue;
}
cout<<“请输入终点站名:”;
cin>>q->end_place;
cout<<“请输入飞机号:”;
cin>>q->aircraft_num;
cout<<“请输入飞行日期:”;
cin>>q->time;
q->total=120;
q->left=120;
q->booked=NULL;
q->wait=NULL;
q->next=p->next;
cout<<“成功!是否继续? YES(1) NO(0)”;
cin>>flag;
}
}

void book()
{
int flag=0;
airline *p;
cout<<“请输入航线终点站:”;
p=search_line();
flag=1;
if§
{
cout<<“终点站名 航班号 飞机号 飞行日期 余票量”;
cout<end_place<line_num<aircraft_num<left;
customer *cst=new customer;
customer *c=new customer;
cout<<“购买张数:”;
cin>>cst->num;
cout<<“舱位等级:”;
cin>>cst->level;
cout<<“购买者姓名:”;
cin>>cst->name;
if(cst->num<=p->left)
{
cst->next=p->booked;
p->booked=cst;
p->left=p->left-cst->num;
cout<<“成功!座位号为(”<total-p->left-cst->num+1<<","<total-p->left<<")";
}
else cout<<“余票不够!”;
if(flag)
{
if(!p->wait)
{
cst->next=p->wait;
p->wait=cst;
}
else
{
c=p->wait;
for(;c->next;c=c->next)
{
cst->next=c->next;
c->next=cst;
}
}
}
}
else cout<<“航班不存在!”;
}

void waited(airline *p)
{
int flag;customer *h,*q0;
if(!p->wait) return;
customer *q=new customer;
q->level=0;
q->num=123;
strcpy(q->name,“0000”);
q->next=p->wait;
h=q;
for(;p->left>0&&q->next;)
{
if(q->next->numleft)
{
cout<<“当前航班余票充足,请问是否订票”<next->name<next->num;
cout<<“YES(1) NO(0)”;
cin>>flag;
if(flag)
{
q0=q->next;q->next=q->next->next;
q0->next=p->booked;
p->booked=q0;
p->left=p->left-q0->num;
cout<<“订票成功!”;
}
else q=q->next;
}
else q=q->next;
}
p->wait=h->next;
}

void refund()
{
int flag;
char a[20];
airline *p;
customer *c=new customer;
customer *c1=new customer;
p=search_line();
c=p->booked;
if(!p)
{
cout<<“航班信息不存在!”;
boundary();
return;
}
cout<<“请输入你的姓名:”;
cin>>a;
if(!p->booked->name)
{
cout<<“未找到你的信息!”;
boundary();
return;
}
if(a=等于p->booked->name)
{
cout<<“退票信息”;
cout<<“姓名 终点站”;
cout<booked->name<end_place<booked->num;
cout<<“你想退票吗?YES(1) NO(0)”;
cin>>flag;
if(flag)
{
p->booked=p->booked->next;
p->left=p->left+c->num;
delete c;
cout<<“退票成功!”;
waited§;
boundary();
}
}
else
{
for(;c->next;c=c->next)
if(a==c->next->name)
break;
if(!c->next)
{
cout<<“未找到此人信息!”;
boundary();
return;
}
else
{
cout<<“退票信息”;
cout<<“姓名 终点站”;
cout<booked->name<end_place<booked->num;
cout<<“你想退票吗?YES(1) NO(0)”;
cin>>flag;
if(flag)
{
c1=c->next;
c->next=c->next->next;
p->left=p->left+c1->num;
delete c1;
cout<<“退票成功!”;
waited§;
boundary();
}
}
}
}

void print_line()
{
int flag;
airline *p=new airline;
p=L->next;
cout<<“终点站名 航班号 飞机号 飞行日期 余票量”<<endl;
for(;p;p=p->next)
{
cout<end_place<<" “<line_num<<” “<aircraft_num<<” “<time<<” "<left<<endl;
}
boundary();
}

void search()
{
int i;
int flag=0;
airline *p;
p=search_line();
flag=1;
if§
{
cout<<“终点站名 航班号 飞机号 飞行日期 余票量”;
cout<end_place<line_num<aircraft_num<left;
cout<<“是否够票 YES(1) NO(0)”;
cin>>i;
if(i==1) book();
else boundary();
}
else cout<<“航班信息不存在!”;
}

void Getline()
{
airline *L=new airline;
airline *p=new airline;
airline *q=new airline;
L->booked=NULL;
L->wait=NULL;
L->next=NULL;
strcpy(L->end_place,“00000000”);
strcpy(L->line_num,“000”);
strcpy(L->aircraft_num,“0000000”);
L->time=L->left=L->total=0;
q=L;
p->booked=NULL;
p->wait=NULL;
strcpy(p->end_place,“jiangsu”);
strcpy(p->line_num,“003”);
strcpy(p->aircraft_num,“3333333”);
p->time=1;p->left=120;p->total=120;
p->next=q->next;q->next=p;
p->booked=NULL;
p->wait=NULL;
strcpy(p->end_place,“hunan”);
strcpy(p->line_num,“001”);
strcpy(p->aircraft_num,“1111111”);
p->time=3;p->left=120;p->total=120;
p->next=q->next;q->next=p;

}

void main()
{
int flag=1;boundary();Getline();
int choice;
cin>>choice;
do{switch(choice)
{
case 1: print_line();break;
case 2: search();break;
case 3: book();break;
case 4: refund();break;
case 0: flag=0;break;
}}while(flag);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值