#include
#include
#include
#include
using namespace std;
ifstream infile1;
ifstream infile2;
ifstream infile3;
class qclx
{
string checi;
string start,end;
string type;
string distance;
string statime,endtime;
double price;
int zws;
public:
void input();
void output();
friend void change1();
};
void qclx::input()
{
infile1>>checi;
infile1>>start;
infile1>>end;
infile1>>type;
infile1>>distance;
infile1>>statime;
infile1>>endtime;
infile1>>price;
infile1>>zws;
}
void qclx::output()
{
cout<<checi<<" "<<start<<" "<<end<<" "<<type<<" "<<distance<<" "
<<statime<<" "<<endtime<<" "<<price<<" "<<zws<<endl;
}
class pwxx
{
string checi;
string time;
int ydps,syps;
public:
void input();
void output();
friend void change();
friend void change1();
};
void pwxx::input()
{
infile2>>checi;
infile2>>time;
infile2>>ydps;
infile2>>syps;
}
void pwxx::output()
{
cout<<checi<<" "<<time<<" "<<"已订票数:"<<ydps<<" "<<"剩余票数:"<<syps<<endl;
}
class dpxx
{
string name;
string num;
string checi;
string date;
string zws;
public:
void input();
void output();
};
void dpxx::input()
{
infile3>>name;
infile3>>num;
infile3>>checi;
infile3>>date;
}
void dpxx::output()
{
cout<<name<<" "<<num<<" "<<checi<<" "<<date<<endl;
}
qclx r1[20];pwxx r2[20];dpxx r3[20];int j=10;
void Input()
{
infile1.open("lyt.txt");
infile2.open("lyt2.txt");
infile3.open("lyt3.txt");
for(int i=0;i
r1[i].input();
for(i=0;i
r2[i].input();
for(i=0;i
r3[i].input();
infile1.close();
infile2.close();
infile3.close();
}
void Output()
{
infile1.open("lyt.txt");
infile2.open("lyt2.txt");
infile3.open("lyt3.txt");
for(int i=0;i
r1[i].output();
cout<<endl;
for(i=0;i
r2[i].output();
cout<<endl;
for(i=0;i
r3[i].output();
infile1.close();
infile2.close();
infile3.close();
}
void change()
{
infile1.open("lyt.txt");
infile2.open("lyt2.txt");
infile3.open("lyt3.txt");
char c1;string str1;int m,n;
cout<<"你是想订票还是退票???1:订票,2:退票。";cin>>n;
switch(n)
{
case 1:
{
cout<<"是否想预定车票 Y or N:";
while(cin>>c1)
{
if(c1=='Y'||c1=='N')
break;
else cout<<"输入错误,请重新输入:";
}
while(c1=='Y')
{
system("cls");
for(int i=0;i
r1[i].output();
cout<<endl;
aa: cout<<"请输入所要乘的第几条路线?";cin>>m;
if(r2[m-1].syps<1)
{
cout<<"该趟车次没有剩余车票!!!"<<endl<<"是否想重新输入路线???Y or N:";
cin>>c1;
if(c1=='Y') goto aa ;
}
else
{
r2[m-1].output();
--r2[m-1].syps;
++r2[m-1].ydps;
cout<<"该车次车票最新数据:"<<endl;
r2[m-1].output();
}
cout<<"是否想继续订票???Y or N:";cin>>c1;
}
break;
}
case 2:
{
cout<<"是否想退定车票 Y or N:";cin>>c1;
while(c1=='Y')
{
system("cls");
for(int i=0;i
r1[i].output();
cout<<endl;
cout<<"请输入想要退订的序号1~10: ";cin>>m;
r2[m-1].output();
--r2[m-1].syps;
r2[m-1].output();
c1='N';break;
}
}
}
infile1.close();
infile2.close();
infile3.close();
}
void change1()
{
infile1.open("lyt.txt");
infile2.open("lyt2.txt");
infile3.open("lyt3.txt");
char c1;int m;
cout<<"是否想修改路线信息???Y or N:";
while(cin>>c1)
{
if(c1=='Y'||c1=='N')
break;
else
cout<<"输入错误,请重新输入。";
}
while(c1=='Y')
{
cout<<"1:增加路线,2:删除路线,3:修改路线: ";cin>>m;
switch(m)
{
case 1:{cout<<"请输入想要新增的路线,例如:k343 九江 武汉 普通火车343公里 2012年3月24号 2012年3月24号 324 122";
cin>>r1[j].checi>>r1[j].start>>r1[j].end>>r1[j].type>>r1[j].distance>>r1[j].statime>>\
r1[j].endtime>>r1[j].price>>r1[j].zws;j++;
for(int i=0;i
r1[i].output();
}break;
case 2:{cout<<"请输入要删除的路线:";cin>>m;
for(m=m-1;m
r1[m]=r1[m+1];
for(int i=0;i
r1[i].output();
}break;
case 3:{cout<<"请输入要修改的路线:";cin>>m;
r1[m].output();
cout<<"请重新输入汽车路线的数据:"<<endl;
cin>>r1[--m].checi>>r1[m].start>>r1[m].end>>r1[m].type>>r1[m].distance>>r1[m].statime>>\
r1[m].endtime>>r1[m].price>>r1[m].zws;
cout<<"请重新输入该路线的票务信息:"<<endl;
cout<<"车次 "<<"时间 "<<"已定票数 "<<"剩余票数 "<<endl;
cin>>r2[m].checi>>r2[m].time>>r2[m].ydps>>r2[m].syps;
}break;
}
cout<<"是否想继续修改路线信息 ? ? ? ";cin>>c1;
}
infile1.close();
infile2.close();
infile3.close();
}
void glz()
{
infile1.open("lyt.txt");
infile2.open("lyt2.txt");
infile3.open("lyt3.txt");
int n=1,mm=3;char a[6]={'l','y','t','l','y','t'},b[6];
cout<<"请输入管理者密码(你有三次输入机会):"<<endl;
while(n!=0)
{
n=0;
for(int i=0;i<6;i++)
{
b[i]=_getch();
_putch('*');
}
cout<<endl;
for(i=0;i<6;i++)
{
if(a[i]!=b[i])
n++;
}
if(n!=0)
cout<<"ERROR!!! 请重新输入密码(你还有"<<--mm<<"次机会): "<<endl;
if(mm==0)
cout<<"你输入密码错误的次数超过三次哦!!!等你过段是假想好了密码在过来吧哈···"<<endl;
change1();
system("cls");
for( i=0;i
r1[i].output();
cout<<endl;
for(i=0;i
r2[i].output();
cout<<endl;
for(i=0;i
r3[i].output();
}
infile1.close();
infile2.close();
infile3.close();
}
char stop()
{
char c;
cout<<"是否想退出系统??? Y or N :";cin>>c;
return c;
}
int main()
{
system("title 长途运输信息");
system("color 87");
char c='Y';
int m;
putchar(004);
cout<<" 1,票务信息查看。 ";
putchar(004);
cout<<" 2,订票退票管理。"<<endl;
putchar(004);
cout<<" 3,路线增加删除修改。";
putchar(004);
cout<<" 4,退出车辆信息查询系统。"<<endl;
Input();
while(c=='Y')
{ infile1.open("lyt.txt");
infile2.open("lyt2.txt");
infile3.open("lyt3.txt");
cout<<"请输入你想要进入的服务:";
cin>>m;
switch(m)
{
case 1:Output();break;
case 2:change();break;
case 3:glz();break;
case 4:c=stop();break;
}
infile1.close();
infile2.close();
infile3.close();
}
infile1.close();
infile2.close();
infile3.close();
return 0;
}
lyt.txt
T111 上饶 上海 普通火车 343公里 2012年3月24号 2012年3月24号 324 122
T222 上饶 北京 普通火车 443公里 2012年3月28号 2012年3月25号 354 122
D333 南昌 江苏 动车 232公里 2012年9月24号 2012年9月24号 234 122
D444 南昌 上海 动车 343公里 2012年3月24号 2012年3月24号 324 122
T555 上饶 新疆 普通火车 643公里 2012年9月24号 2012年9月27号 656 122
T666 瑞昌 哈尔滨 普通火车 712公里 2012年8月24号 2012年8月26号 667 122
T777 南昌 瑞昌 普通火车 80公里 2012年7月8号 2012年7月8号 24 122
T888 瑞昌 南昌 普通火车 80公里 2012年2月24号 2012年2月24号 23 122
T999 上饶 广州 普通火车 342公里 2012年2月26号 2012年2月27号 243 122
T000 广东 上海 普通火车 445公里 2012年12月24号 2012年12月24号 439 122
lyt2.txt
T111 2012年1月17 100 22
T222 2012年2月11 101 21
D333 2012年3月8 102 20
D444 2012年4月24 103 19
T555 2012年5月12 104 18
T666 2012年6月16 105 17
T777 2012年7月4 106 16
T888 2012年8月13 107 15
T999 2012年9月24 108 14
T000 2012年9月4 109 13
lyt3.txt
李一 360481199302253621 T225 2012年12月23号
王二 360481199302254389 T335 2012年11月21号
张三 360481199302252451 T775 2012年9月16号
李四 360481199302258372 T795 2012年8月21号
周五 360481199302257481 T155 2012年7月22号
蔡六 360481199302252166 T545 2012年5月11号
万七 360481199302254543 T685 2012年6月7号
于八 360481199302259087 T224 2012年4月5号
方久 360481199302251234 T121 2012年3月19号
蒋十 360481199302253523 T970 2012年2月27号