航空客运订票系统源代码.docx
- 文档编号:2980905
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:18
- 大小:19.83KB
航空客运订票系统源代码.docx
《航空客运订票系统源代码.docx》由会员分享,可在线阅读,更多相关《航空客运订票系统源代码.docx(18页珍藏版)》请在冰豆网上搜索。
航空客运订票系统源代码
航空客运订票系统源代码
#include
#include
#include
#include
#include
usingnamespacestd;//标准命名空间
#defineOK1//函数结果状态码
#defineERROR0//函数结果状态码
#defineTRUE1//函数结果状态码
#defineFALSE0//函数结果状态码
typedefintstatus;//函数结果状态码
staticintcusnum=1;//顾客数(全局变量)
staticintairnum=1;//航线数(全局变量)
//顾客结构体
structcustomer{
charname[9];//顾客名
charline_num[8];//航班号
intpiaonum;//座位号
structcustomer*next;//下一个结点
};
typedefcustomer*Linkcustomer;
//候补顾客结构体
typedefstructhoubuNode{//候补顾客结构体
charname[9];//姓名
charend_place[10];//终点站
intpnum;//票数
structhoubuNode*next;//指针域
}*houbucustomer;
structLinkQueue
{
houbucustomerfront,rear;//队头队尾指针
};
//航线结构体
structairline{
charline_num[8];//航班号
charplane_num[8];//飞机号
charend_place[20];//目的的
charfly_data[20];//飞行周日
inttotal;//座位总数
intleft;//剩余座位
Linkcustomercustom;//订票顾客指针
LinkQueuehoubucus;//候补顾客指针
structairline*next;//下一个结点
};
typedefairline*Linkairline;
//初始化航线链表
voidinit_airline(Linkairline&l){
l=newairline[sizeof(airline)];//产生头结点,并始l指向此头结点
if(!
l){//存储分配失败
exit(0);//退出
}
l->next=NULL;//头结点的指针域为空
}
//初始化顾客链表(同初始化航线链表)
voidinit_customer(Linkcustomer&l){
l=newcustomer[sizeof(customer)];
if(!
l){
exit(0);
}
l->next=NULL;
}
//初始化候补顾客队列链表(同初始化航线链表)
voidinit_houbucustomer(LinkQueue&Q){
Q.front=Q.rear=newhoubuNode[sizeof(houbuNode)];//
if(!
Q.front){
exit(0);
}
Q.front->next=NULL;
}
//判断airline链表是否为空
statusairLineEmpty(LinkairlineL)
{
if(L->next)//非空
returnFALSE;
else
returnTRUE;
}
//airline链表插入操作
statusinsert_airline(LinkairlineL,inti,char*line_num,char*plane_num,char*end_place,char*fly_data,inttotal,intleft,Linkcustomercustom,LinkQueuehoubucus){
intj=0;//计数器
Linkairlines,p=L;//p指向头结点
while(p&&j { j++; p=p->next; } if(! p||j>i-1)//i小于1或大于表长 returnERROR;//插入失败 s=newairline[sizeof(airline)];//生成新结点 strcpy(s->line_num,line_num);//给新结点赋值 strcpy(s->plane_num,plane_num); strcpy(s->end_place,end_place); strcpy(s->fly_data,fly_data); s->total=total; s->left=left; s->custom=custom; s->houbucus=houbucus; s->next=p->next;//新结点指向原第i个结点 p->next=s;//原第i-1个结点指向新结点 returnOK;//插入成功 } //customer链表插入操作(同airline链表插入操作) statusinsert_customer(LinkcustomerL,inti,char*name,char*line_num,intpiaonum){ intj=0; Linkcustomers,p=L; while(p&&j { j++; p=p->next; } if(! p||j>i-1) returnERROR; s=newcustomer[sizeof(customer)]; strcpy(s->name,name); strcpy(s->line_num,line_num); s->piaonum=piaonum; s->next=p->next; p->next=s; returnOK; } //houbucustomer入队操作 voidinsert_houbucustomer(LinkQueue&Q,char*name,char*end_place,intpnum){ houbucustomerp; p=newhoubuNode[sizeof(houbuNode)]; strcpy(p->name,name); strcpy(p->end_place,end_place); p->pnum=pnum; p->next=NULL; Q.rear->next=p; Q.rear=p; } //houbucustomer出队操作 statusdel_houbucustomer(LinkQueue&Q,houbuNode&hbnode){ houbucustomerp; p=Q.front->next; strcpy(hbnode.name,p->name); strcpy(hbnode.end_place,p->end_place); hbnode.pnum=p->pnum; Q.front->next=p->next; if(Q.rear==p) Q.rear=Q.front; deletep; returnOK; } //houbucustomer输出操作 voidprint_houbucustomer(LinkQueueQ) { houbucustomerp=Q.front->next; cout<<"候补顾客为: "< cout<<"姓名终点站票数"< while(p) { cout< p=p->next; } cout< } //打印航线信息 statusprint_airline(Linkairlinel) { cout< Linkairlinep=l->next; for(;p! =NULL;p=p->next) { cout< : left)< cout< < setw(12)<<&(p->houbucus)< } returnOK; } //打印航线信息(print_airline重载) statusprint_airline(Linkairlinel,stringname,intN) { stringinfo; boolflag=true; Linkairlinep=l->next; for(;p! =NULL;p=p->next) { if(N==1) info=p->end_place; else info=p->line_num; if(info==name) { flag=false; cout< cout< : left)< cout< < setw(12)<<&(p->custom)< break; } } if(flag) { if(N==1) cout<<"对不起,没有终点站为"< else cout<<"对不起,没有航班号为"<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航空 客运 订票 系统 源代码