版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<iostream> /数据流输入输出#include<fstream>/文件输入输出#include<string>/字符串操作#include<iomanip>/参数化输入输出#include<time.h>/时间库函数using namespace std;/命名空间class Bus_inforprivate: static int Bus_No;/静态数据成员,统计当前所有的Bus_infor对象的数目char start20;/起点站char end20;/终点站int Bus_order;/班次号 int
2、 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();/输出函数void output(ofstream & os);/写入函数void Order_tickt(int n);/定票函数void Unorder_tickt(int n);/
3、退票函数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_end()const;/返回终点站的字符串;int Bus_infor:Bus_No=1;Bus_infor:Bus_infor() Bus_No+; tickted=0;Bu
4、s_infor:Bus_infor() Bus_No-;void Bus_infor:input()cout<<"ttt按提示输入:"<<endl;cout<<"输入班次: "while(1)cin>>Bus_order;if (cin.fail()/判断输入的数据类型是否有错cout << "n班次输入错误,请重新输入:"cin.clear();cin.get();else break;cout<<"请输入车的额定座位数: "while(1)
5、cin>>all_tickted;if (cin.fail()/判断输入的数据类型是否有错cout << "n座位数输入错误,请重新输入:"cin.clear();cin.get();else break;GetTime_start();cout<<"请输入行车时间:"while(1)cin>>GoHour;if (cin.fail()/判断输入的数据类型是否有错cout << "n行车时间输入错误,请重新输入:"cin.clear();cin.get();else brea
6、k;cout<<"请输入起始站与终点站:" cin>>start;cin>>end;cout<<"是否清空售票(y/n)?"char a;cin>>a;if(a='y'|a='Y') tickted=0;void Bus_infor:input(ifstream & is) is>>Bus_order>>Hour_start>>Minute_start>>start>>end>>GoH
7、our>>all_tickted>>tickted;is.get(); void Bus_infor:output()cout<<" "<<Bus_order<<"t"if(Minute_start=0)/判断发车时的分钟时刻,若为分则在后面多显示个,以符合时间格式cout<<Hour_start<<":"<< Minute_start<<"0t"elsecout<<Hour_start<&
8、lt;":"<< Minute_start<<"t"cout<<start<<"t"<<end<< "t"<<GoHour<<"t "<<all_tickted<<"t "<<tickted; if(!GetTime()cout<<"t 此班已出发"<<endl;elsecout<<&quo
9、t;t 此班未出发"<<endl;void Bus_infor:output(ofstream & os) os<<setw(6)<<Bus_order/setw()设置输出宽度<<setw(15)<<Hour_start<<setw(15)<<Minute_start<<setw(15)<<start<<setw(6)<<end<<setw(15)<<GoHour<<setw(15)<<all_t
10、ickted<<setw(15)<<tickted<<endl;void Bus_infor:GetTime_start()cout<<"请输入始发时间(时分):"while(1)cin>>Hour_start>>Minute_start;if (cin.fail()/判断输入的数据类型是否有错cout << "n时间输入错误,请重新输入:"cin.clear();cin.get();else if(Hour_start<0|Hour_start>24|Min
11、ute_start<0|Minute_start>60)cout<<"n时间格式出错,请重新输入:"/判断时间格式是否出错,小时不能小于大于,分钟不能小于大于elsebreak;bool Bus_infor:GetTime()struct tm *local; time_t t; t=time(NULL); local=localtime(&t);/获取当前系统时间if(local->tm_hour<Hour_start|(local->tm_hour=Hour_start && local->tm_m
12、in<=Minute_start)return 1; /比较当前时间与发车时间,获得班次的当前状况,返回表示班次未出发elsereturn 0;/返回表示班次已出发void Bus_infor:Order_tickt(int n)tickted=tickted+n;void Bus_infor:Unorder_tickt(int n)tickted=tickted-n;string Bus_infor:Get_end()conststring s=end;return s;class Bus_linkpublic:Bus_link()head=new Bus_infor;head->
13、;next=NULL;key=0;/带参数的构造函数Bus_link()delete head;/析构函数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();/清除函数
14、void about();/关于车票信息 char mainmenu();/主菜单函数 void 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(p->next)p=p->next;while(n
15、)p2=new Bus_infor;p2->input();p->next=p2;p2->next=NULL;p=p->next; Bus_link:setkey(1);cout<<"ttt按继续,按返回: "cin>>n;if(!cin)throw string("数据输入错误");elsecout<<"ntt对不起,游客不能录入车票信息"<<endl;void Bus_link:show()cout<<"客车基本信息如下:"&l
16、t;<endl <<"班次发车时间 起点站 终点站 行车时间额定载量已定票人数当前状况"<<endl;Bus_infor *p;p=head;while(p->next)(p->next)->output();p=p->next;void Bus_link:found()Bus_infor *p;int num,n;char name20;docout<<"tt1:按班次查找,2:按终点站查找: "cin>>n;if(!cin)throw string("数据输入错误
17、");while(n<1|n>2);if(n=1)cout<<"ttt输入班次: "cin>>num;if(!cin)throw string("数据输入错误");if(n=2)cout<<"ttt输入终点站: "cin>>name;if(!find(&p,num,name)cout<<"tt找不到你要查找的内容!"<<endl;return;int Bus_link:find(Bus_infor *p1,int
18、num,char *pn)Bus_infor *p;p=head;int t=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;retur
19、n t;void Bus_link:del()if(password=1)Bus_infor *p,*p2;int num;char name20;cout<<"ttt输入班次号: "cin>>num;if(!cin)throw string("数据输入错误");if( !find(&p,num,name) )cout<<"tt找不到你要删除的内容!"<<endl;return;cout<<"nttt确定删除(y/n)?"char a;cin>
20、;>a;if(a='y'|a='Y') p2=p->next;p->next=p2->next;delete p2;Bus_link:setkey(1);elsecout<<"ntt对不起,游客不能删除车票信息"<<endl;void Bus_link:mend()if(password=1)Bus_infor *p;int num;char name20;cout<<"ttt输入班次号: "cin>>num;if(!cin)throw string(
21、"数据输入错误");if( !find(&p,num,name) )cout<<"tt找不到你要修改的内容!"<<endl;return;(p->next)->input();Bus_link:setkey(1);elsecout<<"ntt对不起,游客不能修改车票信息"<<endl;void Bus_link:Order()if(password=1)Bus_infor *p;cout<<"nttt确定购票(y/n)?"char X;
22、cin>>X;if(X='y'|X='Y')int num;cout<<"nttt输入班次号: "cin>>num;if(!cin)throw string("数据输入错误");if( !find(&p,num,"") )cout<<"ntt找不到你要定票的车辆的内容!"<<endl;return;p=p->next;if(!(p->GetTime()/判断要定票的车辆是否已经出发,若已经出发则不允许定票
23、cout<<"ntt你要订票的车辆已出发!"<<endl;return;cout<<"nttt输入要定的票数"int n;cin>>n;if(!cin)throw string("数据输入错误");if(p->Get_tickted()+n)<=p->Get_all_tickted()p->Order_tickt(n);else cout<<"ntt对不起,没有足够的票数。"<<endl;else if(X='n
24、'|X='N') cout<<"谢谢使用"<<endl;else cout<<"nttt输入字符不确定"<<endl;Bus_link:setkey(1);elsecout<<"ntt对不起,订购车票请在管理员处购买"<<endl;void Bus_link:Unorder()if(password=1)Bus_infor *p;cout<<"nttt确定退票(y/n)?"char X;cin>>
25、X;if(X='y'|X='Y')int num;cout<<"nttt输入班次号: "cin>>num;if(!cin)throw string("数据输入错误");if( !find(&p,num,"") )cout<<"ntt找不到你要退票的车辆的内容!"<<endl;return;if(!(p->GetTime()/判断要定票的车辆是否已经出发,若已经出发则不允许定票cout<<"ntt你要退
26、票的车辆已出发!"<<endl;return;cout<<"nttt输入要退的票数"int n;cin>>n;if(!cin)throw string("数据输入错误");p=p->next;if(p->Get_tickted()-n)>=0)p->Unorder_tickt(n);else cout<<"nttt对不起,数据出错!。"<<endl;else if(X='n'|X='N') cout<&l
27、t;"谢谢使用"<<endl;else cout<<"nttt输入字符不确定"<<endl;Bus_link:setkey(1);elsecout<<"ntt对不起,退还车票请在管理员处退还"<<endl;void Bus_link:save()if(password=1)Bus_infor *p;p=head;ofstream os("bus.txt",ios:out);/文件以输出方式打开if (Bus_link:getkey()=1)while(p-
28、>next)(p->next)->output(os);p=p->next;cout<<"ttt文件已保存! "<<endl;Bus_link:setkey(0);elsecout<<"ntt对不起,游客无法保存车票信息"<<endl;void Bus_link:about()cout<<endl<<"关于车票管理系统"<<endl<<""<<endl;cout<<&quo
29、t;使用说明:"<<endl<<"t1.请按照操作提示输入正确的格式,以保证系统正常运行;"<<endl<<"t2.当使用管理员登陆时,需输入密码,可进行对系统的所有操作;"<<endl<<"t3.当使用游客身份登陆时,无需输入密码,但只能浏览和查询车票信息;"<<endl<<"t4.车票信息用文本文档格式,保存在本程序文件夹目录下,可以直接打开查看."<<endl<<endl<&
30、lt;"系统说明:"<<endl<<"t本系统为课程设计作品,可以简易的进行车票管理,欢迎提出意见和建议"<<endl <<"t漳州师范学院级计算机科学与工程系非师四班t "<<endl<<endl;void Bus_link:begin()password=0;Bus_infor *p,*p2;p=head;clear();long t;ifstream is("bus.txt",ios:in);/文件以输入方式打开if(!is)ofstre
31、am os("bus.txt",ios:out);/文件以输出方式打开os.close();/关闭文件return ;int num=-1;while(1) num=-1;t=is.tellg();/记录下当前位置is>>num;is.seekg(t);/移动到原来位置if(num<0) is.close();return;p2=new Bus_infor;p2->input(is);/输入is对象内容p->next=p2;p2->next=NULL;p=p->next;void Bus_link:clear()Bus_infor
32、*p,*p2;p=head->next;while( p )p2=p;p=p->next;delete p2;char Bus_link:mainmenu()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,来判断功能选择是否输入错误cout<<"nn 欢迎使用车票管理系统"
33、<<endl<<endl;cout<<" "<<endl<<" "<<endl<<" 1. 录入车票信息 2. 浏览车票信息 "<<endl<<" 3. 查询车票信息 4. 删除车票信息 "<<endl<<" 5. 修改车票信息 6. 定购车票信息 "<<endl<<" 7. 退还车票信息 8. 保存车票信息 "<&
34、lt;endl<<" 9. 关于车票系统 0. 退出系统 "<<endl<<" "<<endl<<" "<<endl<<"tttt "<<s1<<endl<<endl;while(password=0)cout<<"tt请选择用户名(1.管理员;2.游客): "int n;cin>>n;if(!cin)throw string("数据输入错误");if(n=1)cout<<"ntt请输入管理员密码: "int m;cin>>m;if(m=123456)password=1;cout<<endl;break;elsecout<<"ntt密码输入不正确n"<<endl;elsepassword=2;/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械租赁发票合同范例
- 合伙加盟合同范例
- 2025年运城货运资格证考试题答案
- 河北省邯郸市八年级语文上册 第五单元 第18课 苏州园林教学实录 新人教版
- 2025年海西驾校考试货运从业资格证考试
- 2025年河南货运从业资格证考试模拟考试题及答案解析
- 水产种苗供应合同范例
- 个人出售小产权房合同范例
- 2023九年级数学上册 第二十一章 一元二次方程21.2 解一元二次方程21.2.1 配方法第2课时 配方法教学实录(新版)新人教版
- 工人签劳务合同范例
- MOOC 中级会计学-中南财经政法大学 中国大学慕课答案
- 中国饮食文化智慧树知到期末考试答案2024年
- 《电力勘测设计企业安全生产标准化实施规范》
- 第五单元《京腔昆韵》-欣赏 ☆姹紫嫣红 课件- 2023-2024学年人音版初中音乐八年级下册
- 国家粮食和物资储备局招聘考试试题及答案
- 宿舍零食盒子项目策划
- 糖尿病治疗研究进展
- 工业互联网标准体系(版本3.0)
- 山东省菏泽市10校2023-2024学年高二上学期期末联考地理试题(含答案解析)
- 初一数学期中考试分析
- 松果体区肿瘤护理
评论
0/150
提交评论