{
ofstream os(\ 文件以输出方式打开 os.close(); 关闭文件 return ; }
int num=-1; while(1) {
num=-1;
t=is.tellg(); 记录下当前位置 is>>num;
is.seekg(t); 移动到原来位置 if(num<0) {
is.close(); return; }
p2=new Bus_infor;
p2->input(is); 输入is对象内容 p->next=p2; p2->next=NULL; p=p->next; } }
(2)信息的添加
车票信息的录入,创建Bus_infor类和Bus_link对象,调用构造函数,输入车票的班次、额定座位数、始发时间、行车时间、起始站与终点站、,通过input函数实现。
void Bus_link::input() {
if(password==1) {
Bus_infor *p,*p2=NULL; p==1; int n; while(p->next)
p=p->next; while(n)
9 }
}
{ }
p2=new Bus_infor; p2->input(); p->next=p2; p2->next=NULL;
p=p->next; Bus_link::setkey(1);
cout<<\按1继续,按0返回: \cin>>n; if(!cin)
throw string(\数据输入错误\
else
cout<<\对不起,游客不能录入车票信息\
void Bus_infor::GetTime_start() { 错
{
cout << \时间输入错误,请重新输入:\cin.clear(); cin.get();
cout<<\请输入始发时间(时分):\while(1) {
判断输入的数据类型是否有
cin>>Hour_start>>Minute_start; if (cin.fail())
}
else
cout<<\时间格式出错,请重新输入:\判断时间格式是否出错,
if(Hour_start<0||Hour_start>24||Minute_start<0||Minute_start>60)
小时不能小于大于24,分钟不能小于大于60
else
break;
10 }
}
void Bus_infor::input() Bus_infor类中成员函数input的函数体
{ 数据
错
}
GetTime_start();
cout<<\请输入行车时间:\ while(1) {
11 cout<<\按提示输入:\
cout<<\输入班次: \while(1) { }
cout<<\请输入车的额定座位数: \while(1) {
cin>>all_tickted; if (cin.fail()) { } else
break;
cout << \座位数输入错误,请重新输入:\cin.clear(); cin.get();
判断输入的数据类型是否有
cin>>Bus_order; if (cin.fail()) { } else
break;
cout << \班次输入错误,请重新输入:\
cin.clear(); 清除刚才输入的cin.get();
重新输入
判断输入的数据类型是否有错
错
}
}
cin>>GoHour; if (cin.fail()) { } else
break;
cout << \行车时间输入错误,请重新输入:\cin.clear(); cin.get();
判断输入的数据类型是否有
cout<<\请输入起始站与终点站:\
cout<<\是否清空售票(yn)?\char a;cin>>a;
if(a=='y'||a=='Y') tickted=0;
cin>>start;cin>>end;
(3)信息的浏览
浏览客房信息,如果之前有文件信息,则直接输出,如果没有则需录入后才能输出。所以,先得有一个读取函数begin,再有一个浏览函数show。
void Bus_link::begin() {
password=0;
Bus_infor *p,*p2;
p=); 文件以输入方式打开 if(!is) {
ofstream os(\ 文件以输出方式打开 os.close(); 关闭文件 return ; }
int num=-1; while(1) {
num=-1;
t=is.tellg(); 记录下当前位置 is>>num;
12