版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上课 程 设 计 课程名称面向对象程序设计课程设计题目名称列车车票管理系统专业班级2010级计算机科学与技术学生姓名学 号指导教师二一一年十二月二十二日专心-专注-专业蚌埠学院计算机科学与技术系课程设计任务书课 程面向对象程序设计课程设计班级2010级计算机科学与技术指导教师题 目列车车票管理系统完成时间2011年11月30日 至2011年12月23日主要内容基本功能要求:实现简单的列车车票管理系统,可以对列车的车票进行简单的录入、删除、修改和查找等功能,乘客还可以预订车票,管理员可以查找乘客的信息等功能乘客:1、 查询车票情况2、 根据车次预定车票3、 显示全部车票信
2、息管理员:1、 查询车票情况2、 录入、修改、删除车票情况,显示全部车票3、 删除乘客的信息,查找乘客的信息和显示乘客的信息设计报告要求1封面2课程设计任务书3. 分工协作说明4. 成绩评定表5课程设计报告 系统总体方案 设计思路和主要步骤 各功能模块和流程图 设计代码 心得体会和参考资料说明:学生完成课程设计后,提交软件及课程设计电子和纸质版,要求报告文字通畅、字迹工整,文字不少于3000字,并按要求装订成册。版面要求1.题目用黑体三号,段后距18磅(或1行),居中对齐;2.标题用黑体四号,段前、段后距6磅(或0.3行);3.正文用小四号宋体,行距为1.25倍行距;4.标题按“一”、“”、“
3、1”、“”顺序编号。蚌埠学院计算机科学与技术系课程设计成绩评定表项目权重分值具体要求得分文献阅读与调查论证0.20100能独立查阅文献和从事其它调研活动;有收集、加工各种信息的能力设计质量0.30100设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力论文撰写质量0.20100设计说明书完全符合规范化要求,用A4复印纸打印成文学习态度0.20100学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务学术水平与创新0.10100设计有创意,有一定的学术水平或实用价值总分评语: 这次程序设计试验增加了我们对程序设计在实践上的认识,熟练了类和对象还有链表的使用,尤其
4、是考虑到大量数据时插入删除操作此种数据结构对运行时间上的节省和方便。在编译的过程中有发现一些错误,比如没有定义等众多错误,所以编译一直不成功,后来经过对程序的仔细阅读,弄懂了哪里没有定义上,修改过来后,编译才成功了;还有,很多地方没有提示语句,让人不容易理解;一开始进入页面也不是很清楚明了,页面布局也不够完善,经过老师的指导,后期我们经过了很多的改正,当然还有很多的不足之处,还望老师指正,让我们能进一步的提高。等级: 指导教师: 年 月 日目录列车车票管理系统一、需求与功能分析 时代在发展,计算机软件和系统日趋成熟并应用于各行各业。在中国,火车 票的发售与管理一直是一个难题,而建立一个火车票订
5、票管理系统是一个很好的解决方法。作为计算机应用的一部分,使用计算机对火车票信息进行管理,具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、出错率低等各种优点。这些优点能大大提高列车信息管理的效率,也正体现了火车票的科学化正规管理。 我的这个系统采用的编程语言是C+,实现了以下功能:1、可操作的界面 2、录入、修改、删除、查找列车车票信息 3、订票、退票功能 二、概要设计(一)、系统框架图 (二)、系统类图 三、程序运行与测试结果(一)、调试中的问题和解决办法 在编译的过程中有发现
6、一些错误,比如没有定义等,所以编译一直不成功,后来经过对程序的仔细阅读,弄懂了哪里没有定义上,修改过来后,编译就一下成功了。(二)、调试结果1、用户注册2、主菜单3、 车票录入4、车票浏览5、车票查询6、车票删除7、车票修改8、购票9、保存四、总结与展望 这次课程设计的内容用到了上学期学到的面向对象编程,我选择的面向对象语言是学过的C+,选择的题目是列车车票管理系统。一开始选到这个题目,我就初步开始做需求和功能分析,把这个系统的需求和功能划分为:拥有良好简易的操作界面、对列车车票信息进行增删改查等操作和车票的订购退订这些功能。定义了存放列车信息的类Bus_infor,用这个类 来完成所需要的需
7、求功能,可是我很快就发现了,直接用这个类来做按条件查找,删除、修改、添加这些操作实在太麻烦,于是我想到了数据结构中的链表这个数据结构,这个系统用这个结构刚刚好。于是我又编写了另外一个类Bus_link,在这个类中,我把Bus_infor做成链表里的元素,编写了一系列的函数,这样增删改查这些操作就可以在链表中实现了。经过仔细地检查错误,修改内容之后,再经过各种测试,总算把这个系统给做完了。但是由于能力有限,还没有深入学习MFC等图形界面的知识,所以没能把整个系统的界面做得更漂亮一点。相信在以后的学习中,我能不断地提高,做出更好的设计。通过这次课程设计,更加深入对C+方面的程序设计的了解,尤其是它
8、在面向对象的编程思想的应用,并通过这次的不断发现问题,解决问题的过程,学到了不少东西。五、程序代码#include<iostream> #include<fstream> #include<iomanip> using namespace std; class Bus_infor/列车信息int No; static int Bus_No;/给录入的车次默认编号char start20;/起点站char end20;/终点站int Bus_order20;/车次号int all_tickted;/车的额定载量int tickted;/已订票数int Hour
9、_start, Minute_start, Hour_end, Minute_end;/发车时间,行车时间public:Bus_infor *next; Bus_infor(); Bus_infor(); int Get_no(); int Get_all_tickted(); int Get_tickted(); int Get_bus_order(); char *Get_start(); char *Get_end(); void addr(); void Order_tickt(int n); void Unorder_tickt(int n); void GetTime_start(
10、); void GetTime_end(); void ShowTime(); void input();void input(ifstream & is);void output();void output(ofstream & os);void Bus_infor: input()/录入车票信息cout<<endl<<"*录入车票信息*"<<endl;cout<<"t请按提示输入:"<<endl;cout<<"t把列车的载客量 规定为 车次号"
11、<<endl<<endl;cout<<"输入车次号/额定载量(数字): " cin>>all_tickted; GetTime_start(); GetTime_end(); addr(); void Bus_infor: input(ifstream & is)/数据流的写入(主要是列车车票信息) is>>Bus_order20 >>start >>end >>all_tickted >>tickted >>Hour_start >>
12、Minute_start >>Hour_end >>Minute_end; is.get(); void Bus_infor: output()/输出车票信息cout<<endl<<"*车票信息浏览*"<<endl;cout<<"列车车票基本信息如下:"<<endl<<endl; cout<<"车次:"<<Bus_order20<<endl<<"发车时间:"<<
13、Hour_start<<":"<< Minute_start<<endl <<"起点站:"<<start <<endl<<"终点站:"<<end <<endl<<"行车时间:"<<Hour_end<<":"<< Minute_end <<endl<<"额定载量:"<<all_tickte
14、d<<endl<<"已订票数:"<<tickted<<endl<<endl; void Bus_infor:output(ofstream & os)/数据流的写出os<<"车次:"<<Bus_order20<<endl <<setw(6)<<"起点站:"<<start<<endl <<setw(6)<<"终点站:"<<end&l
15、t;<endl <<setw(6)<<"发车时间:"<<Hour_start<<":" <<Minute_start<<endl <<setw(6)<<"行车时间:"<<Hour_end<<":" <<Minute_end<<endl <<setw(6)<<"额定载量:"<<all_tickted<<
16、endl <<setw(6)<<"已订票数:"<<tickted<<endl<<endl; int Bus_infor:Bus_No=1; void Bus_infor:GetTime_start()/输入发车时间int NewH=0,NewM=0; cout<<"输入发车时间(数字):"<<endl; cin>>NewH>>NewM; Hour_start=NewH; Minute_start=NewM; void Bus_infor:GetTi
17、me_end()/输入行车时间 int NewH=0,NewM=0; cout<<"输入行车时间(数字):"<<endl; cin>>NewH>>NewM; Hour_end=NewH; Minute_end=NewM; void Bus_infor:ShowTime()/显示时间cout<<Hour_start<<":"<<Minute_start<<" " cout<<Hour_end<<":"
18、;<<Minute_end<<" " Bus_infor:Bus_infor()/列车车票信息No=Bus_No+; tickted=0; Bus_infor:Bus_infor()Bus_No-; void Bus_infor:addr()/起点站与终点站 cout<<"输入起点站与终点站(数字或字母):"<<endl; char a20;char b20; cin>>a;cin>>b; strcpy(start,a);strcpy(end,b); char *Bus_infor:
19、Get_start()/返回起点站 return start; char *Bus_infor:Get_end()/返回终点站 return end; int Bus_infor:Get_no()/返回某一张票信息return No; int Bus_infor:Get_all_tickted()/返回车次额定载客量 return all_tickted; int Bus_infor:Get_tickted() /返回已订车票return tickted; int Bus_infor:Get_bus_order()/返回车票信息return Bus_order20; void Bus_info
20、r:Order_tickt(int n)/订票tickted=tickted+n; void Bus_infor:Unorder_tickt(int n) /退票tickted=tickted-n; class Bus_link public: 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);/查询车票信息int find1(Bus_infor *p,int n
21、um,char *pn);/退票查找void found(); void show(); void Order();/订购车票void Unorder(); /退还车票void save();/保存信息void begin(); void clear(); char mainmenu(); int getkey()return key; void setkey(int k) key=k; private: Bus_infor *head;/类对象作为链表的头指针int key; ; void Bus_link:input() /输入车票信息Bus_infor *p,*p2=NULL; p=he
22、ad; int n; while(p->next) p=p->next;/令p指向其前驱while(n) p2=new Bus_infor; p2->input(); p->next=p2; p2->next=NULL; p=p->next; Bus_link:setkey(1); cout<<"tt按1继续,按0返回 : " cin>>n; void Bus_link:Order() /购票Bus_infor *p; cout<<endl<<"*车票预订*"<&l
23、t;endl;cout<<"确定购票(y/n)?"<<endl; char X;cin>>X; if(X='y') int num; cout<<"t输入车次号(数字): " cin>>num; if( !find1(&p,num,"") ) cout<<"tt找不到您要订的车票的信息!"<<endl; return; cout<<"t输入要订的票数(数字):" int n;c
24、in>>n; p=p->next;if(p->Get_tickted()+n)<=p->Get_all_tickted() p->Order_tickt(n); cout<<"t预订成功,谢谢使用"<<endl; else cout<<"t对不起,没有足够的票数。"<<endl; else if(X='n') cout<<"t谢谢使用"<<endl; else cout<<"t输入字符
25、不确定"<<endl; Bus_link:setkey(1); void Bus_link:Unorder()/退票Bus_infor *p;cout<<endl<<"*退还车票*"<<endl;cout<<"确定退票(y/n)?"<<endl; char X;cin>>X; if(X='y') int num; cout<<"t输入车次号:(数字) " cin>>num; if( !find1(&am
26、p;p,num,"") ) cout<<"tt找不到您要退的车票的信息!"<<endl; return; cout<<"t输入要退的票数(数字):" int n;cin>>n; p=p->next; if(p->Get_tickted()-n)>=0) p->Unorder_tickt(n);cout<<"t退票成功,谢谢使用"<<endl;else cout<<"t对不起,数据出错!。"
27、<<endl; else if(X='n') cout<<"t谢谢使用"<<endl; else cout<<"t输入字符不确定"<<endl; Bus_link:setkey(1); void Bus_link:found() /查寻车票 Bus_infor *p; int num=-1,n=0;char name20="" cout<<endl<<"*车票信息查询*"<<endl;cout<&l
28、t;setw(20)<<"请输入车次(数字): " cin>>num; if(!find(&p,num,name) cout<<"tt找不到您要查询的信息!"<<endl; return; int Bus_link:find(Bus_infor *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|!s
29、trcmp( (p->next)->Get_end(),pn ) ) (p->next)->output(); t=1; break; p=p->next; return t; int Bus_link:find1(Bus_infor *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|!strcmp( (p->next)->Get_end(),pn ) ) ret
30、urn 1; p=p->next; return 0; void Bus_link:del()/删除车票信息 cout<<endl<<"*删除车票信息*"<<endl;Bus_infor *p,*p2; int num; cout<<"t输入车次号(数字): " cin>>num; if( !find(&p,num,"") ) cout<<"tt找不到您要删除的内容!"<<endl; return; p2=p->
31、next; p->next=p2->next;/删除并释放结点delete p2; Bus_link:setkey(1); cout<<"t车票信息删除成功"<<endl; void Bus_link:show() /显示信息 Bus_infor *p; p=head; while(p->next) (p->next)->output(); p=p->next; void Bus_link:mend() /修改车票信息cout<<endl<<"*车票信息修改*"<&
32、lt;endl;Bus_infor *p; int num=-1; char name20="" cout<<"t输入车次号(数字): " cin>>num; if( !find1(&p,num,name) ) cout<<"tt找不到您要修改的内容!"<<endl; return; (p->next)->output(); (p->next)->input(); Bus_link:setkey(1); void Bus_link:save() /保存文件
33、cout<<endl<<"*保存文件*"<<endl;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; cout<<"t文件已保存至bus.txt中! nt谢谢使用"<<endl; Bus_link:setkey(0); void Bus_link:
34、begin() Bus_infor *p,*p2; p=head; clear(); long t; ifstream is("bus.txt",ios:in); if(!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
35、); 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() /返回主菜单 system("color 3E");/DOS颜色变换cout<<endl<<endl;cout<<"-欢迎使用车票管理系统-"<<endl&l
36、t;<endl; cout<<setw(48)<<"1. 录入车票信息 2. 浏览车票信息"<<endl <<setw(48)<<"3. 查询车票信息 4. 删除车票信息"<<endl <<setw(48)<<"5. 修改车票信息 6. 订购车票信息"<<endl <<setw(48)<<"7. 退还车票信息 8. 保存车票信息"<<endl <<setw
37、(27)<<"0: 退出系统"<<endl<<endl<<endl <<" 请选择功能按钮(0-8):" return 0; int main() /主函数Bus_link pp; system("color 2E");char r20;/用户名char s20;/密码char S20;/密码确认cout<<endl;cout<<setw(22)<<""<<"欢迎使用列车车票管理系统"&l
38、t;<""<<endl<<endl;cout<<setw(28)<<"*"<<"用户注册"<<"*"<<endl<<endl;cout<<"t请输入注册用户名(以字母或数字组成):"cin>>r;cout<<"t请填写注册密码(以字母或数字组成):"cin>>s;cout<<"t请再次输入密码以确认:&qu
39、ot;cin>>S;if(strcmp(s,S)!=0)cout<<"t密码输入不符,注册失败,谢谢使用!"<<endl;exit(0);if(strcmp(s,S)=0)system("cls");cout<<endl;cout<<""<<"恭喜你注册成功"<<""<<endl;char wo;cout<<endl<<endl<<endl;cout<<
40、"按任意字母键进入登陆界面"<<endl;cin>>wo;system("cls");char h20;char t20;for(int m=0;m<3;m+)cout<<endl;cout<<setw(24)<<""<<"欢迎使用列车车票管理系统"<<""<<endl<<endl;cout<<"t请输入用户名(以字母或数字组成):"cin>&g
41、t;h;cout<<"t请输入密码(以字母或数字组成):"cin>>t;system("cls");if(strcmp(r,h)=0&&strcmp(s,t)=0)cout<<endl<<endl; cout<<" "<<"登陆中,请稍等."<<endl;for(int k=0;k<k+) system("cls");cout<<endl;cout<<"t登陆成功!"<<endl;cout&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年邢台泜河职业学院单招综合素质考试题库及完整答案详解【夺冠】
- 2026年河南省驻马店市高职单招职业技能考试题库及完整答案详解【典优】
- 2027年汶阳康养职业学院单招综合素质考试题库及参考答案详解AB卷
- 古村落高中生写生群体旅游涉入对行为意向的影响研究-以地方依恋为中介
- 2026年郑州技师学院高职高职单招职业技能考试题库含完整答案详解【夺冠系列】
- 2024年乌江文旅职业学院高职单招职业技能考试模拟试卷含答案详解【能力提升】
- 铜过量负荷对大鼠肠道传导功能影响及清热利胆解毒方的干预研究
- 2024年日照职业技术学院单招综合素质考试模拟试卷带答案详解(综合卷)
- 2026年广东省茂名市高职单招职业技能考试模拟试卷含答案详解(培优A卷)
- 2024年济南康养工程职业学院单招职业技能考试题库带答案详解(轻巧夺冠)
- 小学一年级劳动“清洁与卫生”任务群示范课教案-《我来扫出一片洁净天地》
- 牙齿敏感的药物治疗
- 《克和千克的认识》说课稿
- 血源性传染病传播与安全防护
- 网络防火墙策略调整审批流程方案
- 牧区道路施工方案(3篇)
- 2025北京应急总医院合同制工作人员招聘25人笔试历年典型考题及考点剖析附带答案详解试卷2套
- 四川省成都市达标名校2026届数学高一下期末统考试题含解析
- 怀孕知识教学课件
- 农行新入职员工培训课件
- 钢梁吊装方案
评论
0/150
提交评论