如何使用C++实现航空订票系统课程
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍如何使用C++实现航空订票系统课程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下一、题目1.录入功能可以录入航班信息(如航班号,起飞降落时间,城市,
千家信息网最后更新 2025年11月08日如何使用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安全错误
数据库的锁怎样保障安全
校园网络安全教育提纲
深圳包菜网络技术公司
ios软件开发服务方案价钱
福建千游网络技术
服务器连接超时配置
五全一常态网络安全
网络安全培训主题班会
魔兽世界大陆服务器有多大
数据库维护简历
山东互联网软件开发价位
java软件开发人多吗
支付宝软件开发应聘条件
服务器环境管理软件
四川华韶网络技术
linux服务器镜像如何开启
企业网站后台的数据库
软件开发需规模板
金华定制软件开发专业团队
网络技术学习励志头像
hana数据库判断重复数据
数据库对数是什么
软件开发能否直接入账
跟网络安全有关的专业
c 如何在数据库插入数据
空间管理服务器无反应
企业网站后台的数据库
数据库与基础知识
天马时空网络技术联络电话
网络安全法知识宣传普及
黄陂靠谱的软件开发公司

