




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./课程设计课程名称面向对象程序设计课程设计题目名称列车车票管理系统专业班级2010级计算机科学与技术学生学号指导教师二○一一年十二月二十二日.学院计算机科学与技术系课程设计任务书课程面向对象程序设计课程设计班级2010级计算机科学与技术指导教师题目列车车票管理系统完成时间20XX11月30日至20XX12月23日主要容基本功能要求:实现简单的列车车票管理系统,可以对列车的车票进行简单的录入、删除、修改和查找等功能,乘客还可以预订车票,管理员可以查找乘客的信息等功能乘客:查询车票情况根据车次预定车票显示全部车票信息管理员:查询车票情况录入、修改、删除车票情况,显示全部车票删除乘客的信息,查找乘客的信息和显示乘客的信息设计报告要求1.封面2.课程设计任务书3.分工协作说明4.成绩评定表5.课程设计报告⑴系统总体方案⑵设计思路和主要步骤⑶各功能模块和流程图⑷设计代码⑸心得体会和参考资料说明:学生完成课程设计后,提交软件及课程设计电子和纸质版,要求报告文字通畅、字迹工整,文字不少于3000字,并按要求装订成册。版面要求1.题目用黑体三号,段后距18磅〔或1行,居中对齐;2.标题用黑体四号,段前、段后距6磅〔或0.3行;3.正文用小四号宋体,行距为1.25倍行距;4.标题按"一"、"㈠"、"1"、"⑴"顺序编号。.学院计算机科学与技术系课程设计成绩评定表项目权重分值具体要求得分文献阅读与调查论证0.20100能独立查阅文献和从事其它调研活动;有收集、加工各种信息的能力设计质量0.30100设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力论文撰写质量0.20100设计说明书完全符合规化要求,用A4复印纸打印成文学习态度0.20100学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务学术水平与创新0.10100设计有创意,有一定的学术水平或实用价值总分评语:这次程序设计试验增加了我们对程序设计在实践上的认识,熟练了类和对象还有链表的使用,尤其是考虑到大量数据时插入删除操作此种数据结构对运行时间上的节省和方便。在编译的过程中有发现一些错误,比如没有定义等众多错误,所以编译一直不成功,后来经过对程序的仔细阅读,弄懂了哪里没有定义上,修改过来后,编译才成功了;还有,很多地方没有提示语句,让人不容易理解;一开始进入页面也不是很清楚明了,页面布局也不够完善,经过老师的指导,后期我们经过了很多的改正,当然还有很多的不足之处,还望老师指正,让我们能进一步的提高。等级:指导教师:年月日.目录TOC\o"1-4"\h\u14959目录1170列车车票管理系统25750一、需求与功能分析28331二、概要设计220749〔一、系统框架图232693〔二、系统类图317633三、程序运行与测试结果427522〔一、调试中的问题和解决办法41079〔二、调试结果497251、用户注册420262、主菜单5111613、车票录入5180734、车票浏览6317745、车票查询7158586、车票删除8121617、车票修改9233308、购票999829、保存1010269四、总结与展望1117371五、程序代码1227582六、致2314701七、参考文献24列车车票管理系统一、需求与功能分析时代在发展,计算机软件和系统日趋成熟并应用于各行各业。在中国,火车票的发售与管理一直是一个难题,而建立一个火车票订票管理系统是一个很好的解决方法。作为计算机应用的一部分,使用计算机对火车票信息进行管理,具有手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、性好、出错率低等各种优点。这些优点能大大提高列车信息管理的效率,也正体现了火车票的科学化正规管理。我的这个系统采用的编程语言是C++,实现了以下功能:1、可操作的界面2、录入、修改、删除、查找列车车票信息3、订票、退票功能二、概要设计〔一、系统框架图〔二、系统类图三、程序运行与测试结果〔一、调试中的问题和解决办法在编译的过程中有发现一些错误,比如没有定义等,所以编译一直不成功,后来经过对程序的仔细阅读,弄懂了哪里没有定义上,修改过来后,编译就一下成功了。〔二、调试结果1、用户注册2、主菜单车票录入4、车票浏览5、车票查询6、车票删除7、车票修改8、购票9、保存四、总结与展望这次课程设计的容用到了上学期学到的面向对象编程,我选择的面向对象语言是学过的C++,选择的题目是列车车票管理系统。一开始选到这个题目,我就初步开始做需求和功能分析,把这个系统的需求和功能划分为:拥有良好简易的操作界面、对列车车票信息进行增删改查等操作和车票的订购退订这些功能。定义了存放列车信息的类Bus_infor,,用这个类来完成所需要的需求功能,可是我很快就发现了,直接用这个类来做按条件查找,删除、修改、添加这些操作实在太麻烦,于是我想到了数据结构中的链表这个数据结构,这个系统用这个结构刚刚好。于是我又编写了另外一个类Bus_link,在这个类中,我把Bus_infor做成链表里的元素,编写了一系列的函数,这样增删改查这些操作就可以在链表中实现了。经过仔细地检查错误,修改容之后,再经过各种测试,总算把这个系统给做完了。但是由于能力有限,还没有深入学习MFC等图形界面的知识,所以没能把整个系统的界面做得更漂亮一点。相信在以后的学习中,我能不断地提高,做出更好的设计。通过这次课程设计,更加深入对C++方面的程序设计的了解,尤其是它在面向对象的编程思想的应用,并通过这次的不断发现问题,解决问题的过程,学到了不少东西。五、程序代码#include<iostream>#include<fstream>#include<iomanip>usingnamespacestd;classBus_infor{ //列车信息 intNo; staticintBus_No; //给录入的车次默认编号 charstart[20]; //起点站 charend[20]; //终点站 intBus_order[20]; //车次号 intall_tickted; //车的额定载量 inttickted; //已订票数 intHour_start,Minute_start,Hour_end,Minute_end; //发车时间,行车时间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<>; voidinput<>; voidinput<ifstream&is>; voidoutput<>; voidoutput<ofstream&os>;};voidBus_infor::input<>{ //录入车票信息 cout<<endl<<"************************录入车票信息************************"<<endl; cout<<"\t请按提示输入:"<<endl; cout<<"\t把列车的载客量规定为车次号"<<endl<<endl; cout<<"输入车次号/额定载量<数字>:"; cin>>all_tickted; GetTime_start<>; GetTime_end<>; addr<>;}voidBus_infor::input<ifstream&is>{ //数据流的写入<主要是列车车票信息> is>>Bus_order[20]>>start>>end>>all_tickted>>tickted>>Hour_start>>Minute_start>>Hour_end>>Minute_end; is.get<>;}voidBus_infor::output<>{ //输出车票信息 cout<<endl<<"************************车票信息浏览************************"<<endl; cout<<"列车车票基本信息如下:"<<endl<<endl; cout<<"车次:"<<Bus_order[20]<<endl <<"发车时间:"<<Hour_start<<":"<<Minute_start<<endl <<"起点站:"<<start<<endl <<"终点站:"<<end<<endl <<"行车时间:"<<Hour_end<<":"<<Minute_end<<endl <<"额定载量:"<<all_tickted<<endl <<"已订票数:"<<tickted<<endl<<endl;}voidBus_infor::output<ofstream&os>{ //数据流的写出 os<<"车次:"<<Bus_order[20]<<endl <<setw<6><<"起点站:"<<start<<endl <<setw<6><<"终点站:"<<end<<endl <<setw<6><<"发车时间:"<<Hour_start<<":"<<Minute_start<<endl <<setw<6><<"行车时间:"<<Hour_end<<":"<<Minute_end<<endl <<setw<6><<"额定载量:"<<all_tickted<<endl <<setw<6><<"已订票数:"<<tickted<<endl<<endl;}intBus_infor::Bus_No=1;voidBus_infor::GetTime_start<>{ //输入发车时间 intNewH=0,NewM=0; cout<<"输入发车时间<数字>:"<<endl; cin>>NewH>>NewM; Hour_start=NewH; Minute_start=NewM;}voidBus_infor::GetTime_end<>{ //输入行车时间 intNewH=0,NewM=0; cout<<"输入行车时间<数字>:"<<endl; cin>>NewH>>NewM; Hour_end=NewH; Minute_end=NewM;}voidBus_infor::ShowTime<>{ //显示时间 cout<<Hour_start<<":"<<Minute_start<<""; cout<<Hour_end<<":"<<Minute_end<<"";}Bus_infor::Bus_infor<>{ //列车车票信息 No=Bus_No++; tickted=0;}Bus_infor::~Bus_infor<>{ Bus_No--;}voidBus_infor::addr<>{ //起点站与终点站 cout<<"输入起点站与终点站<数字或字母>:"<<endl; chara[20]; charb[20]; cin>>a; cin>>b; strcpy<start,a>; strcpy<end,b>;}char*Bus_infor::Get_start<>{ //返回起点站 returnstart;}char*Bus_infor::Get_end<>{ //返回终点站 returnend;}intBus_infor::Get_no<>{ //返回某一票信息 returnNo;}intBus_infor::Get_all_tickted<>{ //返回车次额定载客量 returnall_tickted;}intBus_infor::Get_tickted<>{ //返回已订车票 returntickted;}intBus_infor::Get_bus_order<>{ //返回车票信息 returnBus_order[20];}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;} 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; //令p指向其前驱 while<n>{ p2=newBus_infor; p2->input<>; p->next=p2; p2->next=NULL; p=p->next; Bus_link::setkey<1>; cout<<"\t\t按1继续,按0返回:"; cin>>n; }}voidBus_link::Order<>{ //购票 Bus_infor*p; cout<<endl<<"************************车票预订************************"<<endl; cout<<"确定购票<y/n>?"<<endl; charX; cin>>X; if<X=='y'>{ intnum; cout<<"\t输入车次号<数字>:"; cin>>num; if<!find1<&p,num,"^">>{ cout<<"\t\t找不到您要订的车票的信息!"<<endl; return; } cout<<"\t输入要订的票数<数字>:"; intn; cin>>n; p=p->next; if<<p->Get_tickted<>+n><=p->Get_all_tickted<>> { p->Order_tickt<n>; cout<<"\t预订成功,使用"<<endl; } elsecout<<"\t对不起,没有足够的票数。"<<endl; } elseif<X=='n'>cout<<"\t使用"<<endl; elsecout<<"\t输入字符不确定"<<endl; Bus_link::setkey<1>;}voidBus_link::Unorder<>{ //退票 Bus_infor*p; cout<<endl<<"************************退还车票************************"<<endl; cout<<"确定退票<y/n>?"<<endl; charX; cin>>X; if<X=='y'>{ intnum; cout<<"\t输入车次号:<数字>"; cin>>num; if<!find1<&p,num,"^">>{ cout<<"\t\t找不到您要退的车票的信息!"<<endl; return; } cout<<"\t输入要退的票数<数字>:"; intn; cin>>n; p=p->next; if<<p->Get_tickted<>-n>>=0>{ p->Unorder_tickt<n>; cout<<"\t退票成功,使用"<<endl; } elsecout<<"\t对不起,数据出错!。"<<endl; } elseif<X=='n'>cout<<"\t使用"<<endl; elsecout<<"\t输入字符不确定"<<endl; Bus_link::setkey<1>;}voidBus_link::found<>{ //查寻车票 Bus_infor*p; intnum=-1,n=0; charname[20]="^"; cout<<endl<<"************************车票信息查询************************"<<endl; cout<<setw<20><<"请输入车次<数字>:"; cin>>num; if<!find<&p,num,name>>{ cout<<"\t\t找不到您要查询的信息!"<<endl; return; }}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; break; } p=p->next; } returnt;}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<>{ //删除车票信息 cout<<endl<<"************************删除车票信息************************"<<endl; Bus_infor*p,*p2; intnum; cout<<"\t输入车次号<数字>:"; cin>>num; if<!find<&p,num,"^">>{ cout<<"\t\t找不到您要删除的容!"<<endl; return; } p2=p->next; p->next=p2->next; //删除并释放结点 deletep2; Bus_link::setkey<1>; cout<<"\t车票信息删除成功"<<endl;}voidBus_link::show<>{ //显示信息 Bus_infor*p; p=head; while<p->next> { <p->next>->output<>; p=p->next; }}voidBus_link::mend<>{ //修改车票信息 cout<<endl<<"************************车票信息修改************************"<<endl; Bus_infor*p; intnum=-1; charname[20]="^"; cout<<"\t输入车次号<数字>:"; cin>>num; if<!find1<&p,num,name>>{ cout<<"\t\t找不到您要修改的容!"<<endl; return; } <p->next>->output<>; <p->next>->input<>; Bus_link::setkey<1>;}voidBus_link::save<>{ //保存文件 cout<<endl<<"************************保存文件************************"<<endl; 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文件已保存至bus.txt中!\n\t使用"<<endl; 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<>{ //返回主菜单 system<"color3E">; //DOS颜色变换 cout<<endl<<endl; cout<<"欢迎使用车票管理系统"<<endl<<endl; cout<<setw<48><<"1.录入车票信息2.浏览车票信息"<<endl <<setw<48><<"3.查询车票信息4.删除车票信息"<<endl <<setw<48><<"5.修改车票信息6.订购车票信息"<<endl <<setw<48><<"7.退还车票信息8.保存车票信息"<<endl <<setw<27><<"0:退出系统"<<endl<<endl<<endl <<"请选择功能按钮<0-8>:"; return0;}intmain<>{ //主函数 Bus_linkpp; system<"color2E">; charr[20]; //用户名 chars[20]; //密码 charS[20]; //密码确认 cout<<endl; cout<<setw<22><<"★★★★★★★"<<"欢迎使用列车车票管理系统"<<"★★★★★★★"<<endl<<endl; cout<<setw<28><<"**************"<<"用户注册"<<"************"<<endl<<endl; cout<<"\t请输入注册用户名<以字母或数字组成>:"; cin>>r; cout<<"\t请填写注册密码<以字母或数字组成>:"; cin>>s; cout<<"\t请再次输入密码以确认:"; cin>>S; if<strcmp<s,S>!=0>{ cout<<"\t密码输入不符,注册失败,使用!"<<endl; exit<0>; } if<strcmp<s,S>==0>{ system<"cls">; cout<<endl; cout<<"★★★★★"<<"恭喜你注册成功"<<"★★★★★"<<endl; charwo; cout<<endl<<endl<<endl; cout<<"按任意字母键进入登陆界面"<<endl; cin>>wo; system<"cls">; charh[20]; chart[20]; for<intm=0;m<3;m++>{ cout<<endl; cout<<setw<24><<"★★★★★★★"<<"欢迎使用列车车票管理系统"<<"★★★★★★★"<<endl<<endl; cout<<"\t请输入用户名<以字母或数字组成>:"; cin>>h; cout<<"\t请输入密码<以字母或数字组成>:"; cin>>t; system<"cls">; if<strcmp<r,h>==0&&strcmp<s,t>==0> { cout<<endl<<endl; cout<<""<<"登陆中,请稍等..."<<endl; for<intk=0;k<500000000;k++> {} system<"cls">; cout<<endl; cout<<"\t登陆成功!!!"<<endl; cout<<en
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年1月份车辆涉水模式传感器校准服务合同
- 2024-2025学年新教材高中语文 第二单元 6.1 记念刘和珍君教学实录 新人教版选择性必修中册
- 办理退休手续培训
- 2025年生猪屠宰兽医卫生检疫人员考试题(附答案)
- 人事中层管理培训
- 安全生产教育专题
- 2024年六月环保材料装修房屋押金管理专项合同
- 江西防溺水课件
- 恒大房地产销售个人总结
- 秋季运动会活动总结
- GB/T 8545-2012铝及铝合金模锻件的尺寸偏差及加工余量
- GB/T 6730.65-2009铁矿石全铁含量的测定三氯化钛还原重铬酸钾滴定法(常规方法)
- 威尼斯的小艇 省一等奖
- 企业人力资源管理师(四级)教材
- 教科版六年级下册科学第一单元测试卷(原卷版)
- 【教学课件】正确行使诉讼权利-示范课件
- 促进市级医院临床技能与临床创新三年行动计划
- 主观幸福感(GWB)量表
- 临床试验疑难问题解答
- Word版中国空白地图大全
- 玻璃纤维生产工艺流程培训
评论
0/150
提交评论