




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 课程名称面向对象程序设计课程设计题目名称列车车票管理系统专业班级2010级计算机科学与技术学生姓名学 号指导教师二一一年十二月二十二日蚌埠学院计算机科学与技术系课程设计任务书课 程面向对象程序设计课程设计班级2010级计算机科学与技术指导教师题 目列车车票管理系统完成时间2011年11月30日 至2011年12月23日主要内容基本功能要求:实现简单的列车车票管理系统,可以对列车的车票进行简单的录入、删除、修改和查找等功能,乘客还可以预订车票,管理员可以查找乘客的信息等功能乘客:查询车票情况根据车次预定车票显示全部车票信息管理员:查询车票情况录入、修改、删除车票情况,显示全部车票
2、删除乘客的信息,查找乘客的信息和显示乘客的信息设计报告要求1封面2课程设计任务书3. 分工协作说明4. 成绩评定表5课程设计报告 系统总体方案 设计思路和主要步骤 各功能模块和流程图 设计代码 心得体会和参考资料说明:学生完成课程设计后,提交软件及课程设计电子和纸质版,要求报告文字通畅、字迹工整,文字不少于3000字,并按要求装订成册。版面要求1.题目用黑体三号,段后距18磅(或1行),居中对齐;2.标题用黑体四号,段前、段后距6磅(或0.3行);3.正文用小四号宋体,行距为1.25倍行距;4.标题按“一”、“”、“1”、“”顺序编号。蚌埠学院计算机科学与技术系课程设计成绩评定表项目权重分值具
3、体要求得分文献阅读与调查论证0.20100能独立查阅文献和从事其它调研活动;有收集、加工各种信息的能力设计质量0.30100设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力论文撰写质量0.20100设计说明书完全符合规范化要求,用A4复印纸打印成文学习态度0.20100学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务学术水平与创新0.10100设计有创意,有一定的学术水平或实用价值总分评语: 这次程序设计试验增加了我们对程序设计在实践上的认识,熟练了类和对象还有链表的使用,尤其是考虑到大量数据时插入删除操作此种数据结构对运行时间上的节省和方便。在编译的过
4、程中有发现一些错误,比如没有定义等众多错误,所以编译一直不成功,后来经过对程序的仔细阅读,弄懂了哪里没有定义上,修改过来后,编译才成功了;还有,很多地方没有提示语句,让人不容易理解;一开始进入页面也不是很清楚明了,页面布局也不够完善,经过老师的指导,后期我们经过了很多的改正,当然还有很多的不足之处,还望老师指正,让我们能进一步的提高。等级: 指导教师: 年 月 日目录TOC o 1-4 h u 目录 PAGEREF _Toc14959 1列车车票管理系统 PAGEREF _Toc170 2一、需求与功能分析 PAGEREF _Toc5750 2二、概要设计 PAGEREF _Toc8331 2
5、(一)、系统框架图 PAGEREF _Toc20749 2(二)、系统类图 PAGEREF _Toc32693 3三、程序运行与测试结果 PAGEREF _Toc17633 4(一)、调试中的问题和解决办法 PAGEREF _Toc27522 4(二)、调试结果 PAGEREF _Toc1079 41、用户注册 PAGEREF _Toc9725 42、主菜单 PAGEREF _Toc2026 53、 车票录入 PAGEREF _Toc11161 54、车票浏览 PAGEREF _Toc18073 65、车票查询 PAGEREF _Toc31774 76、车票删除 PAGEREF _Toc158
6、58 87、车票修改 PAGEREF _Toc12161 98、购票 PAGEREF _Toc23330 99、保存 PAGEREF _Toc9982 10四、总结与展望 PAGEREF _Toc10269 11五、程序代码 PAGEREF _Toc17371 12六、致谢 PAGEREF _Toc27582 23七、参考文献 PAGEREF _Toc14701 24列车车票管理系统一、需求与功能分析 时代在发展,计算机软件和系统日趋成熟并应用于各行各业。在中国,火车 票的发售与管理一直是一个难题,而建立一个火车票订票管理系统是一个很好的解决方法。作为计算机应用的一部分,使用计算机对火车票信息
7、进行管理,具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、出错率低等各种优点。这些优点能大大提高列车信息管理的效率,也正体现了火车票的科学化正规管理。 我的这个系统采用的编程语言是C+,实现了以下功能:1、可操作的界面2、录入、修改、删除、查找列车车票信息3、订票、退票功能 二、概要设计(一)、系统框架图(二)、系统类图 三、程序运行与测试结果(一)、调试中的问题和解决办法 在编译的过程中有发现一些错误,比如没有定义等,所以编译一直不成功,后来经过对程序的仔细阅读,弄懂了哪里没有定义上,修改过来后,编译就一下成功了。(二)、调试结果1、用户注册2、主菜单车
8、票录入4、车票浏览5、车票查询6、车票删除7、车票修改8、购票9、保存四、总结与展望 这次课程设计的内容用到了上学期学到的面向对象编程,我选择的面向对象语言是学过的C+,选择的题目是列车车票管理系统。一开始选到这个题目,我就初步开始做需求和功能分析,把这个系统的需求和功能划分为:拥有良好简易的操作界面、对列车车票信息进行增删改查等操作和车票的订购退订这些功能。定义了存放列车信息的类Bus_infor,用这个类 来完成所需要的需求功能,可是我很快就发现了,直接用这个类来做按条件查找,删除、修改、添加这些操作实在太麻烦,于是我想到了数据结构中的链表这个数据结构,这个系统用这个结构刚刚好。于是我又编
9、写了另外一个类Bus_link,在这个类中,我把Bus_infor做成链表里的元素,编写了一系列的函数,这样增删改查这些操作就可以在链表中实现了。经过仔细地检查错误,修改内容之后,再经过各种测试,总算把这个系统给做完了。但是由于能力有限,还没有深入学习MFC等图形界面的知识,所以没能把整个系统的界面做得更漂亮一点。相信在以后的学习中,我能不断地提高,做出更好的设计。通过这次课程设计,更加深入对C+方面的程序设计的了解,尤其是它在面向对象的编程思想的应用,并通过这次的不断发现问题,解决问题的过程,学到了不少东西。五、程序代码#include #include #include using nam
10、espace std; class Bus_infor/列车信息int No; static int Bus_No;/给录入的车次默认编号char start20;/起点站char end20;/终点站int Bus_order20;/车次号int all_tickted;/车的额定载量int tickted;/已订票数int Hour_start, Minute_start, Hour_end, Minute_end;/发车时间,行车时间public:Bus_infor *next; Bus_infor(); Bus_infor(); int Get_no(); int Get_all_ti
11、ckted(); 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(); void GetTime_end(); void ShowTime(); void input();void input(ifstream & is);void output();void output(ofstream & os);void Bus_in
12、for: input()/录入车票信息coutendl*录入车票信息*endl;coutt请按提示输入:endl;coutt把列车的载客量 规定为 车次号endlendl;coutall_tickted; GetTime_start(); GetTime_end(); addr(); void Bus_infor: input(ifstream & is)/数据流的写入(主要是列车车票信息) isBus_order20 start end all_tickted tickted Hour_start Minute_start Hour_end Minute_end; is.get(); voi
13、d Bus_infor: output()/输出车票信息coutendl*车票信息浏览*endl;cout列车车票基本信息如下:endlendl; cout车次:Bus_order20endl发车时间:Hour_start: Minute_startendl 起点站:start endl终点站:end endl行车时间:Hour_end: Minute_end endl额定载量:all_ticktedendl已订票数:ticktedendlendl; void Bus_infor:output(ofstream & os)/数据流的写出os车次:Bus_order20endl setw(6)起
14、点站:startendl setw(6)终点站:endendl setw(6)发车时间:Hour_start: Minute_startendl setw(6)行车时间:Hour_end: Minute_endendl setw(6)额定载量:all_ticktedendl setw(6)已订票数:ticktedendlendl; int Bus_infor:Bus_No=1; void Bus_infor:GetTime_start()/输入发车时间int NewH=0,NewM=0; cout输入发车时间(数字):NewHNewM; Hour_start=NewH; Minute_star
15、t=NewM; void Bus_infor:GetTime_end()/输入行车时间 int NewH=0,NewM=0; cout输入行车时间(数字):NewHNewM; Hour_end=NewH; Minute_end=NewM; void Bus_infor:ShowTime()/显示时间coutHour_start:Minute_start ; coutHour_end:Minute_end ; Bus_infor:Bus_infor()/列车车票信息No=Bus_No+; tickted=0; Bus_infor:Bus_infor()Bus_No-; void Bus_info
16、r:addr()/起点站与终点站 cout输入起点站与终点站(数字或字母):a;cinb; strcpy(start,a);strcpy(end,b); char *Bus_infor: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()
17、 /返回已订车票return tickted; int Bus_infor:Get_bus_order()/返回车票信息return Bus_order20; void Bus_infor: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();/ 修改v
18、oid del();/ 删除int find(Bus_infor *p,int num,char *pn);/查询车票信息int find1(Bus_infor *p,int num,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_in
19、for *head;/类对象作为链表的头指针int key; ; void Bus_link:input() /输入车票信息Bus_infor *p,*p2=NULL; p=head; 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); coutn; void Bus_link:Order() /购票Bus_infor *p; coutendl*车票预订*endl;cout确定购票(y
20、/n)?X; if(X=y) int num; coutnum; if( !find1(&p,num,) ) couttt找不到您要订的车票的信息!endl; return; coutn; p=p-next;if(p-Get_tickted()+n)Get_all_tickted() p-Order_tickt(n); coutt预订成功,谢谢使用endl; else coutt对不起,没有足够的票数。endl; else if(X=n) coutt谢谢使用endl; else coutt输入字符不确定endl; Bus_link:setkey(1); void Bus_link:Unorde
21、r()/退票Bus_infor *p;coutendl*退还车票*endl;cout确定退票(y/n)?X; if(X=y) int num; coutnum; if( !find1(&p,num,) ) couttt找不到您要退的车票的信息!endl; return; coutn; p=p-next; if(p-Get_tickted()-n)=0) p-Unorder_tickt(n);coutt退票成功,谢谢使用endl;else coutt对不起,数据出错!。endl; else if(X=n) coutt谢谢使用endl; else coutt输入字符不确定endl; Bus_lin
22、k:setkey(1); void Bus_link:found() /查寻车票 Bus_infor *p; int num=-1,n=0;char name20=; coutendl*车票信息查询*endl;coutsetw(20)num; if(!find(&p,num,name) couttt找不到您要查询的信息!next) (*p1)=p; if( (p-next)-Get_bus_order()=num|!strcmp( (p-next)-Get_end(),pn ) ) (p-next)-output(); t=1; break; p=p-next; return t; int B
23、us_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 ) ) return 1; p=p-next; return 0; void Bus_link:del()/删除车票信息 coutendl*删除车票信息*endl;Bus_infor *p,*p2; int num; coutnum; if( !find(&p,num,)
24、 ) couttt找不到您要删除的内容!next; p-next=p2-next;/删除并释放结点delete p2; Bus_link:setkey(1); coutt车票信息删除成功next) (p-next)-output(); p=p-next; void Bus_link:mend() /修改车票信息coutendl*车票信息修改*endl;Bus_infor *p; int num=-1; char name20=; coutnum; if( !find1(&p,num,name) ) couttt找不到您要修改的内容!next)-output(); (p-next)-input(
25、); Bus_link:setkey(1); void Bus_link:save() /保存文件coutendl*保存文件*next) (p-next)-output(os); p=p-next; coutt文件已保存至bus.txt中! nt谢谢使用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_
26、link:mainmenu() /返回主菜单 system(color 3E);/DOS颜色变换coutendlendl;cout欢迎使用车票管理系统endlendl; coutsetw(48)1. 录入车票信息 2. 浏览车票信息endl setw(48)3. 查询车票信息 4. 删除车票信息endl setw(48)5. 修改车票信息 6. 订购车票信息endl setw(48)7. 退还车票信息 8. 保存车票信息endl setw(27)0: 退出系统endlendlendl 请选择功能按钮(0-8):; return 0; int main() /主函数Bus_link pp; sy
27、stem(color 2E);char r20;/用户名char s20;/密码char S20;/密码确认coutendl;coutsetw(22)欢迎使用列车车票管理系统endlendl;coutsetw(28)*用户注册*endlendl;coutr;couts;coutS;if(strcmp(s,S)!=0)coutt密码输入不符,注册失败,谢谢使用!endl;exit(0);if(strcmp(s,S)=0)system(cls);coutendl;cout恭喜你注册成功endl;char wo;coutendlendlendl;cout按任意字母键进入登陆界面wo;system(cls);char h20;char t20;for(int m=0;m3;m+)coutendl;coutsetw(24)欢迎使用列车车票管理系统endlendl;couth;coutt;system(cls);if(strcmp(r,h)=0&strcmp(s,t)=0)coutendlendl; cout 登陆中,请稍等.endl;for(int k=0;k500000000;k+) system(cls);coutendl;co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心理驱动的学习教育心理学的奥秘
- 教育信息化背景下的科技型议题式教学研究
- 大数据背景下的智慧学习环境建设
- 教育驱动乡村振兴-以在线水稻种植课程为例
- 数字教育资源库的版权管理方案设计
- 儿童心理辅导与教育策略实训
- 基于用户情感的在线教育平台界面优化策略
- 中职招生宣传课件
- 提升劳动者自我效能感的教育心理学方法
- 基于教育心理学的个性化学习方案
- 2025注册核安全工程师考前冲刺试卷带答案
- (高清版)DG∕TJ 08-2166-2015 城市地下综合体设计规范
- 国家数据局《2024年“数据要素×”项目案例集》
- (2025)行政能力测试题库与答案
- 一级建造师安全生产试题及答案
- 机械质检员试题及答案
- CSCO 胆道恶性肿瘤指南更新2025
- WB/T 1139-2024国家物流枢纽统计分类
- 2025年4月版安全环境职业健康法律法规标准文件清单
- 2025年保安员职业技能考试笔试试题(100题)附答案
- 社区急救知识培训课件
评论
0/150
提交评论