如何使用C++实现航空订票系统课程
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍如何使用C++实现航空订票系统课程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下一、题目1.录入功能可以录入航班信息(如航班号,起飞降落时间,城市,
千家信息网最后更新 2026年11月01日如何使用C++实现航空订票系统课程
这篇文章主要介绍如何使用C++实现航空订票系统课程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
具体内容如下
一、题目
1.录入功能
可以录入航班信息(如航班号,起飞降落时间,城市,座位数,票价)
2.查询功能
可以查询航班的各项信息(如根据航班号,起飞降落城市查找航班并显示航班信息)
3.修改删除功能
可以修改删除航班的信息
4.追加航线
在原本的航线之后可以继续添加航线方便操作
5.订票功能
可以订票并且记录下乘客的相关信息(如姓名,身份证号码)
6.退票功能
可以退票并且记录乘客的相关信息以及退票信息
二、代码
#include#include #include #include using 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&&j next; ++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++实现航空订票系统课程"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
航班
城市
信息
时间
乘客
结点
航班号
输入
座位
座位数
指针
票价
关键
功能
成功
函数
姓名
身份
输出
系统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
互联网科技财经
凡科互联网科技
互联网高科技企业
上海卓越科技 互联网
成都狮子座互联网科技
互联网实体化科技化
彤创互联网科技有限公司
互联网科技扶贫时间
电子科技大学互联网创业大赛
深圳市罗太互联网科技有限公司
工业互联网山东科技大学
山东子淼互联网科技有限公司
小米互联网科技园入驻
有人说阿里系是互联网科技企业
保山互联网科技靠谱吗
互联网科技博主张洲
互联网科技创业计划的风险分析
恒生科技互联网指数十大成分股
广州全民伙伴互联网科技有限公司
中国互联网科技股
互联网科技有限公司图片
互联网巨头反垄断金融科技
唐信互联网科技
上海喔噻互联网科技
互联网企业和科技型企业
互联网科技的全部知识
徐州市互联网科技有限公司
厦门江牛科技互联网
知域互联网科技有限公司官网

