千家信息网

如何使用C++实现航空订票系统课程

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要介绍如何使用C++实现航空订票系统课程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下一、题目1.录入功能可以录入航班信息(如航班号,起飞降落时间,城市,
千家信息网最后更新 2024年11月22日如何使用C++实现航空订票系统课程

这篇文章主要介绍如何使用C++实现航空订票系统课程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体内容如下

一、题目

1.录入功能

可以录入航班信息(如航班号,起飞降落时间,城市,座位数,票价)

2.查询功能

可以查询航班的各项信息(如根据航班号,起飞降落城市查找航班并显示航班信息)

3.修改删除功能

可以修改删除航班的信息

4.追加航线

在原本的航线之后可以继续添加航线方便操作

5.订票功能

可以订票并且记录下乘客的相关信息(如姓名,身份证号码)

6.退票功能

可以退票并且记录乘客的相关信息以及退票信息

二、代码

#include#include#include#includeusing namespace std;typedef struct Node{    int hangbanhao;//航班号    char qifeichengshi[10];//起飞城市    char jiangluochengshi[10];//降落城市    char qifeishijian[10];//起飞时间    char jiangluoshijian[10];//降落时间    int zuoweishu;//座位数    int piaojia;//票价    struct Node *next;//结点的指针域}LNode,*LinkList;//定义航班信息 LinkList为指向结构体LNode的指针类型typedef struct CK{  char name[10];//乘客姓名  char id[18];//乘客身份证号  struct CK *next;//结点的指针域}ck,*cke;//乘客信息void import(int n,LinkList &L)//录入航班函数: n为所要录入航班的数量:{//建立一个带头结点的单链表L    L=(LinkList)malloc(sizeof(LNode));//申请表空间    L->next=NULL;//头结点的指针域置空    LNode * tail=L;//将尾赋给尾指针,等价LinkList tail=L;    for(int i=0; i>p->hangbanhao;        cout<<"请输入第"<>p->qifeichengshi;        cout<<"请输入第"<>p->jiangluochengshi;        cout<<"请输入第"<>p->qifeishijian;        cout<<"请输入第"<>p->jiangluoshijian;        cout<<"请输入第"<>p->zuoweishu;        cout<<"请输入第"<>p->piaojia;        p->next=NULL;//头结点的指针域置空        tail->next=p;//将新结点插入尾部        tail=p;//插入的结点变为尾结点,尾插法    }}//写入本地文件,并读取输出显示void show_L(LinkList &L)//输出浏览机票信息{  ofstream out("out.txt");//实例化一个对象   if (out.is_open())   {      LinkList p=L->next;      while(p)      {        out<<"航班号:";        out<hangbanhao;        out<<" 起飞城市:";        out <qifeichengshi;        out<<" 降落城市:";        out <jiangluochengshi;        out<<" 起飞时间:";        out <qifeishijian;        out<<" 降落时间:";        out <jiangluoshijian;        out<<" 座位数:";        out<zuoweishu;        out<<" 票价:";        out<piaojia;        out<< "\n";//用于换行,是下面in.getline的关键        p=p->next;      }  }   out.close(); //写完    char buffer[256];    ifstream in("out.txt");    if (! in.is_open())       { cout << "Error opening file"; exit (1); }       while (!in.eof() )       {           in.getline (buffer,100);           cout << buffer << endl;       }}//按航班号查找LinkList GetElem_L(LinkList &L,int e){      LinkList p=L->next;      while(p)      {        if(p->hangbanhao!=e)            p=p->next;        else return p;      }     return 0;}//按航班起降城市查找LinkList GetElem_Lc(LinkList &L,char qi[10],char ji[10]){      LinkList p=L->next;      while(p)      {        if(strcmp(p->qifeichengshi,qi)!=0||strcmp(p->jiangluochengshi,ji)!=0)            p=p->next;        else return p;      }      return 0;}//删除int ListDelete_L(LinkList &L,int e){    LinkList p=L;    while(p->next&&p->next->hangbanhao!=e){        p=p->next;//直到查找到要删除的结点    }    if(!p->next)        return 0;    LinkList q=p->next;    p->next=q->next;//p->next=p->next->next;    free(q);//本题q是需要删除的结点    return 1;}//插入int ListInsert_L(LinkList &L,int i){    LinkList p=L;//i为插入的位置    int j=0;    while(p&&jnext;        ++j;    }    if(!p||j>i-1)        return 0;    LNode *s=(LinkList)malloc(sizeof(LNode));    cout<<"输入航班号:";    cin>>s->hangbanhao;    cout<<"输入起飞城市:";    cin>>s->qifeichengshi;    cout<<"输入降落城市:";    cin>>s->jiangluochengshi;    cout<<"输入起飞时间:";    cin>>s->qifeishijian;    cout<<"输入降落时间:";    cin>>s->jiangluoshijian;    cout<<"输入座位数:";    cin>>s->zuoweishu;    cout<<"输入票价:";    cin>>s->piaojia;    s->next=p->next;    p->next=s;//s->next=p->next;p->next=s;    return 1;}//修改LinkList xiugai(LinkList &L,int yxg){  LinkList q=L->next;      while(q)      {        if(q->hangbanhao!=yxg)            q=q->next;        else return q;      }  return 0;}//乘客信息录入void importren(int n,cke &C)//录入航班函数: n为所要录入航班的数量:{    C=(cke)malloc(sizeof(ck));    C->next=NULL;    ck*ta=C;    for(int i=0; i>p->name;        cout<<"请输入第"<>p->id;         p->next=NULL;        ta->next=p;        ta=p;//尾插法,根据循环画图可知,tail指针始终在最后    }}//订票乘客信息和航班信息写入本地和读取void show_dp(cke &C,LinkList &R){  ofstream out("dinpiao.txt");//实例化一个对象   if (out.is_open())   {      cke p=C->next;      while(p){        out<<"姓名 ";        out<name;        out<<"  身份证ID ";        out<id;        out<< "\n";//用于换行,是下面in.getline的关键        p=p->next;      }      if(R->zuoweishu-1>=0)      {       out<<"航班号:"<hangbanhao;       out<<" 起飞城市:"<qifeichengshi;       out<<" 降落城市:"<jiangluochengshi;       out<<" 起飞时间:"<qifeishijian;       out<<" 降落时间:"<jiangluoshijian;       out<<" 座位数:"<zuoweishu-1;//订票之后座位数减一       out<<" 票价:"<piaojia;       out<< "\n";//用于换行,是下面in.getline的关键       out<<"订票成功";       out<< "\n";//用于换行,是下面in.getline的关键      }      else      {        out<<"航班号:"<hangbanhao;        out<<" 起飞城市:"<qifeichengshi;        out<<" 降落城市:"<jiangluochengshi;        out<<" 起飞时间:"<qifeishijian;        out<<" 降落时间:"<jiangluoshijian;        out<<" 座位数:"<zuoweishu;        out<<" 票价:"<piaojia;        out<< "\n";//用于换行,是下面in.getline的关键        out<<"该航班暂无票,请选择其他航班";        out<< "\n";//用于换行,是下面in.getline的关键      }   }   out.close(); //写完    char buffer[256];    ifstream in("dinpiao.txt");    if (! in.is_open())       { cout << "Error opening file"; exit (1); }       while (!in.eof() )       {           in.getline (buffer,100);           cout << buffer << endl;       }}//退票乘客信息和航班信息写入本地和读取void show_tp(cke &C,LinkList &R){  ofstream out("dinpiao.txt");//实例化一个对象   if (out.is_open())   {      cke p=C->next;      while(p){        out<<"姓名 ";        out<name;        out<<"身份证ID ";        out<id;        out<< "\n";//用于换行,是下面in.getline的关键        p=p->next;      }      out<<"航班号 "<hangbanhao;      out<<" 起飞城市:"<qifeichengshi;      out<<" 降落城市:"<jiangluochengshi;      out<<" 起飞时间:"<qifeishijian;      out<<" 降落时间:"<jiangluoshijian;      out<<" 座位数:"<zuoweishu;//退票之后不需要加1,用最初的座位数;      out<<" 票价:"<piaojia;      out<< "\n";//用于换行,是下面in.getline的关键      out<<"退票成功";      out<< "\n";//用于换行,是下面in.getline的关键   }   out.close(); //写完    char buffer[256];    ifstream in("dinpiao.txt");    if (! in.is_open())       { cout << "Error opening file"; exit (1); }       while (!in.eof() )       {           in.getline (buffer,100);           cout << buffer << endl;       }}void menu()//显示菜单界面{    cout<<"=================================欢迎使用航空订票系统==============================="<>caozuo;      switch(caozuo)      {    case 1://创建      int num;      cout<<"请输入要录入的航班数:";      cin>>num;      cout<>dchbh;      LinkList p;      p=GetElem_L(L,dchbh);//查找      cout<<"待查航班为:";      cout<<"航班号:"<hangbanhao;      cout<<" 起飞城市:"<qifeichengshi;      cout<<" 降落城市:"<jiangluochengshi;      cout<<" 起飞时间:"<qifeishijian;      cout<<" 降落时间:"<jiangluoshijian;      cout<<" 座位数:"<zuoweishu;      cout<<" 票价:"<piaojia;      cout<>qi;       cout<<"输入降落城市:";       cin>>ji;       LinkList J;       J=GetElem_Lc(L,qi,ji);//查找       cout<<"待查航班为:";       cout<<"航班号:"<hangbanhao;       cout<<" 起飞城市:"<qifeichengshi;       cout<<" 降落城市:"<jiangluochengshi;       cout<<" 起飞时间:"<qifeishijian;       cout<<" 降落时间:"<jiangluoshijian;       cout<<" 座位数:"<zuoweishu;       cout<<" 票价:"<piaojia;       cout<>yxg;      LinkList q;      q=xiugai(L,yxg);//修改      cout<<"航班号修改为:";      cin>>q->hangbanhao;      cout<<"航班起飞城市修改为:";      cin>>q->qifeichengshi;      cout<<"航班降落城市修改为:";      cin>>q->jiangluochengshi;      cout<<"航班起飞时间修改为:";      cin>>q->qifeishijian;      cout<<"航班降落时间修改为:";      cin>>q->jiangluoshijian;      cout<<"航班座位数修改为:";      cin>>q->zuoweishu;      cout<<"航班票价修改为:";      cin>>q->piaojia;      show_L(L);      cout<>renshu;      cout<>m;      cout<>yt;     cout<

三、运行结果

1、录入航班信息

2、查找航班(根据航班号、起降城市查找航班)

3、删除航班

4、插入航班

5、修改航班

6、订票、退票

以上是"如何使用C++实现航空订票系统课程"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0