#include <iostream.h>
#include <process.h>
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <iomanip.h>
#define MAX 50
#define NULL 0
typedef struct Customer //已定票乘客信息
{
char Name[7]; //姓名
int Amount; //定票数
char Rank; //舱位等级
int Seat_No; //座位号
struct Customer *Next;
}Customer;
typedef struct Replace //替补乘客信息
{
char Name[7]; //姓名
int Amount; //定票数
char Rank; //舱位等级
char Seat_No; //座位号
struct Replace *Next;
}Replace,*PReplace;
typedef struct Flight //航线信息
{
char Des_Name[10]; //终点站名
char Flight_No[6]; //航班号
char Plane_No[6]; //飞机号
char Week_Day; //飞行周日
int Customer_Amount; //乘员定额
int Free_Amount; //剩余票数
float Price[3]; //舱位等级的价格
Replace *ReplName; //该航班的候补乘客名单
Customer *CustName; //该航班的已定票乘客名单
struct Flight *Next; //指示下一航线结点
}Flight,*PFlight;
int Customer_Count=0; //所有航线的定票乘客总数
Flight *Head; //航线头指针
Flight *p2; //航线结点指针
Customer *Custp1[MAX]; //各条航线乘客结点指针
Replace *Replp1[MAX]; //各条航线候补结点指针
int IsEmpty=1; //是否有定票乘客
int IsReplace=1; //是否有候补乘客
Customer *prior; //满足要求的定票乘客的前结点,以作删除操作
//---------------菜单模板函数---------------
char ModelMenu(char *s[],int Itemcount)
{
int i;
char answer;
system("cls");
cout<<"\n\n";
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t"<<s[0]<<endl;
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t "<<endl;
for(i=1;i<Itemcount;i++)
{
cout<<"\t\t\t"<<s[i]<<endl;
if(i+1!=Itemcount)
cout<<"\t\t\t "<<endl;
}
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t "<<endl;
cout<<"\t\t\t 输入菜单项";
cin>>answer;
return answer;
}
//---------------主菜单函数---------------
char MainMenu()
{
char *MenuItem[]={"火车客运订票系统菜单 "," [1]. 列 车 增 加 ",\
" [2]. 订 票 办 理 "," [3]. 退 票 办 理 "," [4]. 乘 客 管 理 ",\
};
return ModelMenu(MenuItem,6);
}
//---------------是否继续函数---------------
char Continue()
{
int i;
char answer;
while(1)
{
cout<<"\t\t ";
for(i=0;i<15;i++)
cout<<" ";
cout<<"\n\t\t\t 是否继续(Y/N)?";
cin>>answer;
if(answer=='y'||answer=='Y')
return 'y';
else if(answer=='n'||answer=='N')
return 'n';
else
cout<<"\t\t\t 输入错误,请重新输入!"<<endl;
}
}
//---------------操作出错函数---------------
void ErrorMess()
{
cout<<"\n\t\t\t对不起,没有相关菜单项,按任意键继续..."<<endl;
getch();
}
//-----------------系统退出-----------------
int ExitSystem()
{
char answer;
cout<<"\n\t\t\t 你确定是否真要离开系统吗(Y/N)?";
cin>>answer;
if(answer=='y'||answer=='Y')
return 1;
else
return 0;
}
//--------------操作提示函数-------------
void prefix(char *Item)
{
int i;
system("cls");
cout<<"\n\n\t\t\t "<<Item<<endl;
cout<<"\t\t ";
for(i=0;i<15;i++)
cout<<" ";
cout<<endl;
}
//--------------航线查找函数-------------
//Find_Line()为重载函数
int Find_Line(PFlight L,char *key)//引用调用
{
int flag=0; //该标志位0表示未找到相关信息,反之即找到,以下标志位同理
Flight *p1;
p1=L; //赋航线首地址
if(p1==p2) //首航线不作比较
return flag;
while(p1!=p2&&p1!=NULL) //本航班号不纳入比较范围,否则会一直提示航线不唯一
{
if(strcmp(p1->Flight_No,key)==0)
{
flag=1;
break;
}
p1=p1->Next;//指向下一航班结点
}
return flag;
}
int Find_Line(PFlight L,char *key,PFlight &p2,int &Flight_No)//引用调用
{
int flag=0; //该标志位0表示未找到相关信息,反之即找到
Flight *p1;
p1=L; //赋航线首结点
while(p1!=NULL)
{
if(strcmp(p1->Flight_No,key)==0)//不包括当前航线
{
flag=1;
p2=p1;
break;
}
p1=p1->Next; //指向下一航班结点
if(p1!=NULL) //遇结束符不作统计范围
Flight_No++;
}
return flag;
}
//-----------------航线添加函数-------------
void Line_Add()
{
Flight *p1; //建立临时航线结点
while(1)
{
if(Head==NULL)//航线为空
{
p1=p2=new Flight; //建立首个航线
Head=p2;
}
else
{
p1=new Flight; //建立航线结点
p2->Next=p1; //前一航线结点指向当前航班结点
p2=p1; //保留当前航班结点地址
}
prefix("设置路线");
cout<<"\t\t\t 设置终点站名:";
cin>>p2->Des_Name;
while(1) //数据合法性检验
{
cout<<"\n\t\t\t 设置列车号:";
cin>>p2->Flight_No;
if(Find_Line(Head,p2->Flight_No)) //存在航班号
cout<<"\n\t\t\t 输入的航班号不唯一!"<<endl;
else
break;
}
cout<<"\n\t\t\t 列车定额:";
cin>>p2->Customer_Amount;
cout<<"\n\t\t\t 卧铺票价:";
cin>>p2->Price[0];
cout<<"\n\t\t\t 软座票价:";
cin>>p2->Price[1];
cout<<"\n\t\t\t 硬座票价:";
cin>>p2->Price[2];
p2->Free_Amount=p2->Customer_Amount; //剩余票数与乘员定额相同
p2->CustName=NULL; //该航线定票乘客头指针为空
p2->ReplName=NULL; //初始候补名单为空
if(Continue()=='n')
{
p2->Next=NULL; //航线的下一结点为空
return;
}
}
}
//------------航线是否为空函数-------------
int Empty_Flight()
{
if(Head==NULL)
{
system("cls");
cout<<"\n\n\n\n\n\n\n\n\t\t SORRY,没有相关航线。按任意键返回..."<<endl;
getch();
return 1;
}
else
return 0;
}
//------------航线查看函数-----------------
void Line_See()
{
int Day;
Flight *p1;
p1=Head;
char *Week_Day[]={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
if(Empty_Flight()) //航班线为空
return;
prefix("订票统计");
cout<<" 票 价 "<<endl;
cout<<" 终点站名 列车号 乘员定额 剩余票数 "<<endl;
cout<<" 卧铺 软座 硬座 "<<endl;
while(p1!=NULL)
{
Day=p1->Week_Day-'0'-1;//数字转换相应星期数
cout<<" "<<setiosflags(ios::left)<<setw(8)<<p1->Des_Name<<" "<<setw(6)<<p1->Flight_No<<\
" "<<setw(6)<<p1->Plane_No<< " "<<setw(8)<<Week_Day[Day]<< "│ "<<setw(5)<<p1->Customer_Amount<<\
" "<<setw(5)<<p1->Free_Amount<<"│"<<setw(4)<<p1->Price[0]<<"│"<<setw(4)<<p1->Price[1]<<"│"<<setw(4)<<p1->Price[2]<<"│"<<endl;
p1=p1->Next;
if(p1!=NULL)
cout<<" "<<endl;
}
cout<<" "<<endl;
cout<<"\n\t\t\t 按任意键返回子菜单..."<<endl;
getch();
}
void Sub1Menu()
{
char *MenuItem[]
《航空订票系统详解》 在信息技术飞速发展的今天,航空订票系统已经成为了人们出行不可或缺的一部分。本文将深入探讨“hangkong.rar”压缩包中的航空订票系统,包括其核心功能、实现原理以及相关代码解析。 航空订票系统的核心功能是为用户提供便捷的机票预订服务。用户可以通过系统查询航班信息,包括航班号、起飞时间、到达时间、机型等,并进行预订操作。系统还应具备退改签功能,以及订单管理、支付接口整合等辅助功能。在这个名为“hangkong.rar”的压缩包中,可能包含了实现这些功能的源代码,如“课设.cpp”,这可能是课程设计或项目开发中的主要编程文件。 航空订票系统的实现涉及多个技术层面。基础架构通常包括前端界面、后端服务器和数据库三部分。前端负责展示信息和交互,后端处理业务逻辑,数据库则存储航班数据、用户信息和订单状态。"www.pudn.com.txt"可能是记录了项目来源或者参考资料的文本文件,对于理解系统开发背景和参考资源有一定帮助。 系统设计上,航空订票系统需要考虑高并发处理能力,以应对大量用户同时在线预订的情况。此外,安全性也是关键,系统需防止数据泄露,确保用户支付安全。在代码实现中,可能会用到多线程、异步处理、缓存优化等技术来提升性能。 “课设.cpp”可能包含了C++语言编写的代码,这在实现系统功能时,可能涉及到网络编程(如HTTP协议处理),数据库操作(如SQL查询),以及可能的加密算法(如SSL/TLS协议)用于数据传输的安全。C++作为强类型、面向对象的语言,适合处理复杂逻辑和高性能计算。 航空订票系统的支付接口通常会集成第三方支付平台,如支付宝、微信支付等,以实现在线支付功能。这部分的代码可能涉及到API调用,请求参数封装,以及支付状态的回调处理。 “hangkong.rar”中的航空订票系统是一个综合性的项目,涵盖了从用户界面到后台服务的完整流程。通过“课设.cpp”的源码分析,我们可以学习到如何构建一个实际运行的航空订票系统,而“www.pudn.com.txt”则提供了可能的参考资源。这个系统不仅展示了软件工程的实践,也体现了信息技术在现代生活中的重要作用。
- 1
- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整
- 粉丝: 104
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 011-PR剪辑技巧-视频嵌套.mp4
- 毕设&课程作业_基于C#的坦克大战。包含花里胡哨的地图随机生成、迷雾模式、排名系统....zip
- 毕设&课程作业_基于C#的课程设计学生宿舍管理系统.zip
- 毕设&课程作业_基于C#的人力资源管理系统.zip
- 010-PR剪辑技巧-时间轴制作剪辑.mp4
- 通过python实现快速排序代码示例.zip
- 014-PR剪辑技巧-工程文件打包技巧.mp4
- 毕设&课程作业_基于C#的医疗信息管理系统。.zip
- 毕设&课程作业_基于C#的实现KTV点歌系统.zip
- 毕设&课程作业_基于C#的功能齐全的书店管理系统.zip
- 015-PR剪辑技巧-批量导出技巧.mp4
- 013-PR剪辑技巧-工具面板功能详解.mp4
- 毕设&课程作业_基于C#的教务管理系统.zip
- 毕设&课程作业_基于C#的商用餐饮管理系统.zip
- 016-PR剪辑技巧-卡点视频作业.mp4
- 计及碳捕集电厂低碳特性的含风电电力系统源-荷多时间尺度调度方法 关键词:碳捕集电厂;综合灵活运行方式;需求响应;日前调度;实时调度 参考文档:计及碳捕集电厂低碳特性的含风电电力系统源-荷多时间尺