C语言怎么实现航班订票系统

这篇文章主要讲解了“C语言怎么实现航班订票系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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语言怎么实现航班订票系统
网站地址:https://www.cdcxhl.com/article32/jeoopc.html

成都网站建设公司_创新互联,为您提供网站设计公司App设计软件开发网站设计外贸建站全网营销推广

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站