按关键词阅读: 课程设计 系统 订票 航空 数据结构
return NULL;
void prtlink()/打印订票乘员名单域的客户名单信息*/ linklist p;
struct airline info;info=find();
p=info-order;
if(p 。
【数据结构|[数据结构]-航空订票系统课程设计】15、!=NULL)printf(”客户姓名 订票数额 舱位等级n);
while(p)printf(”%stt%dtdn” , p-name , pord_amt , pgrade);
p=pnext;
elseprintf(”该航线没有客户信息!n”);
linklist *insertlink(linklist head,int amount,char name , int grade)/增加订票乘员名单域的客户信息/ linklist *p1,new;p1=head;
new=(linklist )malloc(sizeof(linklist);if(!new) printf(”nOut of memory!!n);
。
16、return NULL;strcpy(new-name , name);
neword_amt=amount;newgrade=grade;newnext=NULL;
if(head=NULL)/若原无订票客户信息/head=new;newnext=NULL;
elsehead=new;
newnext=p1;
return head;
linkqueue appendqueue(linkqueue q,char name , int amount)/*增加排队等候的客户名单域/ qptr new;new=(qptr)malloc(sizeof(qnode);strcpy(new-name,name);newre 。
17、q_amt=amount;new-next=NULL;if(q.front=NULL)/*若原排队等候客户名单域为空/q.front=new;
elseq.rear-next=new;
q.rear=new;return q;void order()/*办理订票业务*/ struct airline info;int amount,grade;char name10;info=start;
if(!(info=find())) return;
/根据客户提供的航班号进行查询 , 如为空,退出该模块*/printf(请输入你订票所需要的数量:);
scanf(d”,amount);
if(amountinfo- 。
18、tkt_amt)/若客户订票额超过乘员定票总额,退出*/ printf(n对不起 , 您输入的票的数量已经超过乘员定额!”);
return;if(amount=info-tkt_sur)/若客户订票额末超过余票量,订票成功并等记信息*/int i;
printf(请输入您的姓名(订票客户):”);scanf(”%s,name);printf(请输入s票的舱位等级:” , name);scanf(”d,grade);infoorder=insertlink(info-order , amount , name , grade);/*在订票乘员名单域中添加客户信息/for(i=0;iwait=appendqueue(i 。
19、nfo-wait , name,amount);
/在排队等候乘员名单域中添加客户信息/printf(”n注册成功!n”);
else printf(”n欢迎您下次再次订购!n”);
void return_tkt()/*退票模块/ struct airline info;qnode *t , *back,*f , r;
int grade;linklist *p1 , p2,*head;char cusname10;if(!(info=find()) return;
/调用查询函数 , 根据客户提供的航线进行搜索*/head=infoorder;p1=head;printf(”请输入你的姓名(退票客户):);
scanf( 。
20、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;
else p2next=p1next;
infotkt_sur+=p1-ord_amt;grade=p1-grade;
printf(”s成功退票!n” , p1name);
free(p1); 。
21、info-order=head;
/重新将航线名单域指向订票单链表的头指针 /f=(info-wait).front;
/*f指向排队等候名单队列的头结点/r=(infowait).rear;
/r指向排队等候名单队列的尾结点*/t=f;
/t为当前满点条件的排队候补名单域/while(t)if(infotkt_sur=infowait.front-req_amt)/*若满足条件者为头结点/int i;info-wait 。
front=t-next;
printf(”s订票成功!n , t-name);
for(i=0;iname,(infotkt_sur)-i);infotkt_sur-=t-req_amt; 。
22、info-order=insertlink(infoorder,t-req_amt , t-name , grade);
/插入到订票客户名单链表中*/free(t);
break;
back=t;
t=t-next;
if(infotkt_sur)=(t-req_amt)t!=NULL)/*若满足条件者不为头结点*/ int i;
back-next=tnext;
printf(”%s订票成功!n,tname);for(i=0;
is seat number is:dn,t-name , (info-tkt_sur)-i);
infotkt_sur-=t-req_amt;info-order=insertlink(inf 。
23、o-order,treq_amt,t-name,grade);/*插入到订票客户名单链表中*/free(t);
break;if(f=r) break;int menu_select()/菜单界面*/ int c;
char s20;printf(ntt航空客运订票系统n);
printf(*n);printf(”1.浏览航线信息:n);printf(2 。
浏览已订票客户信息:n”);
printf(3 。
查询航线n”);printf(”4.办理订票业务:n”);printf(5.办理退票业务:n);
printf(6 。
退出系统n);
printf(”*n”);doprintf(请选择:);scanf(%s” 。
24、,s);c=atoi(s);
while(c0|c7);
return c;main() struct airline airMAXSIZE=beijing,”1” , ”B8571 , ”SUN” , 3,3,”shanghai , ”2 , S1002,”MON , 2 , 2,london , ”3 , L1003,”FRI , 1 , 1;
来源:(未知)
【学习资料】网址:/a/2021/0321/0021744004.html
标题:数据结构|[数据结构]-航空订票系统课程设计( 三 )