如何使用C++实现航空订票系统课程
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要介绍如何使用C++实现航空订票系统课程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下一、题目1.录入功能可以录入航班信息(如航班号,起飞降落时间,城市,
千家信息网最后更新 2024年11月22日如何使用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安全错误
数据库的锁怎样保障安全
数据库 中的数据完整性
网络服务器安全狗
软件开发田文峰
自学计算机网络技术难吗
什么叫做网络安全
华为软件开发员要求
数据库技术功能模块图
南京软件开发工资低
金蝶财务软件开发报表
ccna要学数据库吗
gis行业软件开发
网络安全的就业数据
2022信创服务器
数据库中的等值连接代码
安全的服务器设置方法
数据库的范式之间的包含关系
用友数据库读取失败是怎么回事
华珍山网络技术
数据库挂载
服务器做个人电脑
互联网 创新 科技 申报
r6服务器闪退
nodejs搭建本地服务器
杨浦区营销软件开发有哪些
中介服务超市软件开发
商品详情存数据库
现在铁锈战争的服务器哪来的
网易服务器怎么加材料
前端需要学网络安全
数据库如何转换表格上面图片