车票管理系统1.docx
《车票管理系统1.docx》由会员分享,可在线阅读,更多相关《车票管理系统1.docx(15页珍藏版)》请在冰豆网上搜索。
车票管理系统1
#include
#include
#include
#include
#include
usingnamespacestd;
classBus_infor{
intNo;
staticintBus_No;
charstart[20];
charend[20];
intBus_order;
intall_tickted;
inttickted;
intHour_start,Minute_start,Hour_end,Minute_end;
intHour;intMinute;
public:
Bus_infor*next;
Bus_infor();
~Bus_infor();
intGet_no();
intGet_all_tickted();
intGet_tickted();
intGet_bus_order();
char*Get_start();
char*Get_end();
voidaddr();
voidOrder_tickt(intn);
voidUnorder_tickt(intn);
voidGetTime_start();
voidGetTime_end();
voidShowTime();
voidGetTime();
voidShow_infor();
voidinput()
{
cout<<"\t\t\t按提示输入:
"<cout<<"\t\t输入车次:
";
cin>>Bus_order;
cout<<"请输入车的额定座位数:
";
cin>>all_tickted;
GetTime_start();
GetTime_end();
addr();
chara;
cout<<"是否清空售票(y/n)?
"<>a;
if(a=='y')tickted=0;
}
voidinput(ifstream&is){
is>>Bus_order>>start>>end>>all_tickted>>tickted>>Hour_start>>Minute_start>>Hour_end>>Minute_end;
is.get();
}
voidoutput()
{cout<<"客车基本信息如下:
"<cout<<"车次:
"<<<"始发站:
"<<<"终点站:
"<<<"额定人数:
"<<<"已售票"<<<"始发时间"<"<"<}
voidoutput(ofstream&os)
{
os<<<<<<<<<<}
};
intBus_infor:
:
Bus_No=1;
voidBus_infor:
:
GetTime_start(){
intNewH=0,NewM=0;
cout<<"请输入始发时间:
"<cin>>NewH>>NewM;
Hour_start=NewH;
Minute_start=NewM;
}
voidBus_infor:
:
GetTime_end(){
intNewH=0,NewM=0;
cout<<"请输入到站时间:
"<cin>>NewH>>NewM;
Hour_end=NewH;
Minute_end=NewM;
}
voidBus_infor:
:
GetTime(){
if(Minute_end>=Minute_start){Minute=(Minute_end-Minute_start);
Hour=(Hour_end-Hour_start);}
else{Minute=(Minute_end-Minute_start+60);Hour=(Hour_end-Hour_start-1);}
}
voidBus_infor:
:
ShowTime(){
cout<"<"<cout<"<}
Bus_infor:
:
Bus_infor(){
No=Bus_No++;
tickted=0;
}
Bus_infor:
:
~Bus_infor(){Bus_No--;}
//settheaddr
voidBus_infor:
:
addr(){
cout<<"请输入起始站与终点站:
"<chara[20];charb[20];
cin>>a;cin>>b;
strcpy(start,a);strcpy(end,b);
}
//Getthestartaddr
char*Bus_infor:
:
Get_start(){
returnstart;
}
//Gettheendaddr
char*Bus_infor:
:
Get_end(){
returnend;
}
//Gettheno
intBus_infor:
:
Get_no(){
returnNo;
}
intBus_infor:
:
Get_all_tickted(){
returnall_tickted;
}
intBus_infor:
:
Get_tickted(){
returntickted;
}
intBus_infor:
:
Get_bus_order(){
returnBus_order;
}
//orderthetickt
voidBus_infor:
:
Order_tickt(intn){
tickted=tickted+n;
}
voidBus_infor:
:
Unorder_tickt(intn){
tickted=tickted-n;
};
classBus_link{
public:
Bus_link(){head=newBus_infor;head->next=NULL;key=0;}
//~Bus_link(){deletehead;}
voidinput();
voidmend();
voiddel();
intfind(Bus_infor**p,intnum,char*pn);intfind1(Bus_infor**p,intnum,char*pn);
voidfound();
voidshow();
voidOrder();
voidUnorder();
voidsave();
voidbegin();
voidclear();
charmainmenu();
intgetkey(){returnkey;}
voidsetkey(intk){key=k;}
private:
Bus_infor*head;
intkey;
};
//录入函数
voidBus_link:
:
input()
{
Bus_infor*p,*p2=NULL;
p=head;
intn;
while(p->next)
p=p->next;
while(n)
{
p2=newBus_infor;
p2->input();
p->next=p2;
p2->next=NULL;
p=p->next;
Bus_link:
:
setkey
(1);
cout<<"\t\t\t按1继续,按0返回:
";
cin>>n;
}
}
//定票函数
voidBus_link:
:
Order(){
Bus_infor*p;
cout<<"确定购票(y/n)?
"<charX;cin>>X;
if(X=='y'){
intnum;
cout<<"\t\t\t输入车次号:
";
cin>>num;
if(!
find1(&p,num,"^"))
{
cout<<"\t\t找不到你要定票的车辆的内容!
"<return;
}
cout<<"输入要定的票数";
intn;cin>>n;
p=p->next;
if((p->Get_tickted()+n)<=p->Get_all_tickted())
p->Order_tickt(n);
elsecout<<"对不起,没有足够的票数。
"<}
elseif(X=='n')cout<<"谢谢使用"<elsecout<<"输入字符不确定"<Bus_link:
:
setkey
(1);
}
//退票函数
voidBus_link:
:
Unorder(){
Bus_infor*p;
cout<<"确定退票(y/n)?
"<charX;cin>>X;
if(X=='y'){
intnum;
cout<<"\t\t\t输入车次号:
";
cin>>num;
if(!
find1(&p,num,"^"))
{
cout<<"\t\t找不到你要定票的车辆的内容!
"<return;
}
cout<<"输入要退的票数";
intn;cin>>n;
p=p->next;
if((p->Get_tickted()-n)>=0)
p->Unorder_tickt(n);
elsecout<<"对不起,数据出错!
。
"<}
elseif(X=='n')cout<<"谢谢使用"<elsecout<<"输入字符不确定"<Bus_link:
:
setkey
(1);
}
//查找函数
voidBus_link:
:
found()
{
Bus_infor*p;
intnum=-1,n=9;
charname[20]="^";
do
{
cout<<"\t\t1:
按车次查找,2:
按终点站查找:
";
cin>>n;
}while(n<1||n>2);
if(n==1)
{
cout<<"\t\t\t输入车次:
";
cin>>num;
}
if(n==2){
cout<<"\t\t\t输入终点站:
";
cin>>name;
}
if(!
find(&p,num,name))
{
cout<<"\t\t找不到你要查找的内容!
"<return;
}
}
//子查找函数1
intBus_link:
:
find(Bus_infor**p1,intnum,char*pn)
{
Bus_infor*p;
p=head;
intt=0;
while(p->next)
{
(*p1)=p;
if((p->next)->Get_bus_order()==num||!
strcmp((p->next)->Get_end(),pn))
{(p->next)->output();t=1;}
p=p->next;
}
returnt;
}
//子查找函数2
intBus_link:
:
find1(Bus_infor**p1,intnum,char*pn)
{
Bus_infor*p;
p=head;
intt=0;
while(p->next)
{
(*p1)=p;
if((p->next)->Get_bus_order()==num||!
strcmp((p->next)->Get_end(),pn))
{return1;}
p=p->next;
}
return0;
}
//删除函数
voidBus_link:
:
del()
{
Bus_infor*p,*p2;
intnum;
cout<<"\t\t\t输入车次号:
";
cin>>num;
if(!
find(&p,num,"^"))
{
cout<<"\t\t找不到你要删除的内容!
"<return;}
p2=p->next;
p->next=p2->next;
deletep2;
Bus_link:
:
setkey
(1);
}
//显示函数
voidBus_link:
:
show()
{
Bus_infor*p;
p=head;
while(p->next)
{
(p->next)->output();
p=p->next;
}
}
//修改函数
voidBus_link:
:
mend()
{
Bus_infor*p;
intnum=-1;
charname[20]="^";
cout<<"\t\t\t输入车次号:
";
cin>>num;
if(!
find1(&p,num,name))
{
cout<<"\t\t找不到你要修改的内容!
"<return;
}
(p->next)->output();
(p->next)->input();
Bus_link:
:
setkey
(1);
}
//保存函数
voidBus_link:
:
save()
{
Bus_infor*p;
p=head;
ofstreamos("bus.txt",ios:
:
out);
if(Bus_link:
:
getkey()==1)
{
while(p->next)
{
(p->next)->output(os);
p=p->next;
}
}
cout<<"\t\t\t文件已保存!
"<Bus_link:
:
setkey(0);
}//初始化函数
voidBus_link:
:
begin()
{
Bus_infor*p,*p2;
p=head;
clear();
longt;
ifstreamis("bus.txt",ios:
:
in);
if(!
is)
{
ofstreamos("bus.txt",ios:
:
out);
os.close();
return;
}
intnum=-1;
while
(1)
{
num=-1;
t=is.tellg();
is>>num;
is.seekg(t);
if(num<0)
{
is.close();
return;
}
p2=newBus_infor;
p2->input(is);
p->next=p2;
p2->next=NULL;
p=p->next;
}
}
//清空函数
voidBus_link:
:
clear()
{
Bus_infor*p,*p2;
p=head->next;
while(p)
{
p2=p;
p=p->next;
deletep2;
}
}
//主选菜单函数
charBus_link:
:
mainmenu()
{
charn[6];
cout<<"\n\n————欢迎使用车票管理系统———"<cout<<"---------------------------------------------------------"<<<"---------------------------------------------------------"<<<"---------------------------------------------------------"<<<"1.录入车票信息2.浏览车票信息"<<<"3.查询车票信息4.删除车票信息"<<<"5.修改车票信息6.定购车票信息"<<<"7.退还车票信息8.保存车票信息"<<<"0:
退出系统"<<<"---------------------------------------------------------"<<<"---------------------------------------------------------"<<<"请选择功能按钮:
";
cin>>n;
returnn[0];
}
//主函数
intmain()
{
Bus_linkpp;
intk=1;
charn;
pp.begin();
while(k==1)
{
n=pp.mainmenu();//调用主菜单函数
switch(n)
{
case'1':
pp.input();break;//录入车票信息
case'2':
pp.show();break;//浏览车票信息
case'3':
pp.found();break;//查询车票信息
case'4':
pp.del();break;//删除车票信息
case'5':
pp.mend();break;//修改车票信息
case'6':
pp.Order();break;//保存车票信息
case'7':
pp.Unorder();break;//退还车票信息
case'8':
pp.save();break;//保存车票信息
case'0':
//退出系统
if(pp.getkey()==1)
{
cout<<"\t\t\t是否保存?
1:
保存0:
不保存:
";
cin>>k;
if(k==1)
pp.save();
}
pp.clear();
k=0;
break;
}
}
return0;
}