/************************************************************
*版权所有(C)2014,李宁
*
*文件名称:订票系统.cpp
*文件标识:无
*内容摘要:改代码用于获取满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作者:李宁
*完成日期:2015.12.25
*
*修改日期:20151227
*修改人:李宁
*修稿内容:界面
注释
*/
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
struct flight //航班信息
{
int a1; //航班号
string a2; //起飞时间
string a3; //降落时间
char a4[10]; //起飞城市
char a5[10]; //降落城市
int a6; //价格
int a7; //票价折扣
int a8; //余票
}fl[10];
struct customer //客户信息
{
char name[10]; //定义字符型数组姓名name[10]
int seat; //定义整型变量座位号seat
int num; //定义整型变量航班号num
char no[18]; //证件号no
int ps; //订票数ps
string qfs; //起飞时间qfs
string jls; //降落时间jls
char qfd[10]; //起飞城市qfd
char jld[10]; //降落城市jld
int pj; //票价pj
}cu[200];
int cnum=3;
int len=0;
int A=0;
void luru(); //声明录入函数
void chaxun(); //声明查询函数
void chaxun1(); //声明查询方式1函数
void chaxun2(); //声明按查询方式2函数
void dingpiao(); //声明订票函数
void tuipiao(); //声明退票函数
void xiugai(); //声明修改函数
void menu(); //声明主菜单函数
void duqu(); //声明文件读取函数
void tuichu(); //声明退出并保存函数
/*
*功能描述:航班信息录入
*输入参数:航班号,起飞时间,降落时间,起飞城市,降落时间,票价,折扣,余票
*输出参数:无
*返回值:主菜单
*/
void luru()
{
cout<<"请输入航班信息:"<<endl;
cout<<"请输入航班号"<<endl;
cin>>fl[len].a1; //录入航班号
cout<<"起飞时间"<<endl;
cin>>fl[len].a2; //录入起飞时间
cout<<"降落时间"<<endl;
cin>>fl[len].a3; //录入降落时间
cout<<"起飞城市"<<endl;
cin>>fl[len].a4; //录入起飞城市
cout<<"降落城市"<<endl;
cin>>fl[len].a5; //录入降落城市
cout<<"票价"<<endl;
cin>>fl[len].a6; //录入票价
cout<<"折扣"<<endl;
cin>>fl[len].a7; //录入机票折扣
cout<<"剩余票量"<<endl;
cin>>fl[len].a8; //录入剩余票量
len++;
cout<<"请选择所要进行的操作"<<endl;
menu(); //录入完成跳转回菜单选择操作
}
/*
*功能描述:航班信息查询
*输入参数:1或2
*输出参数:操作信息
*返回值:主菜单
*/
void chaxun() //查询
{system("cls");
cout<<"请选择查询方式"<<endl;
cout<<"1.按航班号查询"<<endl;
cout<<"2.按城市查询"<<endl;
int t;
cin>>t; //选择查询方式
switch(t)
{
case 1:
chaxun1();
break;
case 2:
chaxun2();
break;
default:cout<<"输入的数据有误,请重新输入!"<<endl;
menu(); //输入错误返回主菜单重新输入
break;
}
}
void chaxun1() //按航班号查询航班信息
{
int n;
cout<<"请输入要查询的航班号:"<<endl;
cin>>n;
for(int j=0;j<len;j++)
if(fl[j].a1==n)
{
cout<<"***航班信息****"<<endl<<"航班号:"<<fl[j].a1<<'\t'<<"起飞时间:"<<fl[j].a2<<'\t'<<"降落时间:"<<fl[j].a3<<'\t'<<"起飞城市:"<<fl[j].a4<<'\t'<<"降落城市:"<<fl[j].a5<<'\t'<<"票价:"<<fl[j].a6<<'\t'<<"折扣:"<<fl[j].a7<<'\t'<<"剩余票量:"<<fl[j].a8<<endl;
break;} //输出航班信息
else
cout<<"没有对应的航班!"<<endl;getchar();
menu();
}
void chaxun2() //按起飞城市和降落城市查询航班信息
{
char m1[10],m2[10];
int j;
cout<<"请输入要查询的起始、降落城市:"<<endl;
cin>>m1>>m2; //输入起始城市和降落城市
for(j=0;j<len;j++)
if((strcmp(fl[j].a4,m1)==0)&&(strcmp(fl[j].a5,m2)==0))
{cout<<"***航班信息****"<<endl<<"航班号:"<<fl[j].a1<<'\t'<<"起飞时间:"<<fl[j].a2<<'\t'<<"降落时间:"<<fl[j].a3<<'\t'<<"起飞城市:"<<fl[j].a4<<'\t'<<"降落城市:"<<fl[j].a5<<'\t'<<"票价:"<<fl[j].a6<<'\t'<<"折扣:"<<fl[j].a7<<'\t'<<"剩余票量:"<<fl[j].a8<<endl;break;}//输出航班信息
if(j==10)
{ cout<<"没有对应的航班!"<<endl;}
menu();
}
/*
*功能描述:航班订票
*输入参数:客户姓名,航班号
*输出参数:订票成功
*返回值:主菜单
*/
void dingpiao() //订票
{
char Name[10]; int fn;int sign=0;
cout<<"请输入你的姓名和想订的航班号:"<<endl;
cin>>Name; //输入乘客姓名
cin>>fn; //输入乘客所要订的航班号
for(int i=0;i<len;i++)
{if(fl[i].a1==fn)
if(fl[i].a8>0)
{strcpy(cu[A].name,Name);
cu[A].num=fn;
cu[A].seat=fl[i].a8;
A++;fl[i].a8--;sign=1;
cout<<"订票成功!"<<endl;break;}
if(sign) break;
}
if(i==len)cout<<"航班号错误!"<<endl;
}
/*
*功能描述:航班退票
*输入参数:姓名,航班号
*输出参数:退票成功
*返回值:主菜单
*/
void tuipiao() //退票
{system("cls");
char Name[10];int fn;int sign=0;
cout<<"请输入你的姓名:";cin>>Name; //输入乘客姓名
cout<<"请输入航班号:";cin>>fn;cout<<endl; //输入乘客所订的航班的航班号
for(int i=0;i<len;i++)
{ if(fn==fl[i].a1)
for(int j=0;j<A;j++)
if(strcmp(Name,cu[j].name)==0)
{cout<<" 退票成功!"<<endl;fl[i].a8++;sign=1;break;}
if(sign)break;
}
if(i==len) cout<<"输入信息有误!退票失败"<<endl;
}
/*
*功能描述:航班信息修改
*输入参数:航班号
*输出参数:保存成功
*返回值:主菜单
*/
void xiugai() //修改航班信息
{
cout<<"输入航班号:"<<endl;
int num;cin>>num;
for(int i=0;i<len;i++)
if(fl[i].a1==num){num=i; cout<<"起飞时间:";cin>>fl[num].a2;cout<<"达到时间:";cin>>fl[num].a3;cout<<endl;break; }
if(i==len)cout<<"航班号错误!"<<endl;
}
void tuichu() //退出时保存录入和更改信息
{
ofstream nfile2("cus.dat",ios_base::binary); //输出方式打开文件
nfile2.close(); //关闭文件
ofstream infile2("cus.dat",ios_base::binary|ios_base::app); //输入方式打开文件
for(int i=0;i<A;i++)
{infile2.write((reinterpret_cast<char *>(&cu[i])),sizeof(customer));cout<<"写入成功!"<<endl;}//将乘客信息写入文件
infile2.close(); //关闭文件
ofstream nfile1("airline.dat",ios_base::binary); //输出方式打开文件
nfile1.close(); //关闭文件
ofstream infile1("airline.dat",ios_base::binary|ios_base::app); //输出方式打开文件
for( i=0;i<len;i++)
infile1.write((reinterpret_cast<char *>(&fl[i])),sizeof(flight));//将航班信息写入文件
infile1.close(); //关闭文件
}
/*
*功能描述:航班信息读取
*输入参数:任意键
*输出参数:文件内容
*返回值:主菜单
*/
void duqu() //读取文件信息
{
ifstream infile1("airline.dat",ios_base::binary);
while(infile1.peek()!=EOF)
{
infile1.read((reinterpret_cast<char *>(&fl[len])),sizeof(flight));//输入方式读取文件
cout<<"***航班信息****"<<endl<<"航班号:"<<fl[len].a1<<'\t'<<"起飞时间:"<<fl[len].a2<<'\t'<<"降落时间:"<<fl[len].a3<<'\t'<<"起飞城市:"<<fl[len].a4<<'\t'<<"降落城市:"<<fl[len].a5<<'\t'<<"票价:"<<fl[len].a6<<'\t'<<"折扣:"<<fl[len].a7<<'\t'<<"剩余票量:"<<fl[len].a8<<endl;
len++;
}
infile1.close();//关闭文件
ifstream infile2("cus.dat",ios_base::binary);
while(infile2.peek()!=EOF)
{infile2.read((reinterpret_cast<char *>(&cu[A++])),sizeof(customer));} //输入方式读取文件
infile2.close(); //关闭文件
getchar();system("cls");
}
/*
*功能描述:主菜单
*输入参数:无
*输出参数:服务项
*返回值:主菜单
*/
void menu()
{
cout<<"*******************航班订票系统*********************"<<endl;
cout<<""<<endl;
cout<<"1.录入航班信息"<<endl;
cout<<"2.查询航班信息"<<endl;
cout<<"3.订票"<<endl;
cout<<"4.退票"<<endl;
cout<<"5.修改航班信息"<<endl;
cout<<"6.退出系统"<<endl;
cout<<""<<endl;
cout<<"****************************************************"<<endl;
cout<<""<<endl; //菜单界面
int i;
cout<<"输入选项:"<<endl;
cin>>i; //选择菜单
switch(i)
{
case 1:
luru();
break;
case 2:
chaxun();
break;
case 3:
dingpiao();menu();
case 4:
tuipiao();
menu();
case 5:
xiugai();
menu();
case 6:
tuichu();
exit(1); //退出
break;
default:cout<<"输入的选项不合法,请重新输入"<<endl;
system("cls"); //清屏
menu();
}
}
void main()
{
cout<<" **************************************"<<endl;
cout<<" 欢迎使用订票系统"<<endl;
cout<<" **************************************"<<endl;
cout<<"读取"<<endl;duqu(); //跳转至读取航班信息文件
menu(); //菜单
}
课程设计
最新推荐文章于 2020-06-09 11:25:06 发布