谁能帮我改改啊,拜托了……
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include <math.h>typedef struct yiding
{ char name[20];    //已定客户姓名
int dingpiaoliang; //客户订票量
int dengji; //客户所定票等级
struct yiding *next1;//指向下一个头结点 
}yiding,*link;typedef struct denghou
{ char name[20];  //等候替补客户姓名
int xuqiuliang;   //等候替补客户所需量
struct denghou *next2;
}denghou,*Qptr;typedef struct {
Qptr front;//单链队头结点
Qptr rear;//单链队尾结点
}linkQueue; typedef struct fly
{ char zhongdian[20];//终点站名
char hangnum[20];//航班号
char feijinum[20];//飞机号
int riqi;//飞行日期
int chengkedinge;//乘客定额
int yupiaonum;//余票量
struct  fly  *next;//指向下一个头结点
struct yiding *name1;//指向已定头结点
struct denghou *name2;//指向等候头结点
}fly,*linklist;struct flu *L=NULL;//
struct Yiding *H;//为已订票客户链队来申请空间
linkQueue Q;//linkQueue类型的来申请空间Linklist InitLinklist();
int InsertLinklist(Linklist &head1);
void hangxianchaxun();
void dingpiaogongneng();
void tuipiaogongneng();
void main()
{ innitlinklist();
r=(struct yiding*)malloc(sizeof(yiding)); int a,n;
printf(".............欢迎进入航空客运订票系统!...............");
printf("请按一下键进行选择: \n");
printf("按'1'进入查询航线功能 \n");
printf("按'2'进入订票功能 \n");
printf("按'3'进入退票功能 \n");
printf("按'4'退出系统\n");
printf("*****************************************************");
scanf("%d",&a\n);
switch(a)
{  case 1: printf("您选择的是航线查询功能");
hangxianchaxun();break;
   case 2: printf("您选择的是订票功能");
dingpiaogongneng();break;
   case 3: printf("您选择的是退票功能");
tuipiaogongneng();break;
   default : printf("您将退出系统"); exit(0);
}    linklist initlinklist()
{  l=(linklist)malloc(sizeof(fly));
   if(!l)exit(overflow);//分配存储空间失败
   l->next=null;//建立一个带头结点的空链表
   return(l);
}
int insertlinklist(linklist *p)
{ p=(liklist)malloc(sizeof(fly));//申请空间
if(!p)exit(overflow);//分配失败
printf("请依次输入终点站、航班号、飞机号、日期、余票额:");
gets(p->zhongdian\n);
gets(p->hangnum\n);
gets(p->feijinum\n);
scanf("%d",&p->riqi\n);
scanf("%d",&p->chengkedinge\n);
scanf("%d",&p->yupiaonum\n);
p->(struct yiding*)malloc(sizeof(yiding));
p->(qotr)malloc(sizeof(denghou));
p->next=l->next;
l->next=p;
return(ok);
}
void hangxianchaxun()
{ char b[20];
printf("\t欢迎使用航线查询功能\n");
printf("\t该查询方式为目的地查询,请输入您的终点站名:\n");
gets(b);
n=1;
while(n!=0)
{ p=p->next;
if(p)
{n=strcmp((*p).zhongdian,b);
 if(n==0)
 { printf("\t航班信息为:\n");
printf("\t航班号为:%s\n",p->hangnum);
printf("\t飞机号为:%s\n",p->feijinum);
printf("\t飞行时间为:周%d\n",p->riqi);
printf("\t余票数目为:%d张\n",p->yupiaonum);
 }
}
else
{ printf("\t对不起,没有您所需要的航班\n");
n=0;
}
} void dingpiaogongneng()
{ printf("\t欢迎您使用订票功能:\n");
Linklist p=L;//Linklist类型的L来指向链表头
yiding *h=H,*h1;//Yiding 定义客户的结点,方便插入与删除
char c[15];
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c); 
printf("请输入终点站名:");
gets(c);
printf("\n");
 p=L->next;
if(p) {
 do{//查找是否有这个航班
if(!p)
{
 printf("对不起,没有你要找的航班:\n\n");
 goto loop1;
 }
 m=strcmp(p->zhongdian,c);
if(m==0)
{ printf("您所查询的航班信息为:");
printf("航班号为%s\n",p->hangnum);
printf("飞机号为%s\n",p->feijinum);
printf("飞行日期为%d\n",p->riqi);
printf("余票量为%d\n",p->yupiaonum);
}
else p=p->next;
 } while(m!=0);
 if(m==o)
{ do
  { printf("请输入您要订票的数目:\n");
scanf("%d",&piao);
if(piao<=p->yupiaonum)
{ h=p->name1;
if(h)
{h1=h;
h=h->next1;
h=(struct yiding*)malloc(sizeof(yiding));
printf("请输入您的名字:");
 gets(h->name);gets(h->name);
h->dingpiaoliang=piao;
h->next1=h1->next1;
h1->next1=h;
p->yupiaonum=p->yupiaonum-piao;
printf("订票成功!\n");m=2;
}
}
else
{printf("余票量:%d\n",p->yupiaonum);
printf("对不起,余票额为%d,已不足,不能完成订票\n",p->yupiaonum);
printf("     是否要重新订票?\n");
printf("需要请输入1   否则请按2    预订请输入3 : ")
scanf("%d",&m);
printf("\n");
if(m==3) goto loop3;
}
}while(m==1);
 }
}

else if(!p) { 
loop3: struct Weidingkehu *q3;
printf("对不起,该航班的票已售完\n");
q.front=p->yudingqueue;
if(q.front==q.rear)   
 printf("没有人预订票,是否要预订?\n");
else if(q.front!=q.rear) printf("已有人预订票,是否要预订?\n");
printf("预订请输入1 否则输入2     : ");
scanf("%d",&n);
printf("\n");
if(n==1)
{
q3=(Qptr)malloc(sizeof(Weidingkehu));
printf("请输入您的姓名"); gets(q3->name); gets(q3->name);
printf("请输入订票数"); scanf("%d",&q3->yudingpiao);
q3->next2=NULL; 
 q.rear->next2=q3;
 q.rear=q3;
printf(" 您已经预订了 !\n");
}
 }
loop1:; 
}
void tuipiaogongneng()
{ printf("欢迎您使用退票功能:\n");
linklist p=l;
yiding *h=H,*h1,*h2;
linkqueue q=Q;
char c[20],nam[20];
int m=1,piao,n;
printf("请输入您所要退订的航班号:\n");
gets(c);gets(c);
p=l;
if(p)
{
do{ //使用do while来查找是否有此航班
if(!p)
{//如果是到了表尾且没有匹配,goto至再输入航班号
printf("\n对不起,没有您要找的航班:\n"); 
goto loop1;
}
m=strcmp(p->hangnum,c);//检验在已订票中是否有相应的号码
if(m==0)
{//找到相应的票输出相应的信息
printf("您所要退订票的信息如下:\n");
printf("航班号为%s\n",p->hangnum);
printf("飞机号为%s\n",p->feijinum);
printf("飞行日期为%d\n",p->riqi);
}
else p=p->next;
        }while(m!=0);
if(m==0)
{//进行退票
do{
h=p->name1;
if(h)
{
printf("请分别输入您的姓名和所订票数目:\n);
gets(nam);gets(nam);
scanf("%d",&piao);
printf("\n");
h1=h;
h=h->next1;
if(strcmp(h->name,nam)==0&&h->dingpiaoliang==piao)//检查名字和订票量是否相同
{
p->yupiaonum+=h->dingpiaoliang;
h2=h;
h1->next1=h->next1;
free(h2);
printf("取消订票成功\n");
struct denghou *p3;
q.front=p->name2;
if(q.front==q.rear) 
{printf("没有人预订票:\n"); 
goto loop1;
}
if((p->yupiaonum)=>(q.front->next2->xuqiuliang))
{h2=(struct yiding)malloc(sizeof(yiding));//为已订客户信息开辟新空间
strcpy(h2->name,q.front->next2->name);//将等待订票客户名字赋给已订票客户
h2->dingpiaoliang=q.front->next2->xuqiuliang;//已订票数为客户需求量
n=p->yupiaonum-q.front->next2->xuqiuliang;//余票量减需求量
p->yupiaonum=n;//节点后移
q3=q.front->next2;
q.front->next2=q3->next2://和上一行联合起到删除节点的作用
if(q3==q.rear)
free(q3);//头节点等于尾节点则删除此链
h2->next1=h->next1;
h->next1=h2;//将之插入已订票客户链表中
printf("已经成功为待订客户订票\n");
}
else printf("订票失败!\n");
}
else
{//没有找到相对应的信息
printf("对不起,没有您所要查找的信息,请检查您的输入是否有误后再进行查找.\n");
printf("是否要重新查找并取消订票?\n");
printf("需要请输入1   否则请按2 ");
scanf("%d",&m);
printf("\n");
}
}
}while(m==1)
}
}
loop1:;
}

解决方案 »

  1.   

    抱歉,呵呵,这个程序每次编译的时候总是在
    Linklist initLinklist();
    int InsertLinklist(Linklist &head1);
    这个地方出现错误,我不会改……帮我改改吧!
    错误如下:
    1>f:\程序\hangban\hangban\dingpiaoxitong.cpp(39) : error C2146: 语法错误 : 缺少“;”(在标识符“initLinklist”的前面)
    1>f:\程序\hangban\hangban\dingpiaoxitong.cpp(39) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
    1>f:\程序\hangban\hangban\dingpiaoxitong.cpp(39) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
    1>f:\程序\hangban\hangban\dingpiaoxitong.cpp(40) : error C2065: “head1”: 未声明的标识符
    1>f:\程序\hangban\hangban\dingpiaoxitong.cpp(40) : fatal error C1903: 无法从以前的错误中恢复;正在停止编译
      

  2.   

    你最后的linklist的第一个字母要大写:Linklist