火车票订票系统代码C++

#include
#include
#include
#include
using namespace std;
struct node
{
string Num;
string SetoutTime;
string BegPlace;
string EndPlace;
string RunTime;
int Capacity;
int HumNum;
node *Next;
};
class Busman
{
private:
node *BusHead; //票信息头结点
public:
Busman(){BusHead=NULL;}
void FoundInfo(); //建表
void AddInfo(); //增记录
void SearchInfo(); //查询
void ShowInfo(); //显示
void ExitTicket(); //退票
void SellTicket(); //售票
void SaveInfo(); //保存
};

void Busman::FoundInfo()
{
node *p=NULL,*q;
int i,n;
cout<<"\n录入班次信息:\n";
cout<<"记录总数:";
cin>>n;
for (i=0; i{
q=p;
p=new node;
cout<<"班次:";
cin>>p->Num;
cout<<"发车时间:";
cin>>p->SetoutTime;
cout<<"起点:";
cin>>p->BegPlace;
cout<<"终点:";
cin>>p->EndPlace;
cout<<"行车时间:";
cin>>p->RunTime;
cout<<"客载量:";
cin>>p->Capacity;
p->HumNum=0;
if (Busman::BusHead==NULL)
Busman::BusHead=p;
else
q->Next=p;
cout<}
p->Next=NULL;
cout<<"建立完毕!"<}

void Busman::AddInfo()
{
node *p,*q;
q=Busman::BusHead;
while (q->Next!=NULL) q=q->Next;
p=new node;
cout<<"班次:";
cin>>p->Num;
cout<<"发车时间:";
cin>>p->SetoutTime;
cout<<"起点:";
cin>>p->BegPlace;
cout<<"终点:";
cin>>p->EndPlace;
cout<<"行车时间:";
cin>>p->RunTime;
cout<<"客载量:";
cin>>p->Capacity;
p->HumNum=0;
p->Next=NULL;
q->Next=p;
cout<<"添加成功!"<}
void Busman::ShowInfo()
{
string time;
node *p;
cout<<"当前时间为:";
cin>>time;
cout<<"班次"<<"\t"<<"发车时间"<<" "<<"起点"<<"\t"<<"终点"<<" "<<"行车时间"<<"\t"<<"客载量"<<" "<<"订票人数"<<"发出"<for (p=Busman::BusHead; p!=NULL; p=p->Next)
{
cout<Num<<"\t"<SetoutTime<<"\t"<BegPlace<<"\t"<EndPlace<<"\t"<RunTime<<"\t"<Capacity<<"\t"<HumNum;
if (time >= p->SetoutTime) cout<<"(已发车)"<else cout<<"(未发车)"<}
}

void Busman::SearchInfo()
{
int sel;
string s;
node *p;
cout<<"(1)班次查找"<cout<<"(2)终站查找"<cout<<">>>>选择:";
cin>>sel;
if (sel==1)
{
cout<<"输入查找的班次号:";
cin>>s;
}
else if (sel=2)
{
cout<<"输入查找的终点名称:";
cin>>s;

}
cout<<"班次"<<"\t"<<"发车时间"<<" "<<"起点"<<"\t"<<"终点"<<" "<<"行车时间"<<"\t"<<"客载量"<<" "<<"订票人数"<<"发出"<for (p=Busman::BusHead; p!=NULL; p=p->Next)
{
if ((sel==1 && p->Num==s) || (sel==2 && p->EndPlace==s))
{
cout<Num<<"\t"<SetoutTime<<"\t"<BegPlace<<"\t"<EndPlace<<"\t"<RunTime<<"\t"<Capacity<<"\t"<HumNum;
break;
}
}
if (p==NULL)
cout<<"未找到!"<}
void Busman::ExitTicket()
{
string s,t;
node *p;
cout<<"退票的班次是:";
cin>>s;
for (p=BusHead; p!=NULL; p=p->Next)
if (p->Num==s) break;
if (p==NULL)
{
cout<<"未找到班次!"<return;
}
cout<<"当前时间是:";
cin>>t;
if (t < p->SetoutTime)
{
p->HumNum--;
cout<<"退票成功!"<}
}
void Busman::SellTicket()
{
string t,s;
node *p;
cout<<"售票的班次是:";
cin>>s;
for (p=BusHead; p!=NULL; p=p->Next)
if (p->Num==s) break;
if (p==NULL)
{
cout<<"未找到班次!"<return;
}
cout<<"当前时间是:";
cin>>t;
if (t < p->SetoutTime && p->HumNum+1 <= p->Capacity)
{
p->HumNum++;
cout<<"售票成功!"<}
else
{
cout<<"该车已发或客载量已满!"<}
}

void Busman::SaveInfo()
{
node *p;
ofstream Ocout("Info.txt");
Ocout<<"班次"<<"\t"<<"发车时间"<<" "<<"起点"<<"\t"<<"终点"<<" "<<"行车时间"<<"\t"<<"客载量"<<" "<<"订票人数"<<"发出"<for (p=Busman::BusHead; p!=NULL; p=p->Next)
{
Ocout<Num<<"\t"<SetoutTime<<"\t"<BegPlace<<"\t"<EndPlace<<"\t"<RunTime<<"\t"<Capacity<<"\t"<HumNum<}
Ocout.close();
cout<<"保存成功!"<}
void ShowForm();

int main()
{
int sel;
Busman BusAdmin;
while (1)
{
system("cls");
ShowForm();
cin>>sel;
switch (sel)
{
case 1: BusAdmin.FoundInfo(); break;
case 2: BusAdmin.AddInfo(); break;
case 3: BusAdmin.ShowInfo(); break;
case 4: BusAdmin.SearchInfo(); break;
case 5: BusAdmin.SellTicket(); break;
case 6: BusAdmin.ExitTicket(); break;
case 7: BusAdmin.SaveInfo(); break;
case 0: return 0;
}
cout<fflush(stdin);
cout<<"按任意键返回主菜单:"<getch();
}
}

void ShowForm()
{
cout<<" Welcome to use the system! "<cout<<" "<cout<<" *******************************"<cout<<" * (1) 录入火车信息 *"<cout<<" * (2) 添加

火车信息 *"<cout<<" * (3) 浏览火车信息 *"<cout<<" * (4) 查询路线信息 *"<cout<<" * (5) 售票 *"<cout<<" * (6) 退票 *"<cout<<" * (7) 保存火车信息 *"<cout<<" * (0) 退出程序 *"<cout<<" *******************************"<cout<<" "<cout<<" Press the number you want to choose:";
}

相关文档
最新文档