车票管理系统1.docx

上传人:b****6 文档编号:3282806 上传时间:2022-11-21 格式:DOCX 页数:15 大小:17.19KB
下载 相关 举报
车票管理系统1.docx_第1页
第1页 / 共15页
车票管理系统1.docx_第2页
第2页 / 共15页
车票管理系统1.docx_第3页
第3页 / 共15页
车票管理系统1.docx_第4页
第4页 / 共15页
车票管理系统1.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

车票管理系统1.docx

《车票管理系统1.docx》由会员分享,可在线阅读,更多相关《车票管理系统1.docx(15页珍藏版)》请在冰豆网上搜索。

车票管理系统1.docx

车票管理系统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;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1