编辑: ZCYTheFirst | 2019-07-09 |
case 4: dingpiao(head);
//订票功能 break;
case 5: tuipiao(head);
//退票功能 break;
case 6: saveHangbanInfo( head );
//保存航班信息 saveClientInfo( head );
//保存顾客信息 break;
case 7: disposeMemory( head );
//释放内存空间 exit(0);
} }while(n>
=1&
&
nnext=NULL;
return p;
} //初始化顾客链表 link initlink() { link p;
p=(link)malloc(sizeof(cnode));
if(p==NULL) { printf( Memory application fail. );
exit(-1);
} p->
next=NULL;
return p;
} //增加航班 void Addhangban(Linklist L) { Linklist p, q;
link h;
char c[10];
p = L;
while( p->
next ) p = p->
next;
do { q = (Linklist)malloc( sizeof(pnode) );
//为航班结点申请内存空间 printf( \t-->
航班号: );
scanf( %d ,&
q->
no);
printf( \t-->
终点站: );
scanf( %s ,q->
destin );
printf( \t-->
总座位: );
scanf( %d ,&
q->
limit);
printf( \t-->
余票数: );
scanf( %d ,&
q->
rest);
q->
next = p->
next;
p->
next = q;
p = q;
h = (link)malloc( sizeof(cnode) );
//为顾客结点申请内存空间 h->
next = NULL;
p->
clist = h;
printf( \t航班添加成功!\n );
printf( ==>
是否继续添加?(y/n)\n );
scanf( %s ,c);
}while(c[0]=='
Y'
||c[0]=='
y'
);
} //取消航班 void Deletehangban(Linklist L) { int no;
Linklist q, p=L;
printf( ==>
请输入航班号: );
scanf( %d ,&
no);
while(p&
&
p->
no!=no) { q=p;
p=p->
next;
} if(p) { if(p->
no==no) { q->
next=p->
next;
printf( \t---航班取消成功!---\n );
} } else printf( \t---对不起,无此航班!---\n );
} //查询功能 void chaxun(Linklist L) { int n;
printf( \t==>
1.通过目的地查询\n );
printf( \t==>
2.通过航班号查询\n );
printf( \t==>
请选择: );
scanf( %d ,&
n);
switch(n) { case 1: mudidchaxun( L );
//调用目的地查询函数 break;
case 2: hangbanhchaxun( L );
//调用航班号查询函数 break;
} } //订票功能 void dingpiao(Linklist L) { int count=0;
Linklist p = L->
next;
link h1, h2;
char c[30];
char s[15];
int d;
//列出到达同以目的地的所有航班 printf( ==>
请输入终点站: );
scanf( %s ,c);
while(p) { if(strcmp(p->
destin,c)==0) { printf( \t====航班信息====\n );
printf( \t航班号:%6d ,p->
no);
printf( \t总座位:%6d ,p->
limit);
printf( \t余票数:%6d\n ,p->
rest);
count++;
} p=p->
next;
} if(count==0) { printf( \t---对不起,无此航班!---\n );
return;
} else if(count==1) { p=L->
next;
while(p&
&
strcmp(p->
destin,c)!=0) p=p->
next;
} else { //根据航班号确定所要找的航班 printf( ==>
请输入你选择的航班号: );
scanf( %d ,&
d);
p=L->
next;
while(p) { if(p->
no==d) { printf( \t====航班信息====\n );
printf( \t航班号:%6d ,p->
no);
printf( \t总座位:%6d ,p->
limit);
printf( \t余票数:%6d\n ,p->
rest);
break;
} p=p->
next;
} if(p==0) { printf( \t---对不起,无此航班!---\n );
return ;
} } printf( \t---开始订票---\n );
h1 = p->
clist;
while(h1->
next) h1 = h1->
next;
//指向顾客链表的结尾 do { if(p->
rest==0) { printf( \t---已无余票---\n );
break;
} h2=(link)malloc(sizeof(cnode));