📄 flight.cpp
字号:
#include "head.h"
//-------启动画面函数----------
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<<"程序设计:05计本一班曾鸣 李展 赖梁琳"<<endl;
for(j=0;j<24;j++)
cout<<" ";
for(j=0;j<=18;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<<"\n\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')
{
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<=16;j++)
cout<<"─";
cout<<endl;
for(j=0;j<10000000;j++);//延时效果
k++;
if(k>4)
k=0;
}
return 1;}
//return 1;
else
return 0;
}
//--------------操作提示函数-------------
void prefix(char *Item)
{
int i;
system("cls");
cout<<"\n\n\t\t\t 当前操作:"<<Item<<endl;
cout<<"\n\t\t ";
for(i=0;i<15;i++)
cout<<"─";
cout<<endl;
}
void save()//保存航班信息
{
FILE *fp,*fp1;//定义文件指针
if((fp=fopen("flight.text","wb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}
if((fp1=fopen("m.text","wb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}
for(i=0;i<m;i++)
if(fwrite(&f[i],sizeof(struct Flight),1,fp)==0)//向文件写入数据,并判断是否出错
printf("向文件输入数据失败!\n\n");
//if(add_m) m=Flight_Count;
fprintf(fp1,"%d",m);
fclose(fp);//关闭文件
fclose(fp1);//关闭文件
}
//从文件读取航班信息模块
void read()
{
FILE *fp,*fp1;//定义文件指针
if((fp=fopen("flight.text","rb"))==NULL)//打开文件,并判断是否出错
{
printf("出错,请检查文件是否存在 ");//打印出错提示
getchar();
}
if((fp1=fopen("m.text","rb"))==NULL)//打开文件并判断是否出错
{
printf(" 创建文件失败 按任意键返回住菜单\n\n");//打印出错提示
getchar();
return;
}
fscanf(fp1,"%d",&m);
fclose(fp1);//关闭文件
for(i=0;i<m;i++)
{
fread(&f[i],sizeof(struct Flight),1,fp);//从文件中读取信息
}
fclose(fp);//关闭文件
}
//客户信息保存模块程序
void save2()
{
FILE *fp3,*fp4;//定义文件指针
if((fp3=fopen("customer.text","wb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}
if((fp4=fopen("n.text","wb"))==NULL)//打开文件并判断是否出错
{
printf("创建文件失败!\n\n");//打印出错提示
getchar();
return;
}
for(j=0;j<n;j++)
if(fwrite(&c[j],sizeof(struct Customer),1,fp3)==0)//向文件写入数据,并判断是否出错
printf("向文件输入数据失败!\n\n");
fprintf(fp4,"%d",n);
fclose(fp3);//关闭文件
fclose(fp4);//关闭文件
}
//从文件读取客户信息模块
void read2()
{
FILE *fp3,*fp4;//定义文件指针
if((fp3=fopen("customer.text","rb"))==NULL)//打开文件,并判断是否出错
{
printf("出错,请检查文件是否存在 ");//打印出错提示
getchar();
}
if((fp4=fopen("n.text","rb"))==NULL)//打开文件并判断是否出错
{
printf(" 打开文件失败 按任意键返回住菜单\n\n");//打印出错提示
getchar();
return;
}
fscanf(fp4,"%d",&n);
fclose(fp4);//关闭文件
for(j=0;j<n;j++)
{
fread(&c[j],sizeof(struct Customer),1,fp3);//从文件中读取信息
}
fclose(fp3);//关闭文件
}
//-----------------航线添加函数-------------
void Line_Add()
{
int add_m=1;
int mm;
prefix("总航线情况");
cout<<"\t\t\t请输入要添加的航班总数:";
cin>>mm;
read();
Flight_Count=m;
for(i=Flight_Count;i<(Flight_Count+mm);i++)
{
cout<<endl;
cout<<"\t\t----------------------------------"<<endl;
cout<<"\t\t\t 请输入终点站名:";
cin>>f[i].Des_Name;
cout<<"\n\t\t\t 请输入航班号(唯一):";
cin>>f[i].Flight_No;
cout<<"\n\t\t\t 请输入飞机号:";
cin>>f[i].Plane_No;
while(1)
{
cout<<"\n\t\t\t 请输入飞行周日(1-7):";
cin>>f[i].Week_Day;
if(f[i].Week_Day<'1'||f[i].Week_Day>'7')
{
cout<<"\n\t\t 数据输入错误,按任意键继续输入."<<endl;
getch();
}
else
break;
}
cout<<"\n\t\t\t 请输入乘员定额:";
cin>>f[i].Customer_Amount;
cout<<"\n\t\t\t 请输入头等舱票价:";
cin>>f[i].Price[0];
cout<<"\n\t\t\t 请输入普通舱票价:";
cin>>f[i].Price[1];
cout<<"\n\t\t\t 请输入经济舱票价:";
cin>>f[i].Price[2];
f[i].Free_Amount=f[i].Customer_Amount; //剩余票数与乘员定额相同
}
Flight_Count+=mm;
m+=mm;
save();
if(Continue()=='n')
return ;
}
//------------航线是否为空函数-------------
int Empty_Flight()
{ read();
if(m==0)
{cout<<endl;
system("cls");
cout<<"\n\n\n\n\n\n\n\n\t\t 对不起,没有相关航线。按任意键返回..."<<endl;
getch();
return 1;
}
else
return 0;
}
//------------航线查看函数-----------------
void Line_See()
{
if(Empty_Flight()) //航班线为空
return;
prefix("航班查看");
cout<<" ┌────┬───┬───┬────┬────┬────┬────────┐"<<endl;
cout<<" │ │ │ │ │ │ │ 票 价 │"<<endl;
cout<<" │终点站名│航班号│飞机号│飞行周日│乘员定额│剩余票数├──┬──┬──┤"<<endl;
cout<<" │ │ │ │ │ │ │头舱│普舱│经舱│"<<endl;
cout<<" ├────┼───┼───┼────┼────┼────┼──┼──┼──┤"<<endl;
for(i=0;i<m;i++)
{cout<<" │"<<setiosflags(ios::left)<<setw(8)<<f[i].Des_Name<<"│"<<setw(6)<<f[i].Flight_No<<\
"│"<<setw(6)<<f[i].Plane_No<< "│"<<setw(7)<<"星期"<<f[i].Week_Day<< "│ "<<setw(5)<<f[i].Customer_Amount<<\
"│ "<<setw(5)<<f[i].Free_Amount<<"│"<<setw(4)<<f[i].Price[0]<<"│"<<setw(4)<<f[i].Price[1]<<"│"<<setw(4)<<f[i].Price[2]<<"│"<<endl;
cout<<" ├────┼───┼───┼────┼────┼────┼──┼──┼──┤"<<endl;
}
cout<<" └────┴───┴───┴────┴────┴────┴──┴──┴──┘"<<endl;
cout<<"\n\t\t\t 按任意键返回子菜单..."<<endl;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -