#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; //满足要求的定票乘客的前结点,以作删除操作
//-------密码登入窗口函数----------
int Code_Verify()
{
char b[10];
char c[10]="zzl";//已经进行简单加密
char a;
int i=0,j,k=1,x;
// system("cls");
// cout<<"\n\n\n\n\n\n\n\n\n\t\t\t请输入系统密码:";
while(1)
{
system("cls");
cout<<"\n\n\n\n\n\n\n\n\n\t\t\t请输入系统密码:";
for(j=0;j<i;j++)
cout<<"●";
cout<<endl;
a=getch();
if(int(a)!=8||int(a)!=13)//不等于回车或退格键
b[i]=a;
if(int(a)==8)
{
i-=2;
system("cls");
cout<<"\n\n\n\n\n\n\n\n\n\t\t\t请输入系统密码:";
for(j=0;j<i;j++)
cout<<"●";
cout<<endl;
}
if(int(a)==13)
{
b[i]='\0';
if(strcmp(c,b)==0)
return 0;
else
{
if(k==3)
{
while (!kbhit())
{
system("cls");
for(x=0;x<100000000;x++);
cout<<"\n\n\n\n\n\n\n\n\t\t 你无权使用本系统,任意键退出系统..."<<endl;
for(x=0;x<100000000;x++);
}
return 1;
}
cout<<"\n\t\t 密码错误,你还有"<<3-k<<"次机会.请按任意键,重新输入."<<endl;
k++;
getch();
}
i=-1;
}
i++;
}
}
//-------启动画面函数----------
void Cover()
{
char line[]={"━━━━━━━━━━"};
char bar[]={"...."};
int i,j,k=0,x=0,y=0;
for(i=1;i<=strlen(line)/2;)
{
system("cls");
for(j=0;j<9;j++) //改变行坐标
cout<<endl;
for(j=0;j<(75-strlen(line))/2;j++) //改变列坐标
cout<<" ";
for(j=1;j<=i;j++) //进度显示器
cout<<"■";
for(x=strlen(line)/2;x>i;x--)
cout<<"□";
if(k==4)
i++;
cout<<endl;
for(j=0;j<(75-strlen(line))/2;j++) //行坐标定位
cout<<" ";
cout<<line; //输出线条
cout<<endl;
for(j=0;j<(65-strlen(bar))/2;j++)
cout<<" ";
cout<<(i-1)*10<<"% Loading";
cout.write(bar,k);
cout<<endl;
for(j=0;j<10;j++)
cout<<endl;
for(j=0;j<24;j++)
cout<<" ";
cout<<"正在启动航班订票系统!!!"<<endl;
for(j=0;j<24;j++)
cout<<" ";
for(j=0;j<=12;j++)
cout<<"─";
cout<<endl;
for(j=0;j<10000000;j++);//延时效果
k++;
if(k>4)
k=0;
}
}
//---------------菜单模板函数---------------
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]. 乘 客 管 理 │ │",\
"│ │[5]. 系 统 离 开 │ │"};
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->Plane_No;
while(1)
{
cout<<"\n\t\
没有合适的资源?快使用搜索试试~ 我知道了~
The-navigation--books-a-system.rar_航班订票
共1个文件
cpp:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 122 浏览量
2022-09-14
18:52:24
上传
评论
收藏 6KB RAR 举报
温馨提示
1)、录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 2)、查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; 3)、订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 4)、退票: 可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 5)、修改航班信息: 当航班信息改变可以修改航班数据文件
资源推荐
资源详情
资源评论
收起资源包目录
The-navigation--books-a-system.rar (1个子文件)
航空订票系统.cpp 24KB
共 1 条
- 1
资源评论
weixin_42653672
- 粉丝: 107
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 小波多尺度同步压缩变换一维数据转换二维图像的方法(Matlab代码和数据)
- 小波二阶同步压缩变换一维数据转换二维图像的方法(Matlab代码和数据)
- 小波同步提取变换一维数据转换二维图像的方法(Matlab代码和数据)
- cailiaocailiaocailiaocailiao.7z.txt
- fxtrace2024111023332001.log
- C# Winform 自定义控件 TextBox
- HengCe-18900-2024-2030全球与中国IO-Link技术市场现状及未来发展趋势-样本.docx
- java课程设计-拼图游戏.zip学习资源
- qt+udp+timer
- Java课程设计你画我猜小游戏之你猜我猜不猜.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功