如何使用C++实现航空订票系统课程
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍如何使用C++实现航空订票系统课程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下一、题目1.录入功能可以录入航班信息(如航班号,起飞降落时间,城市,
千家信息网最后更新 2025年01月23日如何使用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安全错误
数据库的锁怎样保障安全
ibatis连接数据库
台湾英华字典数据库
40岁 软件开发 学历有用吗
分析师跟踪数据在哪个数据库
2018秋网络安全知识竞赛
ssh如何登陆服务器
云端用的是数据库
易学的网络技术
徐州智能化软件开发供应商
c++ ado访问数据库
高考网络软件开发方向专业
悍将传手游连接不上服务器
天津企业软件开发单价
如何从云端找回数据库
内蒙古软件开发培训哪个好
家庭网络安全管理办法
怎么查看网络安全日志
金特网络技术集团
久久玖互联网科技
网络技术基础代谢1300
教职工网络安全提示
大型数据库成绩查询
icc网络安全测试工作流程
应用系统数据库密码加密
用自己电脑做服务器怎么绑定域名
南京2011服务器散热器加工
软件开发人才和硬件工程师
凤凰网络安全科技馆
学术期刊数据库是什么意思
小白测评数据库魅族16s