您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > c++课程设计-车票管理系统
#includeiostream//数据流输入/输出#includefstream//文件输入/输出#includestring//字符串操作#includeiomanip//参数化输入/输出#includetime.h//时间库函数usingnamespacestd;//命名空间classBus_infor{private:staticintBus_No;//静态数据成员,统计当前所有的Bus_infor对象的数目charstart[20];//起点站charend[20];//终点站intBus_order;//班次号intall_tickted;//额定载量inttickted;//已定票人数intHour_start,Minute_start;//发车时间floatGoHour;//行车时间public:Bus_infor();~Bus_infor();Bus_infor*next;voidinput();//录入函数voidinput(ifstream&is);//读取函数voidoutput();//输出函数voidoutput(ofstream&os);//写入函数voidOrder_tickt(intn);//定票函数voidUnorder_tickt(intn);//退票函数voidGetTime_start();//获取发车时间函数boolGetTime();//判断当前班次状况函数intGet_all_tickted(){returnall_tickted;}//内联函数,返回额定载量intGet_tickted(){returntickted;}//返回已定票人数intGet_bus_order(){returnBus_order;}//返回班次号stringGet_end()const;//返回终点站的字符串};intBus_infor::Bus_No=1;Bus_infor::Bus_infor(){Bus_No++;tickted=0;}Bus_infor::~Bus_infor(){Bus_No--;}voidBus_infor::input(){cout\t\t\t按提示输入:endl;cout输入班次:;while(1){cinBus_order;if(cin.fail())//判断输入的数据类型是否有错{cout\n班次输入错误,请重新输入:;cin.clear();cin.get();}elsebreak;}cout请输入车的额定座位数:;while(1){cinall_tickted;if(cin.fail())//判断输入的数据类型是否有错{cout\n座位数输入错误,请重新输入:;cin.clear();cin.get();}elsebreak;}GetTime_start();cout请输入行车时间:;while(1){cinGoHour;if(cin.fail())//判断输入的数据类型是否有错{cout\n行车时间输入错误,请重新输入:;cin.clear();cin.get();}elsebreak;}cout请输入起始站与终点站:;cinstart;cinend;cout是否清空售票(y/n)?;chara;cina;if(a=='y'||a=='Y')tickted=0;}voidBus_infor::input(ifstream&is){isBus_orderHour_startMinute_startstartendGoHourall_ticktedtickted;is.get();}voidBus_infor::output(){coutBus_order\t;if(Minute_start==0)//判断发车时的分钟时刻,若为分则在后面多显示个,以符合时间格式{coutHour_start:Minute_start0\t;}else{coutHour_start:Minute_start\t;}coutstart\tend\tGoHour\tall_tickted\ttickted;if(!GetTime())cout\t此班已出发endl;elsecout\t此班未出发endl;}voidBus_infor::output(ofstream&os){ossetw(6)Bus_order//setw()设置输出宽度setw(15)Hour_startsetw(15)Minute_startsetw(15)startsetw(6)endsetw(15)GoHoursetw(15)all_ticktedsetw(15)ticktedendl;}voidBus_infor::GetTime_start(){cout请输入始发时间(时分):;while(1){cinHour_startMinute_start;if(cin.fail())//判断输入的数据类型是否有错{cout\n时间输入错误,请重新输入:;cin.clear();cin.get();}elseif(Hour_start0||Hour_start24||Minute_start0||Minute_start60)cout\n时间格式出错,请重新输入:;////判断时间格式是否出错,小时不能小于大于,分钟不能小于大于elsebreak;}}boolBus_infor::GetTime(){structtm*local;time_tt;t=time(NULL);local=localtime(&t);//获取当前系统时间if(local-tm_hourHour_start||(local-tm_hour==Hour_start&&local-tm_min=Minute_start))return1;//比较当前时间与发车时间,获得班次的当前状况,返回表示班次未出发elsereturn0;//返回表示班次已出发}voidBus_infor::Order_tickt(intn){tickted=tickted+n;}voidBus_infor::Unorder_tickt(intn){tickted=tickted-n;}stringBus_infor::Get_end()const{strings=end;returns;}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);//查找函数voidfound();//查询车票信息voidshow();//显示车票信息voidOrder();//定购车票信息voidUnorder();//退还车票信息voidsave();//保存车票信息voidbegin();//初始化车票信息voidclear();//清除函数voidabout();//关于车票信息charmainmenu();//主菜单函数voidsetkey(intk){key=k;}//设置系统修改标志intgetkey(){returnkey;}//返回系统修改标志private:Bus_infor*head;//链表指针intkey;//系统修改标志intpassword;//管理员登陆标志};voidBus_link::input(){if(password==1){Bus_infor*p,*p2=NULL;p=head;intn=1;//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按继续,按返回:;cinn;if(!cin)throwstring(数据输入错误);}}elsecout\n\t\t对不起,游客不能录入车票信息endl;}voidBus_link::show(){cout客车基本信息如下:endl班次发车时间起点站终点站行车时间额定载量已定票人数当前状况endl;Bus_infor*p;p=head;while(p-next){(p-next)-output();p=p-next;}}voidBus_link::found(){Bus_infor*p;intnum,n;charname[20];do{cout\t\t1:按班次查找,2:按终点站查找:;cinn;if(!cin)throwstring(数据输入错误);}while(n1||n2);if(n==1){cout\t\t\t输入班次:;cinnum;if(!cin)throwstring(数据输入错误);}if(n==2){cout\t\t\t输入终点站:;cinname;}if(!find(&p,num,name)){cout\t\t找不到你要查找的内容!endl;return;}}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||(p-next)-Get_end()==pn){cout客车基本信息如下:endl班次发车时间起点站终点站行车时间额定载量已定票人数当前状况endl;(p-next)-output();t=1;}p=p-next;}returnt;}voidBus_link::del(){if(password==1){Bus_infor*p,*p2;intnum;charname[20];cout\t\t\t输入班次号:;cinnum;if(!cin)throwstring(数据输入错误);if(!find(&p,num,name)){cout\t\t找不到你要删除的内容!endl;return;}cout\n\t\t\t确定删除(y/n)?;chara;cina;if(a=='y'||a=='Y'){p2=p-next;p-next=p2-next;deletep2;Bus_link::setkey(1);}}elsecout\n\t\t对不起,游客不能删除车票信息endl;}voidBus_link::mend(){if(password==1){Bus_infor*p;intnum;charname[20];cout\t\t\t输入班次号:;cinnum;if(!cin)throwstring(数据输入错误);if(!find(&p,num,name)){cout\t\t找不到你要修改的内容!endl;return;}(p-next)-input();Bus_link::setkey(1);}elsecout\n\t\t对不起,游客不能修改车票信息endl;}voidBus_link::Order(){if(password==1){Bus_infor*p;cout\n\t\t\t确定购票(y/n)?;charX;cin
本文标题:c++课程设计-车票管理系统
链接地址:https://www.777doc.com/doc-6582869 .html