温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-08-11 14:45:14 来源:亿速云 阅读:213 作者:chen 栏目:编程语言

这篇文章主要讲解了“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语言怎么实现航班订票系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI