


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计课程设计说明书题 目铁路售票系统学 号姓 名指导教师日 期内蒙古科技大学课程设计任务书课程名称面向对象程序设计A课程设计设计题目铁路售票管理系统的设计指导教师周李涌时间2013-2014秋学期 第17、18周、教学要求1. 巩固和加深学生对 C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数用C+设计一个系统,能提供下列服务:(1) 录入车次信息,格式为:车次发车时间起始终占二八、硬座票价剩余座位k26420: 30包头北京11
2、0200可不定时地增加车次数据。(2) 浏览车次信息,可显示岀所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。(3) 查询路线:可按车次编号查询,可按起始站,终点站查询(4) 售票和退票功能A:查询车次或站点。当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发岀时才能退票,退票后自动更新剩余座位数。三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1) 分析系统中的各个实体之间的关系及其属性和行为;(2) 根据问题描述,设计系统的类层次;(3) 完成类层次中各个类
3、的描述 (包括属性和力一法);(4) 完成类中各个成员函数的定义;(5) 完成系统的应用模块;(6) 功能调试;(7) 提交课程设计报告:完成系统总结报告以及系统使用说明书目录00012第1章需求分析用C+设计一个系统,能提供下列服务:(1) 录入车次信息,格式为:车次发车时间起始终占二八、硬座票价剩余座位k26420: 30包头北京110200可不定时地增加车次数据。(2) 浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。(3) 查询路线:可按车次编号查询,可按起始站,终点站查询(4) 售票和退票功能A:查询车次或站点。当剩余座位数
4、大于 0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发出时才能退票,退 票后自动更新剩余座位数。第2章总体设计1. 用结构框图表示各个功能之间的关系。系统功能乘客录入保存添加读取保存管理员初始化浏览按车次订票退票终点站2将框图中系统的各个功能用文字详细的描述1 )初始化:在未添加过列车信息的情况下,管理员进入系统初次录入列车信息2 )添加:管理员添加列车信息。3 )浏览:浏览列车信息,显示车次、发车时间、起始站、终 点站、硬座票价、剩余座位、列车是否发出。4 )查找:查找列车信息(分别为按车次、起始站、终点站)5 )订票:订购车票
5、;已发出的列车不能订票。6 )退票:退还车票;已发出的列车不能退票。第3章类的设计3.1 user类的设计(第一个类)1. 画出类图User数据成员struct Time int hour; int mi nute;;char num10; Time time;char start20; char e nd20; int price; int count;函数成员void prin t();void search();void din gpiao();void tuipiao();2. 对类的函数成员的说明在第一个类中定义了浏览函数、查找函数、订票函数、退票函数函数的首部:)浏览函数:车票.
6、I xj< 输入了当地时间、车次、列车发出时间、起始站、终点站、剩余进行了选择对象与输出流操作;终占八、输出了当地时间,不同车次的车次编号、列车发出时间、起始站、站、剩余车票、列车状态;2 )查找函数:输入了车次(或起始站或终点站)。进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。输出了相匹配的车次的信息。3 )订票函数:输入了车次(或起始站或终点站)。进行输入车次(或起始站或终点站)与数据库内的车票信息的 匹配。判断是否允许被购买,然后进行是否购买。刷新车票。输出车票已订购。4 )退票函数:输入了车次(或起始站或终点站)。进行输入车次(或起始站或终点站)与数据库内的车票信息
7、的 匹配。判断是否允许被退票,然后进行是否退票。刷新车票。输出车票已退还。3.2 service类的设计(第二个类)1.画出类图service数据成员: struct Timeint hour; int min ute;;char num10; Time time;char start20; char e nd20; int price; int count;函数成员:void chushihua(); void add();友元函数:friend void ckym();frie nd void glyym(); friend void sfyz();frie nd void save ()
8、; friend void read(); friend void in put();frie nd void display(i nt j); frie nd void search_CC(); frie nd void search_QS(); frie nd void search_ZD();2. 对类的函数成员的说明1 )初始化函数:输入了初次对象的车次、列车发出时间、起始站、终点站、剩余 车票数。进行了车票信息的储存。结果将车票信息保存在了2)增添函数:输入了不同对象的车次、列车发出时间、起始站、终点站、剩余车票数。进行了车票信息的储存。结果将车票信息保存在了。第4章详细设计4.1工
9、程视图4.2类图视图4.3主程序流程图1-初始化读取保存开始NSf=O?Sf=1?Y管理员模块NY乘客模块Sf=2?添加保存1-4浏览查找订票厂结束_/按车次起始站4.4主要算法的流程图初始化函数:N添加模块:开始YN查询模块:3按车次输入车次输入终点站输出车次信息输出车次信息输出车次信息订票函数:是否继续添加?一 结束输入车票信息 保存信息起始站 输入起始站开始终点站结束YN退票函数:程序的运行结果截图:第6章总结感谢老师的辛苦教学与悉心指导,通过本次课程设计,让我更加深刻的理解到了 C+得运用,这门语言的奥妙之处。相信这次实训会让我在今后的学习中受益匪浅附录: 程序代码#include&l
10、t;>#include<>#include<>um;cout<<" 请输入起始站 :"<<endl; cin>>ticketg_num.start;cout<<" 请输入终点站 :"<<endl; cin>>ticketg_num.end;cout<<" 请输入时间(时) :"<<endl; cin>>ticketg_num.;cout<<" 请输入时间(分) :"&
11、lt;<endl; cin>>ticketg_num.;cout<<" 请输入票价: "<<endl; cin>>ticketg_num.price;cout<<" 请输入车票数 :"<<endl; cin>>ticketg_num.count;save ();void save ()ofstream file("",ios:in);for(int j=0;j<=g_num;j+)file<<ticketj.num<<
12、;" " file<<ticketj. <<" " file<<ticketj.<<" " file<<ticketj.start<<" " file<<ticketj.end<<" " file<<ticketj.price<<" " file<<ticketj.count<<endl;();cout<<" 信
13、息已存入文件 "<<endl;void read() um;file>>ticketg_num.;file>>ticketg_num.; file>>ticketg_num.start; file>>ticketg_num.end; file>>ticketg_num.price; file>>ticketg_num.count;g_num-;();void display(int j)cout<<ticketj.num<<"t"<<ticket
14、j.start<<"t" <<ticketj.end<<"t"<<" "<<ticketj.<<":" <<ticketj.<<"tt"<<ticketj.price<<"t" <<ticketj.count<<"tt"t = :time(NULL);tm * pt = localtime(&t);if(t
15、icketj.<pt->tm_hour)cout<<" 此班列车已发出 "else if(ticketj.=pt->tm_hour&&ticketj.<=pt->tm_min)cout<<" 此班列车已发出 "else cout<<" 正常 "cout<<endl;void output() < pt->tm_hour)c out<<" 此班列车已发出 , 不能订票! "cout<<&q
16、uot; 请按回车键返回上层菜单 "<<endl;getchar();strcpy(ii, "n");break;else if(ticketj.=pt->tm_hour&&ticketj. <= pt->tm_min)c out<<" 此班列车已发出 , 不能订票! "getchar();s trcpy(ii, "n");break;docout<<" 请输入您要订的车票数(以回车键结束): " cin>>n;if (n
17、<= 0)cout<<" 输入错误!至少需订 1 张车票。 "<<endl;else if (ticketj.count != 0 && ticketj.count >= n)ticketj.count = ticketj.count - n;cout<<" 订票成功! "break;else if (ticketj.count = 0)break;else if (ticketj.count<n)cout<<" 对不起,你所选择的列车只剩余 "<
18、<ticketj.count<<" 张车票 "<<endl;cout<<" 是否需要重新输入车票数?请输入 y 或 n 以回车键结束: "cin>>a;while (!strcmp(a, "y");y 或 n 以回车键结束:cout<<" 是否需要重新订购其他车票?请输入cin>>a; while (!strcmp(a, "y");退票模块*void user:tuipiao()system("cls");t
19、m * pt = localtime(&t);int n;char a10;dos earch();if (!strcmp(ii, "n")cout<<" 对不起!没有找到您所需要的列车,所以不能退票。 "<<endl; cout<<" 请按回车键返回上层菜单 "<<endl;strcpy(ii, "n");getchar();return;if(ticketj.<pt->tm_hour)cout<<" 此班列车已发出 , 不
20、能退票 ! ! "<<endl; strcpy(ii, "n");getchar();break;else if(ticketj.=pt->tm_hour&&ticketj.<=pt->tm_min)cout<<" 此班列车已发出 , 不能退票! "<<endl; strcpy(ii, "n");getchar();break;cin>>n;if (n <= 0)cout<<" 输入错误!至少需退 1 张车票。 &q
21、uot;<<endl;elseticketj.count = ticketj.count + n; cout<<" 退票成功!II.cout<<" 是否继续?请键入 y 或 n 以回车键结束:"<<endl;cin>>a; while (!strcmp(a, "y");/*查询模块*/void user:search()车次查询 "<<endl<<"t2. 按起始站查询 "<<endl<<"tt3.
22、cout<<" 请选择 1 或 2 或 3,以回车键结束:按终点站查询 "<<endl;II.cin>>n;for(;n!=1&&n!=2&&n!=3;)cout<<" 指令错误!请重新输入! "<<endl; cin>>n;switch (n)case 1:search_CC();break;case 2:search_QS(); break;case 3:search_ZD(); break;void search_CC() um)=0)cout&
23、lt;<" 你所要查询的列车信息为:cout<<" 车次 t"<<" 起始站 t"<<" 终点站 t"<<" 发车时间 t"<<" 票价 t"<<" 剩余"<<endl;票数 t"vv"状态"<<endl;display(j);cout<<"n 查询完毕,按回车键继续 "<<endl; str
24、cpy(ii, "y");getchar();return;cout<<"n 对不起,没有您需要的信息! "<<endl; cout<<" 是否重新查找?请键入 y 或 n 以回车键结束 "cin>>ii; while (!strcmp(ii, "y");void search_QS() tart)=0)cout<<" 你所要查询的列车信息为: "<<endl;cout<<" 车次 t"<
25、;<" 开车时间 t"<<" 起始 t"<<" 终点 t"<<" 票价 t" <<" 剩余座位 t"<<" 状态 t"<<endl;display(j);cout<<"n 查询完毕,按回车键继续 "<<endl; strcpy(ii, "y");getchar(); return;cout<<"n 对不起,没有您需
26、要的信息! "<<endl; cout<<" 是否重新查找?请键入 y 或 n 以回车键结束 " cin>>ii; while (!strcmp(ii, "y");void search_ZD() nd)=0)cout<<" 你所要查询的列车信息为: "<<endl;cout<<" 车次 t"<<" 开车时间 t"<<" 起始 t"<<" 终点 t&
27、quot;<<" 票价 t" <<" 剩余座位 t"<<" 状态 t"<<endl;display(j);cout<<"n 查询完毕,按回车键继续 "<<endl; strcpy(ii, "y");getchar(); return;cout<<"n 对不起,没有您需要的信息! "<<endl; cout<<" 是否重新查找?请键入 y 或 n 以回车键结束
28、"cin>>ii; while (!strcmp(ii, "y");浏览模块*void user: print() 览车次信息 "<<endl; cout<<"2. 查找车次信息 "<<endl; cout<<"3. 订票业务 "<<endl; cout<<"4. 退票业务 "<<endl;cout<<"0. 退出 "<<endl;cout<<&
29、quot;*”厶n Al.cout<<" 请输入选项前数字 ( 回车键结束 ) : "<<endl; cin>>j;switch (j)case 1:ticket9.print(); break;case 2:ticket9.search(); break;case 3:ticket9.dingpiao(); break;case 4:ticket9.tuipiao(); break;case 0: save();cout<<" 谢谢使用,您已退出乘客系统,再见! "<<endl; break; while (j != 0);void glyym() hushihua();int j;docout<<"I*11.cout<<"1.增加车次信息"<<endl;cout<<"2.浏览车次信息"<<endl;cout<<"3.查找车次信息"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年城市照明电力安装与改造合同
- 2025版汽车租赁合同范本(含环保)
- 2025版生猪养殖环境监测与保护合同
- 2025年文化旅游区招商引资合作协议范本
- 2025版水渠工程劳务派遣合同示范文本
- 2025年绿色装修贷款服务合同样本
- 2025年度能源行业财务顾问合同-成本分析与优化
- 2025年度高端全屋定制家具设计施工合同范本
- 2025茶楼承包合同范本:含茶楼环保设施建设协议
- 2025版禽类产品电商平台合作合同
- 2025年高级考评员职业技能等级认定考试题(附答案)
- 实验室生物安全管理手册
- 国自然申请攻略
- 锂电池pack生产线可行性报告
- 中蜂饲养管理与常见病防治
- 2025年度砂石料生产加工与设备租赁合同3篇
- 2024年05月辽宁中国工商银行辽宁分行校园招考笔试历年参考题库附带答案详解
- 供应商准入培训
- DME糖尿病黄斑水肿
- DB1305∕T 45-2022 小麦品种冀麦325节水高产栽培技术规程(邢台市)
- 《中国传统文化课件》课件
评论
0/150
提交评论