车票管理系统课程设计报告.docx
- 文档编号:25958973
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:23
- 大小:46.87KB
车票管理系统课程设计报告.docx
《车票管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《车票管理系统课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。
车票管理系统课程设计报告
课程设计报告
《车票管理系统》
目录
一、课程设计题目…………………………………………1
二、程序运行流程图………………………………………2
三、程序设计的想法和具体思路…………………………3
四、参考文献………………………………………………3
附件一:
设计进度……………………………………………………4
附件二:
源代码………………………………………………………4
一、课程设计题目
C++题目二十三:
车票管理系统(限最多2人完成)
一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。
如
班次发车时间起点站终点站行车时间额定载量已定票人数
18:
00郫县广汉24530
26:
30郫县成都0.54040
37:
00郫县成都0.54020
410:
00郫县成都0.5402
…
(一)功能要求:
用C/C++设计一系统,能提供下列服务:
(1)录入班次信息(信息用文件保存),可不定时地增加班次数据
(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
(3)查询路线:
可按班次号查询,可按终点站查询
(4)售票和退票功能
A:
当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数
B:
退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
二、程序运行流程图
三、运行结果
1:
2:
四、参考文献
李春葆,曾平,刘斌,《C++语言程序设计题典》,北京,清华大学出版社,2003年
五、总结
通过两周多的编程,我们对已学的专业知识有了比较深刻的认识,同时在查找资料或和其他同学交流的过程中,发现了一些问题,所以在设计的时候,遇到了很多困难。
在对所学的有限知识的理解和掌握下,在查找资料以及大家共同努力学习和讨论后终于把课题做完。
但因为对专业知识没有很深的认识,所以其中难免有一些是错误的或者是不合理的,希望老师多指教。
附件一:
设计进度
6月4日
类的模块和基本思路的构划,具有初步的函数结构、类的结构、和程序的总体运行结构。
6月9日
对前一次的构想进行初步的函数构造、类的的创建等。
6月11日
对函数和类中存在的问题进行改善
6月12日
将初步形成的函数和类连接在一个CPP文件中,进行第一次程序的测试,并对程序在测试的过程中产生的错误进行更正。
6月13日
对整个系统进行第二次测试,更改错误,改善程序的繁琐性,将程序简化。
6月19日
最后一次对系统进行测试,将系统进行美化,最终完成此次课程设计——车票管理系统。
附件二:
源代码
#include
#include
#include
#include
#include
usingnamespacestd;
classBus_infor{
intNo;
staticintBus_No;
charstart[20];
charend[20];
intBus_order;
intall_tickted;
inttickted;
intHour_start,Minute_start,Hour_end,Minute_end;
intHour;intMinute;
public:
Bus_infor*next;
Bus_infor();
~Bus_infor();
intGet_no();
intGet_all_tickted();
intGet_tickted();
intGet_bus_order();
char*Get_start();
char*Get_end();
voidaddr();
voidOrder_tickt(intn);
voidUnorder_tickt(intn);
voidGetTime_start();
voidGetTime_end();
voidShowTime();
voidGetTime();
voidShow_infor();
voidinput()
{
cout<<"\t\t\t按提示输入:
"< cout<<"\t\t输入车次: "; cin>>Bus_order; cout<<"请输入车的额定座位数: "; cin>>all_tickted; GetTime_start(); GetTime_end(); addr(); chara; cout<<"是否清空售票(y/n)? "< if(a=='y')tickted=0; } voidinput(ifstream&is) { is>>Bus_order>>start>>end>>all_tickted>>tickted>>Hour_start>>Minute_start>>Hour_end>>Minute_end; is.get(); } voidoutput() {cout<<"客车基本信息如下: "< cout<<"车次: "< <<"始发站: "< <<"终点站: "< <<"额定人数: "< <<"已售票"< <<"始发时间"< "< "< } voidoutput(ofstream&os) { os< < < < < < < < < < } }; intBus_infor: : Bus_No=1; voidBus_infor: : GetTime_start(){ intNewH=0,NewM=0; cout<<"请输入始发时间: "< cin>>NewH>>NewM; Hour_start=NewH; Minute_start=NewM; } voidBus_infor: : GetTime_end(){ intNewH=0,NewM=0; cout<<"请输入到站时间: "< cin>>NewH>>NewM; Hour_end=NewH; Minute_end=NewM; } voidBus_infor: : GetTime(){ if(Minute_end>=Minute_start){Minute=(Minute_end-Minute_start);Hour=(Hour_end-Hour_start);} else{Minute=(Minute_end-Minute_start+60);Hour=(Hour_end-Hour_start-1);} } voidBus_infor: : ShowTime(){ cout< "< cout< "< cout< "< } Bus_infor: : Bus_infor(){ No=Bus_No++; tickted=0; } Bus_infor: : ~Bus_infor(){Bus_No--;} //settheaddr voidBus_infor: : addr(){ cout<<"请输入起始站与终点站: "< chara[20];charb[20]; cin>>a;cin>>b; strcpy(start,a);strcpy(end,b); } //Getthestartaddr char*Bus_infor: : Get_start(){ returnstart; } //Gettheendaddr char*Bus_infor: : Get_end(){ returnend; } //Gettheno intBus_infor: : Get_no(){ returnNo; } intBus_infor: : Get_all_tickted(){ returnall_tickted; } intBus_infor: : Get_tickted(){ returntickted; } intBus_infor: : Get_bus_order(){ returnBus_order; } //orderthetickt voidBus_infor: : Order_tickt(intn){ tickted=tickted+n; } voidBus_infor: : Unorder_tickt(intn){ tickted=tickted-n; }; 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); intfind1(Bus_infor**p,intnum,char*pn); voidfound(); voidshow(); voidOrder(); voidUnorder(); voidsave(); voidbegin(); voidclear(); charmainmenu(); intgetkey(){returnkey;} voidsetkey(intk){key=k;} private: Bus_infor*head; intkey; }; //录入函数 voidBus_link: : input() { Bus_infor*p,*p2=NULL; p=head; 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按1继续,按0返回: "; cin>>n; } } //定票函数 voidBus_link: : Order(){ Bus_infor*p; cout<<"确定购票(y/n)? "< charX;cin>>X; if(X=='y'){ intnum; cout<<"\t\t\t输入车次号: "; cin>>num; if(! find1(&p,num,"^")) { cout<<"\t\t找不到你要定票的车辆的内容! "< return; } cout<<"输入要定的票数 "; intn;cin>>n; p=p->next; if((p->Get_tickted()+n)<=p->Get_all_tickted()) p->Order_tickt(n); elsecout<<"对不起,没有足够的票数。 "< } elseif(X=='n')cout<<"谢谢使用"< elsecout<<"输入字符不确定"< Bus_link: : setkey (1); } //退票函数 voidBus_link: : Unorder(){ Bus_infor*p; cout<<"确定退票(y/n)? "< charX;cin>>X; if(X=='y'){ intnum; cout<<"\t\t\t输入车次号: "; cin>>num; if(! find1(&p,num,"^")) { cout<<"\t\t找不到你要定票的车辆的内容! "< return; } cout<<"输入要退的票数 "; intn;cin>>n; p=p->next; if((p->Get_tickted()-n)>=0) p->Unorder_tickt(n); elsecout<<"对不起,数据出错! 。 "< } elseif(X=='n')cout<<"谢谢使用"< elsecout<<"输入字符不确定"< Bus_link: : setkey (1); } //查找函数 voidBus_link: : found() { Bus_infor*p; intnum=-1,n=9; charname[20]="^"; do { cout<<"\t\t1: 按车次查找,2: 按终点站查找: "; cin>>n; }while(n<1||n>2); if(n==1) { cout<<"\t\t\t输入车次: "; cin>>num; } if(n==2) { cout<<"\t\t\t输入终点站: "; cin>>name; } if(! find(&p,num,name)) { cout<<"\t\t找不到你要查找的内容! "< return; } } //子查找函数1 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||! strcmp((p->next)->Get_end(),pn)) {(p->next)->output();t=1;} p=p->next; } returnt; } //子查找函数2 intBus_link: : find1(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||! strcmp((p->next)->Get_end(),pn)) {return1;} p=p->next; } return0; } //删除函数 voidBus_link: : del() { Bus_infor*p,*p2; intnum; cout<<"\t\t\t输入车次号: "; cin>>num; if(! find(&p,num,"^")) { cout<<"\t\t找不到你要删除的内容! "< return; } p2=p->next; p->next=p2->next; deletep2; Bus_link: : setkey (1); } //显示函数 voidBus_link: : show() { Bus_infor*p; p=head; while(p->next) { (p->next)->output(); p=p->next; } } //修改函数 voidBus_link: : mend() { Bus_infor*p; intnum=-1; charname[20]="^"; cout<<"\t\t\t输入车次号: "; cin>>num; if(! find1(&p,num,name)) { cout<<"\t\t找不到你要修改的内容! "< return; } (p->next)->output(); (p->next)->input(); Bus_link: : setkey (1); } //保存函数 voidBus_link: : save() { Bus_infor*p; p=head; ofstreamos("bus.txt",ios: : out); if(Bus_link: : getkey()==1) { while(p->next) { (p->next)->output(os); p=p->next; } } cout<<"\t\t\t文件已保存! "< Bus_link: : setkey(0); } //初始化函数 voidBus_link: : begin() { Bus_infor*p,*p2; p=head; clear(); longt; ifstreamis("bus.txt",ios: : in); if(! is) { ofstreamos("bus.txt",ios: : out); os.close(); return; } intnum=-1; while (1) { num=-1; t=is.tellg(); is>>num; is.seekg(t); if(num<0) { is.close(); return; } p2=newBus_infor; p2->input(is); p->next=p2; p2->next=NULL; p=p->next; } } //清空函数 voidBus_link: : clear() { Bus_infor*p,*p2; p=head->next; while(p) { p2=p; p=p->next; deletep2; } } //主选菜单函数 charBus_link: : mainmenu() { charn[6]; cout<<"\n\n ————欢迎使用车票管理系统———"< cout<<"---------------------------------------------------------"< <<"---------------------------------------------------------"< <<"---------------------------------------------------------"< <<"1.录入车票信息2.浏览车票信息"< <<"3.查询车票信息4.删除车票信息"< <<"5.修改车票信息6.定购车票信息"< <<"7.退还车票信息8.保存车票信息"< <<"0: 退出系统 "< <<"---------------------------------------------------------"< <<"---------------------------------------------------------"< <<"请选择功能按钮: "; cin>>n; returnn[0]; } //主函数 intmain() { Bus_linkpp; intk=1; charn; 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) { cout<<"\t\t\t是否保存? 1: 保存0: 不保存: "; cin>>k; if(k==1) pp.save(); } pp.clear(); k=0; break; } } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车票 管理 系统 课程设计 报告