配色: 字号:
车票管理系统
2012-06-14 | 阅:  转:  |  分享 
  
#include

#include

#include//设置后面的setw()之类的

#include

usingnamespacestd;

classBus_ticket//------------类_1

{

private:

intnum;//班次号

staticintbus_num;//静态数据成员,统计当前所有的bus_ticket对象的数目

charstart[20];//起始站

charend[20];//终点站

intbus_order;//班次号

intall_ticket;//载量

intticket;//已定票人数

inthour_start,minutes_start;//起始时间

inthour_end,minutes_end;//到站时间

inthour,minutes;//行车时间

public:

Bus_ticket();

~Bus_ticket();

Bus_ticketnext;

voidinput();//录入函数

voidoutput();//输出函数

voidSetTimeStart();//录入发车时间

voidSetTimeEnd();//录入到站时间

voidSetAddre();//录入起始点

voidSetTime();//获取行车时间

voidOrderTicket(intn);//订票函数

voidQuitTicket(intn);//退票函数

intGetNum(){returnnum;}//返回班次号

intGetAll_ticket(){returnall_ticket;}//返回载量

intGetTicket(){returnticket;}//返回已定票人数

charGetStart(){returnstart;}//返回发车时间

charGetEnd(){returnend;}//返回到站时间

voidGetTime();//显示行车时间

intGetBus_order(){returnbus_order;}//返回当前所有的bus_ticket对象的数目

};

intBus_ticket::bus_num=1;

Bus_ticket::Bus_ticket()

{

num=bus_num++;

ticket=0;

}

Bus_ticket::~Bus_ticket()

{

bus_num--;

}

voidBus_ticket::input()

{

system("cls");

cout<<"请按提示输入:"<
cout<<"输入车次(整数3位):";

cin>>bus_order;

cout<<"输入车的限定载量(整数):"<
cin>>all_ticket;

SetTimeStart();

SetTimeEnd();

SetTime();

GetTime();

SetAddre();

chara;

cout<<"是否清空售票(y/n):";

cin>>a;

if(a==''y''||a==''Y'')

ticket=0;

}

voidBus_ticket::SetTimeStart()//录入发车时间

{

intnewH=0,newM=0;

cout<<"请输入发车时间(如:1120):"<
cin>>newH>>newM;

hour_start=newH;

minutes_start=newM;

}

voidBus_ticket::SetTimeEnd()//录入到站时间

{

intnewH=0,newM=0;

cout<<"请输入到站时间(如:1310):"<
cin>>newH>>newM;

hour_end=newH;

minutes_end=newM;

}

voidBus_ticket::SetTime()//获得行车时间

{

if(minutes_end>=minutes_start)

{

minutes=minutes_end-minutes_start;

hour=hour_end-hour_start;

}

else

{

minutes=minutes_end+60-minutes_start;

hour=hour_end-1-hour_start;

}

}

voidBus_ticket::GetTime()//显示行车时间

{

cout<<"显示行车时间:"<
cout<
}

voidBus_ticket::SetAddre()//录入起始点和终点站

{

cout<<"请输入起始站和终点站:"<
chara[20],b[20];

cin>>a;

cin>>b;

strcpy(start,a);

strcpy(end,b);

}

voidBus_ticket::output()

{



cout<<"客车基本信息:"<
cout<<"车次发车时间到站时间行车时间限定载量已订票人数起始站终点站"<
cout<
setw(7)<
setw(8)<
setw(8)<
setw(8)<
setw(10)<
setw(12)<
setw(9)<


}

voidBus_ticket::OrderTicket(intn)//订票函数

{

ticket+=n;

}

voidBus_ticket::QuitTicket(intn)//退票函数

{

ticket-=n;

}

/-----------------------------------/

classBus_link//------------类_2

{

private:

Bus_tickethead;//链表指针

intkey;//系统修改标志

public:

Bus_link();

voidInput();//录入车票信息

voidMend();//修改车票信息

voidDel();//删除车票信息

intFind(Bus_ticketpl,intnum,charpn);//查找函数

voidFound();//查询车票信息

voidShow();//显示车票信息

voidOrder();//订购车票信息

voidQuit();//退购车票信息

voidClear();//清除函数

charMenu();//主菜单函数

voidSetkey(intk){key=k;}//设置系统修改标志

intGetkey(){returnkey;}//返回系统修改标志

};

Bus_link::Bus_link()

{

head=newBus_ticket;

head->next=NULL;

key=0;

}

voidBus_link::Input()

{

Bus_ticketp,p2=NULL;

p=head;

intn;

while(p->next)//当下一个节点存在时,继续指向下一个节点

p=p->next;

while(n)

{

p2=newBus_ticket;

p2->input();

p->next=p2;

p2->next=NULL;

p=p->next;

Bus_link::Setkey(1);

cout<<"按1继续,按0返回:";

cin>>n;

if(!cin)//此处的含义很特殊

{

cout<<"输入数据错误!请重新输入:";

cin>>n;

}

system("cls");

}

}

voidBus_link::Order()

{

Bus_ticketp;

cout<<"确定购票(y/n):";

charX;

cin>>X;

system("cls");

if(X==''y''||X==''Y'')

{

intnum;

cout<<"输入车次号:";

cin>>num;

if(!Find(&p,num,"^"))

{

cout<<"找不到你要订票的车辆的内容!"<
return;

}

cout<<"请输入要订得票数:";

intn;

cin>>n;

p=p->next;

if((p->GetTicket()+n)<=(p->GetAll_ticket()))

{

p->OrderTicket(n);//

cout<<"购票成功,请及时上车:"<
}

else

cout<<"对不起,没有足够的票数!"<
}

elseif(X==''n''||X==''N'')

cout<<"谢谢使用!"<
else

cout<<"输入字符不确定!"<
Bus_link::Setkey(1);



}

voidBus_link::Quit()

{

Bus_ticketp;

cout<<"确定退票(y/n):";

charX;

cin>>X;

system("cls");

if(X==''y''||X==''Y'')

{

intnum;

cout<<"输入车次号:";

cin>>num;

if(!Find(&p,num,"^"))

{

cout<<"找不到你要退票车辆的内容!"<
return;

}

cout<<"请输入要退得票数:";

intn;

cin>>n;

p=p->next;

if((p->GetTicket()-n)>=0)

{

p->QuitTicket(n);

cout<<"退票成功!"<
}

else

cout<<"对不起,数据出错!"<
}

elseif(X==''n''||X==''N'')

cout<<"谢谢使用!"<
else

cout<<"输入字符不确定!"<
Bus_link::Setkey(1);

}

voidBus_link::Found()

{

Bus_ticketp;

intnum=-1,n=9;

charname[20]="^";

do

{

cout<<"1.按车次查找,2.按终点站查找:";

cin>>n;

}while(n<1||n>2);

system("cls");

if(n==1)

{

cout<<"输入车次:";

cin>>num;

}

if(n==2)

{

cout<<"输入终点站:";

cin>>name;

}

if(!Find(&p,num,name))

{

cout<<"找不到你要查找的内容!"<
return;

}

}

intBus_link::Find(Bus_ticketpl,intnum,charpn)

{

Bus_ticketp;

p=head;

intt=0;

while(p->next)

{

pl=p;

if(((p->next)->GetBus_order()==num)||(!strcmp((p->next)->GetEnd(),pn)))

{

(p->next)->output();

t=1;

break;

}

p=p->next;

}

returnt;

}

voidBus_link::Del()

{

Bus_ticketp,p2;

intnum;

cout<<"输入车次号:";

cin>>num;

if(!Find(&p,num,"^"))

{

cout<<"找不到你要删除的内容!"<
return;

}

p2=p->next;

p->next=p2->next;

deletep2;

cout<<"删除成功!"<
Bus_link::Setkey(1);

}

voidBus_link::Show()

{

Bus_ticketp;

p=head;

while(p->next)

{

(p->next)->output();

p=p->next;

}

}

voidBus_link::Mend()

{

Bus_ticketp;

intnum=-1;

charname[20]="^";

cout<<"输入车次号:";

cin>>num;

if(!Find(&p,num,name))

{

cout<<"找不到你要的修改的内容!"<
return;

}

(p->next)->output();

(p->next)->input();

Bus_link::Setkey(1);

}

voidBus_link::Clear()

{

Bus_ticketp,p2;

p=head->next;

while(p)

{

p2=p;

p=p->next;

deletep2;

}

}

charBus_link::Menu()

{

charn[20];

cout<<"\n\n欢迎使用车票管理系统\n\n";

cout<<"1.录入车票信息2.浏览车票信息"<
cout<<"3.查询车票信息4.删除车票信息"<
cout<<"5.修改车票信息6.订购车票信息"<
cout<<"7.退购车票信息"<
cout<<"0退出系统"<
cout<<""<
cout<<"请选择功能按钮:"<
cin>>n;

returnn[0];

}

intmain(

{

Bus_linkpp;

charn;

while(1)

{

n=pp.Menu();

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.Quit();break;

case''0'':

system("cls");

cout<<""<
cout<<"\t谢谢使用车票管理系统!"<
cout<<""<
system("pause");

system("cls");

break;

}

}

getch();

return0;

}

/有一个很大的缺点:就是不知道怎么退出系统!最后那个0健不成功:谢谢/

献花(0)
+1
(本文系Honey_Dog首藏)