《C++程序设计源代码(共12页).doc》由会员分享,可在线阅读,更多相关《C++程序设计源代码(共12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上/C+课程设计#include /数据流输入、输出#include /文件输入、输出#include /字符串操作#include /参数化输入/输出#include using namespace std; /命名空间class Bus_inforint No; /班次号 static int Bus_No; /静态数据成员,统计当前所有的Bus_infor对象的数目char start20; /起始站char end20; /终点站int Bus_order; /班次号 int all_tickted; /额定载量int tickted; /已定票人数int Ho
2、ur_start,Minute_start,Hour_end,Minute_end; /起始时间 int Hour,Minute; /行车时间public:Bus_infor();Bus_infor();Bus_infor *next;int Get_no()return No; /返回班次号 void input(); /录入函数 void input(ifstream & is); /读取函数void output(); /输出函数 void output(ofstream & os); /写入函数 void GetTime_start(); /录入发车时间void GetTime_end
3、(); /录入到站时间void addr(); /录入起始站int Get_all_tickted()return all_tickted; /返回额定载量int Get_tickted()return tickted; /返回已定票人数char *Get_start() return start; /返回发车时间char *Get_end()return end; /返回到站时间 void GetTime(); /获取行车时间void ShowTime(); /显示行车时间 int Get_bus_order()return Bus_order; /返回当前所有的Bus_infor对象的数目
4、 void Order_tickt(int n); /订票函数void Unorder_tickt(int n); /退票函数;int Bus_infor:Bus_No=1;void Bus_infor:input()coutttt按提示输入:endl;coutBus_order;coutall_tickted;GetTime_start();GetTime_end();GetTime();ShowTime();addr();char a;cout是否清空售票(y/n)?a;if(a=y|a=Y) tickted=0;void Bus_infor:input(ifstream & is)isB
5、us_orderstartendall_ticktedticktedHour_startMinute_startHour_endMinute_endHourMinute;is.get(); void Bus_infor:output()cout客车基本信息如下:endl;cout 车次 发车时间 到站时间 行车时间 额定载量 已订票人数 起点站 终点站endl;coutsetw(4) Bus_ordersetw(8)Hour_start: Minute_startsetw(8) Hour_end: Minute_endsetw(8)Hour:Minute setw(10)all_tickted
6、setw(10)tickted setw(11)startsetw(10)endendl; void Bus_infor:output(ofstream & os) ossetw(6)Bus_ordersetw(15)startsetw(6)endsetw(15)all_ticktedsetw(15)ticktedsetw(15)Hour_startsetw(15)Minute_startsetw(15)Hour_endsetw(15)Minute_endsetw(15)Hoursetw(15)Minuteendl;void Bus_infor:GetTime_start()int NewH=
7、0,NewM=0;cout请输入发车时间:NewHNewM;Hour_start=NewH;Minute_start=NewM;void Bus_infor:GetTime_end()int NewH=0,NewM=0;cout请输入到站时间:NewHNewM;Hour_end=NewH;Minute_end=NewM;void Bus_infor:GetTime()if(Minute_end=Minute_start)Minute=(Minute_end-Minute_start); Hour=(Hour_end-Hour_start); else Minute=(Minute_end-Mi
8、nute_start+60);Hour=(Hour_end-Hour_start-1);void Bus_infor:ShowTime() cout显示行车时间endl;coutHour:Minuteendl;Bus_infor:Bus_infor()No=Bus_No+; tickted=0;Bus_infor:Bus_infor() Bus_No-; void Bus_infor:addr()cout请输入起点站与终点站:a;cinb;strcpy(start,a);strcpy(end,b);void Bus_infor:Order_tickt(int n)tickted=tickted
9、+n;void Bus_infor:Unorder_tickt(int n)tickted=tickted-n;class Bus_linkpublic:Bus_link()head=new Bus_infor;head-next=NULL;key=0;void input(); /录入车票信息void mend(); /修改车票信息void del(); /删除车票信息int find(Bus_infor *p,int num,char *pn); /查找函数 void found(); /查询车票信息void show(); /显示车票信息 void Order(); /订购车票信息 vo
10、id Unorder(); /推定车票信息 void save(); /保存车票信息 void begin(); /初始化车票信息 void clear(); /清楚函数 char mainmenu(); /主菜单函数 void setkey(int k) key=k; /设置系统修改标志 int getkey() return key; /返回系统修改标志private: Bus_infor *head; /链表指针int key; /系统修改标志;void Bus_link:input()Bus_infor *p,*p2=NULL;p=head; int n;while(p-next)p=
11、p-next;while(n)p2=new Bus_infor;p2-input();p-next=p2;p2-next=NULL;p=p-next; Bus_link:setkey(1);coutn;if(!cin)throw string(数据输入错误);void Bus_link:Order()Bus_infor *p;cout确定购票(y/n)?X;if(X=y)int num;coutnum;if( !find(&p,num,) )couttt找不到你要定票的车辆的内容!endl;return;coutn;p=p-next;if(p-Get_tickted()+n)Get_all_t
12、ickted()p-Order_tickt(n);cout谢谢使用endl;else cout对不起,没有足够的票数。endl; else if(X=n) cout谢谢使用endl;else cout输入字符不确定endl;Bus_link:setkey(1);void Bus_link:Unorder()Bus_infor *p;cout确定退票(y/n)?X;if(X=y)int num;coutnum;if( !find(&p,num,) )couttt找不到你要定票的车辆的内容!endl;return;coutn;p=p-next;if(p-Get_tickted()-n)=0)p-U
13、norder_tickt(n);else cout对不起,数据出错!。endl; else if(X=n) cout谢谢使用endl;else cout输入字符不确定endl;Bus_link:setkey(1);void Bus_link:found()Bus_infor *p;int num=-1,n=9;char name20=;docoutn;while(n2);if(n=1)coutnum;if(n=2)coutname;if(!find(&p,num,name)couttt找不到你要查找的内容!next)(*p1)=p;if( (p-next)-Get_bus_order()=nu
14、m|!strcmp( (p-next)-Get_end(),pn ) )(p-next)-output(); t=1;break;p=p-next;return t;void Bus_link:del()Bus_infor *p,*p2;int num;coutnum;if( !find(&p,num,) )couttt找不到你要删除的内容!next;p-next=p2-next;delete p2;Bus_link:setkey(1);void Bus_link:show()Bus_infor *p;p=head;while(p-next)(p-next)-output();p=p-next
15、;void Bus_link:mend()Bus_infor *p;int num=-1;char name20=;coutnum;if( !find(&p,num,name) )couttt找不到你要修改的内容!next)-output();(p-next)-input();Bus_link:setkey(1);void Bus_link:save()Bus_infor *p;p=head;ofstream os(bus.txt,ios:out);if (Bus_link:getkey()=1)while(p-next)(p-next)-output(os);p=p-next;coutttt
16、文件已保存! num;is.seekg(t);if(numinput(is);p-next=p2;p2-next=NULL;p=p-next;void Bus_link:clear()Bus_infor *p,*p2;p=head-next;while( p )p2=p;p=p-next;delete p2;char Bus_link:mainmenu()char n20;coutnn -欢迎使用车票管理系统-endlendl;cout 1. 录入车票信息 2. 浏览车票信息 endl 3. 查询车票信息 4. 删除车票信息 endl 5. 修改车票信息 6. 定购车票信息 endl 7. 退
17、还车票信息 8. 保存车票信息 endl 0: 退出系统 endl-endl-endln;return n0;int main()Bus_link pp;int k=1;char n;pp.begin(); while(k=1) n=pp.mainmenu(); 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.Unorder(); break; case 8:pp.save(); break; case 0: if(pp.getkey()=1) coutk; if(k=1) pp.save(); pp.clear(); k=0; break; return 0;专心-专注-专业