📄 hb.txt
字号:
#include"stdafx.h"
#include"stdio.h" //标准输入、输出头文件
#include"string.h" //包含字符串函数处理头文件
#include"stdlib.h" //包含动态存储与释放函数头文件
#include"iostream"
using namespace std;
#define N 10000
struct air //定义结构体数组
{
int num;
char start[20];
char over[20];
char time[10];
int count;
}
s[N];
int i;
int m=0;
void input(); //输入航班信息
void print(); //输出航班信息
void save(); //保存航班信息
void read(); //读取航班信息
void search(); //查找航班信息
void shanchu(); //删除航班信息
void dingpiao(); //订票信息
void tuipiao(); //退票信息
void xiugai(); //修改信息
void main()
{
int j;
cout<<" ★---您好,欢迎进入中国民航管理系统!---★ "<<endl;
cout<<"================================================================================";
do
{
cout<<" -------- ☆ 1.输入航班信息 ☆-------- "<<endl;
cout<<" -------- ☆ 2.浏览航班信息 ☆-------- "<<endl;
cout<<" -------- ☆ 3.修改航班信息 ☆-------- "<<endl;
cout<<" -------- ☆ 4.查找航班信息 ☆-------- "<<endl;
cout<<" -------- ☆ 5.删除航班信息 ☆-------- "<<endl;
cout<<" -------- ☆ 6.订票信息 ☆-------- "<<endl;
cout<<" -------- ☆ 7.退票信息 ☆-------- "<<endl;
cout<<" -------- ☆ 0.退出 ☆-------- "<<endl;
cout<<"================================================================================ "<<endl;
cout<<"请在0-7中选择以回车键结束:";
cin>>j;
if(j==1) input();//调用输入模块
if(j==2)print();//调用打印模块
if(j==3)xiugai();//调用修改模块
if(j==4)search();//调用查找模块
if(j==5)shanchu(); //调用删除模块
if(j==6)dingpiao();//调用订票模块
if(j==7)tuipiao();//调用退票模块
if(j==0)break;
}
while(j!='0'); //判断结束
cout<<"谢谢使用,再见! ";
}//主函数结束
void input()//打印模块程序
{
char f[]="2008china"; //设置密码
char z[10];
int y;
cout<<"请输入密码并以回车键结束: ";
cin>>z; //读取密码
if(strcmp(f,"2008china")==0)
{
cout<<"请依次输入航班信息(机票数位0结束输入): "<<endl;
cout<<"完成输入信息请键入w以回车键结束 "<<endl; //打印提示信息
cout<<"-------------------------------------------------------------------------"<<endl;
for(i=0;i<N;i++)
{
cout<<"请输入航班号: "<<endl;
cin>>s[i].num; //读取航班号
cout<<"请输入起始站: "<<endl;cin>>s[i].start;//读取起始站
cout<<"请输入终点站: "<<endl;
cin>>s[i].over;//读取终点站
cout<<"请输入时间: "<<endl;
cin>>s[i].time;//读取时间
cout<<"请输入机票数(机票数为0结束输入): "<<endl;
cin>>s[i].count;//读取机票数
m++;
cout<<"第"<<m<<"个信息已经输完是否继续?1继续, 0结束"<<endl;
cin>>y;
if(y==0) break;
else continue;
}
}
else
cout<<"输入密码错误!请检查您的密码是否正确!谢谢!再见! "<<endl;
}
void save()//保存模块程序
{
FILE *fp,*fp1;//定义文件指针
if((fp=fopen("chen.dat","wb"))==NULL)//打开文件并判断是否出错
{
cout<<"创建文件失败! "<<endl;//打印出错提示
getchar();
return;
}
if((fp1=fopen("hao.dat","wb"))==NULL)//打开文件并判断是否出错
{
cout<<"创建文件失败! "<<cout;//打印出错提示
getchar();
return;
}
for(i=0;i<m;i++)
if(fwrite(&s[i],sizeof(struct air),1,fp)==0)//向文件写入数据,并判断是否出错
cout<<"向文件输入数据失败! "<<endl;
fprintf(fp1,"%d",m);
fclose(fp);//关闭文件
fclose(fp1);//关闭文件
}
void read()//从文件读取信息模块
{
FILE *fp,*fp1;//定义文件指针
if((fp=fopen("chen.dat","rb"))==NULL)//打开文件,并判断是否出错
if((fp1=fopen("hao.dat","rb"))==NULL)//打开文件并判断是否出错
{
cout<<"创建文件失败! "<<endl;//打印出错提示
getchar();
return;
}
fscanf(fp1,"%d",&m);
fclose(fp1);//关闭文件
for(i=0;i<m;i++)
fclose(fp);//关闭文件
}
void print()//打印模块
{
char w[10];
read();//调用读取文件函数
cout<<"航班号 起始站 终点站 时间 机票数 "<<endl;
for(i=0;i<m;i++)
{
cout<<s[i].num<<" "<<s[i].start<<" "<<s[i].over<<" "<<s[i].time<<" "<<s[i].count<<endl;//打印信息
}
cout<<"请按任意键回车键结束返回上层菜单以: ";
scanf("%s",w);
}
void search()//查询模块
{
char name1[20];
char name2[20];
char ii[10];
int n,no;
do
{
cout<<"请选择查找方式: "<<endl;//打印查询方式菜单
cout<<"1.按航班号查找 "<<endl;
cout<<"2.按终点站查找 "<<endl;
cout<<"3.按航线查找 "<<endl;
cout<<"0.返回 "<<endl;
cout<<"请在0-3中选择: "<<endl;
cout<<"按其他键以回车键结束返回主菜单: ";
cin>>n;//读取查找方式
if(n==0)
break;
switch(n)
{
case 1:
cout<<"请输入航班号: "<<endl;
cin>>no;//航班号
break;
case 2:
cout<<"请输入终点站名称: "<<endl;
cin>>name2;//读取终点站
break;
case 3:
cout<<"请输入起始站名称: "<<endl;
cin>>name1;//读取起始站
cout<<"请输入终点站名称: "<<endl;
cin>>name2;//终点站
break;
}
}
read();//调用读取函数
for(i=0;i<m;i++)
{
if(strcmp(s[i].over,name1)==0&&strcmp(s[i].over,name2)==0)//按终点站起始站判断输出条件
{
cout<<" 查找航班信息成功! "<<endl;
cout<<"航班号 起始站 终点站 时间 机票数 "<<endl;
cout<<s[i].num<<" "<<s[i].start<<" "<<s[i].over<<" "<<s[i].time<<" "<<s[i].count<<endl;//打印信息
break;
}
if(s[i].num==no)//按航班号判断输出条件
{
cout<<" 查找航班信息成功! "<<endl;
cout<<"航班号 起始站 终点站 时间 机票数 "<<endl;
cout<<s[i].num<<" "<<s[i].start<<" "<<s[i].over<<" "<<s[i].time<<" "<<s[i].count<<endl;//打印信息
break;
}
}
no=0;//将航班号赋值为0
cout<<"没有您需要的信息或查找完毕: "<<endl;
cout<<"是否继续查找?请键入y或n以回车键结束 "<<endl;
cin>>i;
{
while(strcmp(ii,"y")==0);//判断结束
}
void shanchu()//删除模块
{
char name1[20];
char name2[20];
char ii[10];
char f[10];//设置密码
int no,n;
cout<<"请输入密码并以回车键结束: "<<endl;
cin>>f;//读取密码
if(strcmp(f,"2008china")==0) //判断密码是否正确
{
do
{
cout<<"请选择删除以方式回车键结束: "<<endl;//打印删除方式菜单
cout<<"*1.按航班号删除 "<<endl;
cout<<"*2.按航线删除 "<<endl;
cout<<"*0.返回 "<<endl;
cout<<"请在0-2中选择以回车键结束: "<<endl;
cin>>n;//读取删除方式
if(n==0)
break; //跳出循环
switch(n)
{
case 1:
cout<<"请输入航班号: "<<endl;
cin>>no;//读取航班号
read();//调用读取函数
break;//跳出循环
case 2:
cout<<"请输入起始站 名称: "<<endl;
cin>>name1;//读取起始站
cout<<"请输入终点站名称: "<<endl;
cin>>name2;//读取终点站
read();//调用读取函数
break;//跳出循环
}
for(i=0;i<m;i++)
cout<<"查找完毕或没有这个信息 "<<endl;
cout<<"是否继续删除 "<<endl;
cout<<"请键入y或n以回车键结束 "<<endl;
cin>>ii;//读取是否继续信息
save(); //调用读取函数
if(!strcmp(ii,"y")) //判断是否继续删除
cout<<"请按任意键以回车键结束返回上层菜单: "<<endl;
break;
}
while(n!=1&&n!=2&&n!=3&&n!=4&&n!=0); //判断结束
}
else
cout<<"对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见! "<<endl;
}
void dingpiao()//订票模块
{
int n;
char a[10];
do
{
search();//调用查询模块
cout<<"请输入您要订的机票数以回车键结束: "<<endl;
cin>>n;//读取所订机票数
if(n<0)
{
cout<<"请输入有效的机票数! "<<endl;//判断机票数是否出错
break;
}
if(s[i].count!=0&&s[i].count>=n)//判断是否出错
{
s[i].count=s[i].count-n;
save();//调用保存函数
cout<<"订票成功! "<<endl;
break;
}
if(s[i].count<n)//判断是否出错
{
cout<<"请输入有效的机票数: "<<endl;
break;
}
cout<<"是否继续? 请输入y或n以回车键结束: "<<endl;//判断是否继续订票
cin>>a;
}
while(!strcmp(a,"y"));//判断结束
}
void tuipiao()//退票模块
{
int n;
char a[10];
do
{
search();//调用查询模块
cout<<"请输入您要退的机票数目: "<<endl;
cin>>n;//输入所退票数
if(n<0) //判断票数是否有效
cout<<"请输入有效的机票数! "<<endl;
s[i].count=s[i].count+n;
save(); //调用保存模块
cout<<"退票成功! "<<endl;
cout<<"是否继续? 请键入y或n以回车键结束: "<<endl;//判断是否继续退票
cin>>a;
}
while(!strcmp(a,"y"));//判断并跳出循环
getchar();
}
void xiugai() //修改模块
{
struct xiu //定义结构体
{
int no;
char name1[20];
char name2[20];
char time[20];
int count;
}
x[1];
char j[10];
char f[10];//设置密码
int n;
cout<<"请输入密码并以回车键结束: "<<endl;
cin>>f;//读取密码
if(strcmp(f,"2008china")==0)//判断是否出错
{
read();//调用读取模块
do
{
cout<<"请选择修改方式: "<<endl;
cout<<"*1,按航班号修改: "<<endl;
cout<<"*2,按航线修改: "<<endl;
cout<<"请在1---2中修改以回车键结束: "<<endl;
cin>>n;//读取修改方式
switch(n)
{
case 1:cout<<"请输入航班号: "<<endl;
cin>>x[0].no;//读取航班号
break;
case 2:cout<<"请输入起始站: "<<endl;
cin>>x[0].name1;//读取起始站
cout<<"请输入终点站: ";
cin>>x[0].name2;//读取终点站
break;
}
for(i=0;i<m;i++)
{
if(strcmp(s[i].over,x[0].name1)==0&&strcmp(s[i].over,x[0].name2)==0)//判断输出条件
{
cout<<"航班号 起始站 终点站 时间 机票数 ";
cout<<s[i].num<<" "<<s[i].start<<" "<<s[i].over<<" "<<s[i].time<<" "<<s[i].count<<endl;
break;
}
if(s[i].num==x[0].no)//判断输出条件
{
cout<<"航班号 起始站 终点站 时间 机票数 "<<endl;
cout<<s[i].num<<" "<<s[i].start<<" "<<s[i].over<<" "<<s[i].time<<" "<<s[i].count<<endl;
break;
}
}
x[0].no=0; //将结构体中的号为零
cout<<"请输入新航班号、起始站、终点站、时间(星期几)、机票数: "<<endl;
cin>>x[0].no>>x[0].name1>>x[0].name2>>x[0].time>>x[0].count;//定义输入格式
s[i].num=x[0].no;//替换航班号
strcpy(s[i].start,x[0].name1);//替换其始站
strcpy(s[i].over,x[0].name2);//替换终点站
strcpy(s[i].time,x[0].time);//替换时间
s[i].count=x[0].count;//替换机票数
save();//调用保存模块
cout<<"是否继续?请键入y或n以回车键结束: "<<endl;
cin>>j;
{
while(strcmp(j,"y")==0); //判断结束
}
else
cout<<"对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见! "<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -