本文实例为大家分享了C语言实现航班订票系统的具体代码,供大家参考,具体内容如下
描述:
点定义两个链表,一个存储航班信息,一个存储客户信息;
进行一系列简单的增删查找;
代码如下
#include<cstdio> #include<cstring> #include<iostream> #include<cstdlib> using namespace std; const int MAXN=250; typedef struct { string p_id; int sum; int r; int c; int selected; int select; string start; string startp; string arrive; string arrivep; int acx[MAXN][MAXN]; } node; typedef struct Pnode { node data; struct Pnode *next; } Pnode,*Plist; typedef struct { int r; int c; string name; string kp_id; string k_id; } node1; typedef struct Knode { node1 data; struct Knode *next; } Knode,*Klist; void init(Plist &l) { l=new Pnode; l->next=NULL; } void init(Klist &L) { L=new Knode; L->next=NULL; } void creatp(Plist &l,int e) { cout<<endl<<endl; Plist r=new Pnode; r=l; for(int i=0; i<e; i++) { Plist ll=new Pnode; cout<<endl; cout<<"请依次输入航班班次,起飞时间,起飞地点,到达时间,到达地点,座位行数,列数,总座位数,已被购买的数目,未被购买的数目"<<endl; cout<<'\t'; cin>>ll->data.p_id; cout<<" "; cin>>ll->data.start; cout<<" "; cin>>ll->data.startp; cout<<" "; cin>>ll->data.arrive; cout<<" "; cin>>ll->data.arrivep; cout<<" "; cin>>ll->data.r; cout<<" "; cin>>ll->data.c; cout<<" "; cin>>ll->data.sum; cout<<" "; cin>>ll->data.selected; cout<<" "; cin>>ll->data.select; for(int j=1; j<=ll->data.r; j++) for(int v=1; v<=l->data.c; v++) ll->data.acx[j][v]=0; ll->next=NULL; r->next=ll; r=ll; } } void creatk(Klist &L,node1 e) { Klist LL=new Knode; LL->data=e; LL->next=NULL; Klist r; r=L; while(r->next!=NULL) { r=r->next; } r->next=LL; //cout<<L->next->data.r<<endl; } void show(Plist &l) { Plist p=new Pnode; p=l->next; while(p!=NULL) { cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<p->data.p_id<<" "<<p->data.start<<" "<<p->data.startp<<" "<<p->data.arrive<<" "<<p->data.arrivep<<" "<<p->data.sum<<" "<<p->data.selected<<" "<<p->data.select<<endl; for(int i=1; i<=p->data.r; i++) { cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'; for(int j=1; j<=p->data.c; j++) cout<<p->data.acx[i][j]; cout<<endl; } p=p->next; } return ; } void alter(Plist &l,node1 e,int flag) { Pnode *p,*pre; p=l->next; while(p->data.p_id!=e.kp_id) { pre=p; p=p->next; } if(flag) { p->data.select-=1; p->data.selected+=1; p->data.acx[e.r][e.c]=1; } else { p->data.select+=1; p->data.selected-=1; p->data.acx[e.r][e.c]=0; } return ; } int delet(Klist &L,node1 e) { Klist p,pre; p=L; while(p->next!=NULL) { if(p->data.name==e.name&&p->data.k_id==e.k_id&&p->data.kp_id==e.kp_id) break; pre=p; p=p->next; } if(p==NULL) return 0; else { //cout<<"hjdhfjks"<<endl; pre->next=p->next; free(p); return 1; } } int searchh(Klist &L,node1 e) { Knode *p; p=L->next; while(p!=NULL) { if(p->data.name==e.name&&p->data.k_id==e.k_id&&p->data.kp_id==e.kp_id) { cout<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"您的位置是"<<p->data.r<<"行"<<p->data.c<<"列"<<endl; return 1; } p=p->next; } return 0; } void showone(Plist &l,node1 e) { Pnode *p; p=l->next; while(p!=NULL) { if(p->data.p_id==e.kp_id) { cout<<endl; cout<<'\t'<<"您的航班信息如下(依次为航班班次,起飞时间,起飞地点,到达时间,到达地点,座位总数,已购座位数,未购座位数)"<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<p->data.p_id<<" "<<p->data.start<<" "<<p->data.startp<<" "<<p->data.arrive<<" "<<p->data.arrivep<<" "<<p->data.sum<<" "<<p->data.selected<<" "<<p->data.select<<endl; return ; } } return ; } int judge(Plist &l,node1 e) { Pnode *p; p=l->next; while(p!=NULL) { //cout<<p->data.acx[e.r][e.c]<<endl; if(p->data.p_id==e.kp_id) { if(p->data.acx[e.r][e.c]) return 0; } p=p->next; } return 1; } int main() { Plist l; Klist L; init(l); init(L); int choose,n; node p; node1 k; cout<<endl<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"初始化存储航班信息"<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"输入航班总数:"; cin>>n; system("cls"); creatp(l,n); system("cls"); while(1) { cout<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"1.客户订票"<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"2.客户退票"<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"3.客户查询航班信息"<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"0.退出系统"<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"选择功能:"; cin>>choose; system("cls"); if(!choose) { cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<endl; break; } else if(choose==1)//订票 { cout<<endl<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"航班信息如下"<<endl; show(l); cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"输入客户姓名,证件号:"; cin>>k.name>>k.k_id; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"输入客户选择的航班号,位置(行,列):"; cin>>k.kp_id>>k.r>>k.c; if(judge(l,k)) { creatk(L,k); alter(l,k,1); } else { cout<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"座位已有人,不能订票,请重新选择!"<<endl; } getchar(); getchar(); system("cls"); } else if(choose==2)//退票 { cout<<endl<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"输入客户信息(名字,证件号,航班)"<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'; cin>>k.name>>k.k_id>>k.kp_id; int flag=delet(L,k); if(flag) { alter(l,k,0); cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"退票成功"<<endl; } else { cout<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"查找失败,请重新输入"<<endl; } getchar(); getchar(); system("cls"); } else if(choose==3) { cout<<endl<<endl; cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"输入客户信息(名字,证件号,航班):"; cin>>k.name>>k.k_id>>k.kp_id; int flag=searchh(L,k); if(flag) { showone(l,k); } else { cout<<'\t'<<'\t'<<'\t'<<'\t'<<'\t'<<"查找失败,请重新输入"<<endl; } getchar(); getchar(); system("cls"); } } }
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍C语言实现航班售票系统 C语言实现航班管理系统,包括了C语言实现航班售票系统 C语言实现航班管理系统的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言航班售票系统的具体代码,供大家参考,具体内容如下 题目描述:实现一个航班售票系统,每个航班应包括以下信息:航班号、起飞地、目的地、总座位数、余票数、乘客名单等;每个乘客的信息有:乘客姓名、证件号码、座位号等。 更多学习
本文向大家介绍C语言实现飞机订票系统,包括了C语言实现飞机订票系统的使用技巧和注意事项,需要的朋友参考一下 问题描述与题目要求 问题描述: 假定某民航有M个航次的班机,每个航次都只到达一个地方。试为该机场售票处设计一个自动订票和退票系统,要求系统具有以下功能: (1) 订票:若该航次余票大于等于乘客订票数,则在该航次的乘客表中,插入订票乘客的信息项,并修改该航次有关数据,否则给出相应信息。 (2)
本文向大家介绍纯C语言实现火车售票系统,包括了纯C语言实现火车售票系统的使用技巧和注意事项,需要的朋友参考一下 这是好久之前写的一个火车售票系统, 写的非常粗糙, 后来也没改了, 希望遇见有缘人继续优化吧。 主要的功能是:设置车次,删除车次, 买票, 改签, 退票, 查询等。 更多学习资料请关注专题《管理系统开发》。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍C#实现影院售票系统,包括了C#实现影院售票系统的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#实现影院售票系统的具体代码,供大家参考,具体内容如下 本人认为此项目的难点有4点 1.首先是将解析完的XML文件绑定到TreeView上 2.用代码动态生成座位的label,生成触发事件Label_Click,俩组放映时间的售出座位是不同的 3.用序列化与反序列化实现代码
本文向大家介绍C语言实现超市管理系统,包括了C语言实现超市管理系统的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言实现超市管理系统的具体代码,供大家参考,具体内容如下 超市管理系统 1.包括管理员和顾客 2.管理员有登入,录入商品信息,显示所有商品信息功能 3.顾客有购物车和结算功能 4.购物车具有显示商品列表,显示购物车商品,往购物车添加商品的功能 函数 建立库存函数 在购物
本文向大家介绍C语言实现职工管理系统,包括了C语言实现职工管理系统的使用技巧和注意事项,需要的朋友参考一下 小编找到了一个特别好的职工管理系统,分享给大家一份C语言职工管理系统的具体实现代码,供大家参考,也谢谢这位网友的分享,具体内容如下 person.cpp person.h 更多学习资料请关注专题《管理系统开发》。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。