版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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_o
2、rder;/班次号 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();/输出函数void output(ofstream & os);/写入函数void Order_tickt(int n);/定票函数void Unorder_t
3、ickt(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_end()const;/返回终点站的字符串;int Bus_infor:Bus_No=1;Bus_infor:Bus_infor() Bus_No+;
4、 tickted=0;Bus_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<<"请输入车的额定座位数: &
5、quot;while(1)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.ge
6、t();else break;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>>e
7、nd>>GoHour>>all_tickted>>tickted;is.get(); void Bus_infor:output()cout<<" "<<Bus_order<<"t"if(Minute_start=0)/判断发车时的分钟时刻,若为分则在后面多显示个,以符合时间格式cout<<Hour_start<<":"<< Minute_start<<"0t"elsecout<<Ho
8、ur_start<<":"<< Minute_start<<"t"cout<<start<<"t"<<end<< "t"<<GoHour<<"t "<<all_tickted<<"t "<<tickted; if(!GetTime()cout<<"t 此班已出发"<<endl;elsecou
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)
10、<<all_tickted<<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_st
11、art>24|Minute_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 && l
12、ocal->tm_min<=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_i
13、nfor;head->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
14、clear();/清除函数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->
15、;next;while(n)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<<"客车基本
16、信息如下:"<<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_i
18、nfor *p1,int 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-&
19、gt;next;return 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)?"
20、char a;cin>>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)
21、throw string("数据输入错误");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)?
22、"char X;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;els
24、e if(X='n'|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
25、X;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;if(!(p->GetTime()/判断要定票的车辆是否已经出发,若已经出发则不允许定票cout<<
26、;"ntt你要退票的车辆已出发!"<<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'
27、;) cout<<"谢谢使用"<<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
28、()=1)while(p->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;co
29、ut<<"使用说明:"<<endl<<"t1.请按照操作提示输入正确的格式,以保证系统正常运行;"<<endl<<"t2.当使用管理员登陆时,需输入密码,可进行对系统的所有操作;"<<endl<<"t3.当使用游客身份登陆时,无需输入密码,但只能浏览和查询车票信息;"<<endl<<"t4.车票信息用文本文档格式,保存在本程序文件夹目录下,可以直接打开查看."<<endl<
30、;<endl<<"系统说明:"<<endl<<"t本系统为课程设计作品,可以简易的进行车票管理,欢迎提出意见和建议"<<endl <<"t内蒙古科技大学软件专业14届学生设计t "<<endl<<endl;void Bus_link:begin()password=0;Bus_infor *p,*p2;p=head;clear();long t;ifstream is("bus.txt",ios:in);/文件以输入方式打开i
31、f(!is)ofstream 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
32、()Bus_infor *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<<"1. 录入车票信息n"<<endl; cout<<"2. 浏览车票信息n"<<endl;cout<<"3. 查询车票信息n"<<endl; cout<<"4. 删除车票信息n"<<endl;cout<<"5. 修改车票信息n"<<endl; cout<<"6. 定购车票
34、信息n"<<endl;cout<<"7. 退还车票信息n"<<endl; cout<<"8. 保存车票信息n"<<endl;cout<<"9. 关于车票系统n"<<endl;cout<<"0. 退出系统 n"<<endl;cout<<"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=)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年销售风险管理试题及答案
- 2025年教资招聘语文试卷及答案
- 2026年安全生产工作计划
- 2025年近期模考英语试卷及答案
- T/CHEC 007-2021自动平移门安装验收技术规范
- 招标代理公司制度与流程汇编
- 课题申报书:“职教出海”战略下中国职业教育国际化路径与策略研究
- 2025年广东省粤科金融集团有限公司招聘笔试参考题库含答案解析
- 2025年中国纳秒紫外激光器行业市场运行现状及投资规划建议报告
- 正式供销合同范例
- 成品保护图册
- 血透高钾患者个案护理
- 中国玉石及玉文化鉴赏智慧树知到期末考试答案章节答案2024年同济大学
- 影视音乐赏析智慧树知到期末考试答案2024年
- 2021-2022学年北京市西城区五年级(上)期末数学试卷及参考答案
评论
0/150
提交评论