《c++课程设计-车票管理系统.pdf》由会员分享,可在线阅读,更多相关《c++课程设计-车票管理系统.pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、void Bus_link:input()Bus_infor p,*p2=NULL;p=head;int n;while(pnext)p=p-next;while(n)p2=new Bus_infor;p2-input();pnext=p2;p2next=NULL;p=p-next;Bus_link:setkey(1);coutn;#include/数据流输入输出#includefstream/文件输入输出#include/参数化输入输出#includetime。h/时间库函数 usingnamespace std;/命名空间 class Bus_infor private:staticint
2、 Bus_No;/静态数据成员,统计当前所有的Bus_infor对象的数目 char start20;/起点站 char end20;/终点站 int Bus_order;/班次号 int all_tickted;/额定载量 int tickted;/已定票人数 int Hour_start,Minute_start;/发车时间 float GoHour;/行车时间 public:Bus_infor();Bus_infor();Bus_infor next;void input();/录入函数 void input(ifstream is);/读取函数 void output();/输出函数
3、void output(ofstream os);/写入函数 void Order_tickt(int n);/定票函数 void Unorder_tickt(int n);/退票函数 void GetTime_start();/获取发车时间函数 bool GetTime();/判断当前班次状况函数 int Get_all_tickted()return all_tickted;/内联函数,返回额定载量 int Get_tickted()return tickted;/返回已定票人数 int Get_bus_order()return Bus_order;/返回班次号 string Get_e
4、nd()const;/返回终点站的字符串;int Bus_infor:Bus_No=1;Bus_infor::Bus_infor()Bus_No+;tickted=0;Bus_infor:Bus_infor()Bus_No-;void Bus_infor::input()cout”ttt按提示输入:”endl;cout”输入班次:;while(1)cinBus_order;if(cin.fail())/判断输入的数据类型是否有错 cout all_tickted;if(cin.fail()/判断输入的数据类型是否有错 cout n座位数输入错误,请重新输入:”;cin。clear();cin。
5、get();else break;GetTime_start();coutGoHour;if(cin.fail())/判断输入的数据类型是否有错 cout ”n行车时间输入错误,请重新输入:;cin.clear();cin.get();else break;coutend;couta;if(a=y|a=Y)tickted=0;void Bus_infor:input(ifstream is)isBus_order Hour_start Minute_start startend GoHour all_tickted tickted;is.get();void Bus_infor::output
6、()cout Bus_order”t;if(Minute_start=0)/判断发车时的分钟时刻,若为分则在后面多显示个,以符合时间格式 coutHour_start:Minute_start0t;else coutHour_start”:”Minute_startt;coutstart”t”end tGoHour”t all_tickted”t tickted;if(!GetTime()cout”t 此班已出发endl;else coutt 此班未出发”endl;void Bus_infor:output(ofstream&os)ossetw(6)Bus_order /setw()设置输出宽
7、度 setw(15)Hour_start setw(15)Minute_start setw(15)start setw(6)end setw(15)GoHour setw(15)all_tickted setw(15)tickted endl;void Bus_infor:GetTime_start()coutHour_startMinute_start;if(cin.fail()/判断输入的数据类型是否有错 cout 24|Minute_start0|Minute_start60)couttm_min=Minute_start)return 1;/比较当前时间与发车时间,获得班次的当前状况
8、,返回表示班次未出发 else return 0;/返回表示班次已出发 void Bus_infor:Order_tickt(int n)tickted=tickted+n;void Bus_infor:Unorder_tickt(int n)tickted=ticktedn;string Bus_infor::Get_end()const string s=end;return s;class Bus_link public:Bus_link()head=new Bus_infor;head-next=NULL;key=0;/带参数的构造函数 Bus_link()delete head;/析
9、构函数 void input();/录入车票信息 void mend();/修改车票信息 void del();/删除车票信息 int find(Bus_infor*p,int num,char pn);/查找函数 void found();/查询车票信息 void show();/显示车票信息 void Order();/定购车票信息 void Unorder();/退还车票信息 void save();/保存车票信息 void begin();/初始化车票信息 void clear();/清除函数 void about();/关于车票信息 char mainmenu();/主菜单函数 vo
10、id setkey(int k)key=k;/设置系统修改标志 int getkey()return key;/返回系统修改标志 private:Bus_infor head;/链表指针 int key;/系统修改标志 int password;/管理员登陆标志;void Bus_link:input()if(password=1)Bus_infor p,*p2=NULL;p=head;int n=1;/int n;while(pnext)p=p-next;while(n)p2=new Bus_infor;p2-input();pnext=p2;p2-next=NULL;p=pnext;Bus
11、_link:setkey(1);coutttt按继续,按返回:;cinn;if(!cin)throw string(”数据输入错误);else cout”ntt对不起,游客不能录入车票信息”endl;void Bus_link::show()cout”客车基本信息如下:endl ”班次发车时间 起点站 终点站 行车时间额定载量已定票人数当前状况”next;void Bus_link::found()Bus_infor p;int num,n;char name20;do coutn;if(!cin)throw string(数据输入错误);while(n1|n2);if(n=1)coutttt
12、输入班次:;cinnum;if(!cin)throw string(数据输入错误”);if(n=2)coutname;if(!find(&p,num,name))couttt找不到你要查找的内容!next)-Get_bus_order()=num|(p-next)Get_end()=pn)cout”客车基本信息如下:endl 班次发车时间 起点站 终点站 行车时间额定载量已定票人数当前状况”next)output();t=1;p=pnext;return t;void Bus_link::del()if(password=1)Bus_infor p,p2;int num;char name20
13、;cout”ttt输入班次号:;cinnum;if(!cin)throw string(”数据输入错误”);if(!find(p,num,name)couttt找不到你要删除的内容!”endl;return;couta;if(a=y|a=Y)p2=pnext;p-next=p2-next;delete p2;Bus_link::setkey(1);else coutntt对不起,游客不能删除车票信息endl;void Bus_link:mend()if(password=1)Bus_infor*p;int num;char name20;coutnum;if(!cin)throw string
14、(”数据输入错误”);if(!find(p,num,name))couttt找不到你要修改的内容!”input();Bus_link::setkey(1);else cout”ntt对不起,游客不能修改车票信息”endl;void Bus_link::Order()if(password=1)Bus_infor p;coutX;if(X=y|X=Y)int num;cout”nttt输入班次号:”;cinnum;if(!cin)throw string(”数据输入错误);if(!find(&p,num,”))cout”ntt找不到你要定票的车辆的内容!”next;if(!(pGetTime()
15、/判断要定票的车辆是否已经出发,若已经出发则不允许定票 cout”ntt你要订票的车辆已出发!endl;return;coutn;if(!cin)throw string(”数据输入错误);if(p-Get_tickted()+n)=pGet_all_tickted()pOrder_tickt(n);else coutntt对不起,没有足够的票数。endl;elseif(X=nX=N)cout谢谢使用endl;else cout”nttt输入字符不确定endl;Bus_link:setkey(1);else coutntt对不起,订购车票请在管理员处购买endl;void Bus_link::
16、Unorder()if(password=1)Bus_infor p;coutnttt确定退票(y/n)?;char X;cinX;if(X=y|X=Y)int num;coutnum;if(!cin)throw string(数据输入错误);if(!find(p,num,”)coutGetTime()))/判断要定票的车辆是否已经出发,若已经出发则不允许定票 coutUnorder_tickt(n);else cout”nttt对不起,数据出错!。”endl;elseif(X=nX=N)cout”谢谢使用”endl;else cout”nttt输入字符不确定”endl;Bus_link:se
17、tkey(1);else coutnext)(pnext)output(os);p=pnext;cout”ttt文件已保存!endl;Bus_link::setkey(0);else cout”ntt对不起,游客无法保存车票信息endl;void Bus_link::about()coutendl关于车票管理系统endl”endl;cout使用说明:”endl ”t1.请按照操作提示输入正确的格式,以保证系统正常运行;endl ”t2。当使用管理员登陆时,需输入密码,可进行对系统的所有操作;endl ”t3.当使用游客身份登陆时,无需输入密码,但只能浏览和查询车票信息;”endl ”t4.车票
18、信息用文本文档格式,保存在本程序文件夹目录下,可以直接打开查看。”endlendl ”系统说明:endl t本系统为课程设计作品,可以简易的进行车票管理,欢迎提出意见和建议endl ”t漳州师范学院计算机科学与工程系09非师四班t endlnum;is.seekg(t);/移动到原来位置 if(numinput(is);/输入is对象内容 p-next=p2;p2-next=NULL;p=pnext;void Bus_link::clear()Bus_infor*p,*p2;p=headnext;while(p)p2=p;p=pnext;delete p2;char Bus_link:main
19、menu()struct tm local;char s1128;time_t t;t=time(NULL);local=localtime(&t);strftime(s1,128,”%Y%m-d%H:M,local);/按照指定的格式,把时间保存在s1字符串里面 string s;/定义字符串s,来判断功能选择是否输入错误 coutnn 欢迎使用车票管理系统”endlendl;cout ”endl ”endl 1。录入车票信息 2。浏览车票信息 endl 3。查询车票信息 4。删除车票信息”endl 5.修改车票信息 6.定购车票信息”endl ”7。退还车票信息 8.保存车票信息 endl
20、 9。关于车票系统 0.退出系统 ”endl ”endl ”endl tttt ”s1endlendl;while(password=0)coutn;if(!cin)throw string(数据输入错误”);if(n=1)coutm;if(m=123456)password=1;coutendl;break;else cout”ntt密码输入不正确n”endl;else password=2;/游客身份标志 break;couts;if(s。length()!=1s00s09)/s。length()返回字符串的长度,即字符个数 coutk;if(!cin)throw string(数据输入错误);if(k=1)pp。save();pp。clear();k=0;catch(string s)couts”,为保护系统不崩溃,将自动退出系统!endl;system(”pause);return 0;