#include<iostream.h>
void menu(); //主界面菜单
void fanhui(); //返回上一级
void fn1(); //管理员操作
void fn2(); //客户操作
void dingpiao();
void tuipiao();
void watch();
void browseticket();
void change();
struct b //定义一结构体,储存班次信息
{ char *banci;
int fajishijian;
int hangxingshijian;
int piaojia; };
class p //定义一类型,储存订票信息
{private:
char *name; //名字
char *banci; //班次
int piaoshu; //票数
public:
void set(char*pname,char*pbanci,int n); //输入储存定购票信息
void del(char*pname,char*pbanci,int n); //删除储存已订购车票信息
void play(); //打印出已订购车票信息
};
void p::set(char*pname,char*pbanci,int n) //定购票
{ name=pname;
banci=pbanci;
piaoshu=n; }
void p::del(char*pname,char*pbanci,int n) // 反退票
{
name=pname;
banci=pbanci;
piaoshu=n; }
void p::play() //打印出已订购票信息
{
cout<<endl<<"您的姓名是:"<<name<<endl
<<"您定的班次是:"<<banci<<endl
<<"您所要的票数是:"<<piaoshu<<endl<<endl;
}
void menu()
{
int a,b;
cout<<"\n ---------------------------------$\n";
cout<<"**欢迎该管理系统**\n";
cout<<"---------------------------------\n\n";
cout<<"1.管理员"<<endl
<<"2.乘客";
cin>>a;
if(a!=1&&a!=2)
{
cout<<"输入错误,请重新输入";
menu();
}
if(a==1)
{
cout<<"请输入密码并以回车键结束:";
cin>>b;
if(b!=8888)
{
cout<<"密码错误!\n请重新选择:";
menu();}
else fn1();
}
else
fn2();
}
void dingpiao(p pperson) //定购票
{
cout<<"\n欢迎订购车票!"<<endl;
cout<<"请输入您的名字:";
char n[10];
cin>>n;
cout<<"请输入您要的班次号:";
char b[10];
cin>>b;
cout<<"请输入您要的票数:";
int k;
cin>>k;
pperson.set(n,b,k);
pperson.play();
cout<<"\n无论何时!\n我们都会为您提供优质的服务!\n"<<endl;
int j=1; //返回上一级。用变量j循环完成返回上一级,j为真时,循环
while(j) //直到j重新输入为0时,跳出循环。而重新上一级的循环,达到返回上一级的功能
{ cout<<"返回上一级,请选择按键(0):";
cin>>j;
if(j!=0)
{
cout<<"输入错误,请按键(0)返回上一级。"<<endl;
}
}
}
void tuipiao(p pperson) // 返退机票
{ cout<<"\n即将为您提供退票服务!"<<endl;
cout<<"请输入您的名字:";
char n[10];
cin>>n;
cout<<"请输入您要退的班次号:";
char b[10];
cin>>b;
cout<<"请输入您要退的票数:";
int k;
cin>>k;
pperson.set(n,b,k);
cout<<"您已退票\n欢迎下次光临!";
cout<<"\n无论何时\n我们都会为您提供优质的服务!\n"<<endl;
int j=1; //返回上一级
while(j)
{
cout<<"返回上一级,请选择按键(0):";
cin>>j;
if(j!=0)
{
cout<<"sorry!输入错误,请按键(0)返回上一级。"<<endl;
}
}
}
void change(b pbanji[]) //修改航班信息
{
cout<<"\n修改机票信息!"<<endl;
cout<<"请输入班次序号(0--4)";
int a;
cin>>a;
cout<<"客车班次:"<<pbanji[a].banci<<endl
<<"发车时间:"<<pbanji[a].fajishijian<<endl
<<"到站时间:"<<pbanji[a].hangxingshijian<<endl
<<"票价:"<<pbanji[a].piaojia<<endl;
cout<<"请您修改信息"<<endl
<<"客车班次:";
char p[3];
cin>>p;
pbanji[a].banci=p;
cout<<"发车时间:";
int m;
cin>>m;
pbanji[a].fajishijian=a;
cout<<"到站时间:";
int n;
cin>>n;
pbanji[a].hangxingshijian=n;
cout<<"票价:";
int k;
cin>>k;
pbanji[a].piaojia=k;
cout<<"\n无论何时\n我们都会为您提供优质的服务!\n"<<endl;
int j=1; //返回上一级
while(j)
{
cout<<"返回上一级,请选择按键(0):";
cin>>j;
if(j!=0)
{
cout<<"sorry!输入错误,请按键(0)返回上一级。"<<endl;
}
}
}
fanhui(int &j) //返回主页面函数
{ while(j)
{
cout<<"返回上一级,请选择按键(0):";
cin>>j;
if(j!=0)
{
cout<<"sorry!输入错误,请按键(0)返回上一级。"<<endl;
}
}
return j;
}
void fn1()
{ int j,c;
b pbanji[5]={{"A",1,6,1000},{"B",2,7,1500},{"C",3,8,2000},{"D",4,9,2500},{"D",5,10,3000}};
p pperson;
while(j) //用变量j循环完成返回上一级,j为真时,循环
//直到j重新输入为0时,跳出循环。而重新q的循环,即返回主页面
cout<<"1.定购机票"<<endl
<<"2.反退机票"<<endl
<<"3.查看班次信息"<<endl
<<"4.查询班次信息"<<endl
<<"5.修改班次信息"<<endl
<<"0.返回主界面"<<endl
<<"请按键选择(0--5):";
cin>>c;
if(c!=0&&c!=1&&c!=2&&c!=3&&c!=4&&c!=5)
{
cout<<"您输入的选项不存在,请重新输入:";
fanhui(j);
break;}
else
switch(c)
{
case 1:dingpiao(pperson);break; //定购票
case 2:tuipiao(pperson);break; //反退票
//查看班次信息
//查询班次信息
case 5:change(pbanji);break; //修改班次信息
case 0:menu();break;
}
}
}
void fn2()
{
int j,c;
b pbanji[5]={{"A",1,6,1000},{"B",2,7,1500},{"C",3,8,2000},{"D",4,9,2500},{"D",5,10,3000}};
p pperson;
while(j)
{
cout<<"1.定购车票"<<endl
<<"2.反退车票"<<endl
<<"3.查看班次信息"<<endl
<<"4.查询班次信息"<<endl
<<"0.返回主界面"<<endl
<<"请按键选择(0--4):";
cin>>c;
if(c!=0&&c!=1&&c!=2&&c!=3&&c!=4)
{
cout<<"您输入的选项不存在,请重新输入:";
fanhui(j);break;
}
else
switch(c)
{
case 1:dingpiao(pperson);break; //定购票
case 2:tuipiao(pperson);break; //反退票
//查看航班信息
//查询航班信息
case 0:menu();break; //返回主页面函数
}
}
}
void main()
{
menu();}