1、铁路售票管理系统完整版 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】铁路售票管理系统C+程序设计课程设计说明书题 目铁路售票系统学 号姓 名指导教师日 期内蒙古科技大学课程设计任务书课程名称面向对象程序设计A课程设计设计题目铁路售票管理系统的设计指导教师周李涌时间2013-2014秋学期 第17、18周一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资
2、料及参数用C+设计一个系统,能提供下列服务:(1)录入车次信息,格式为:车次发车时间起始终点硬座票价剩余座位k26420:30包头北京110200可不定时地增加车次数据。(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。(3)查询路线:可按车次编号查询,可按起始站,终点站查询(4)售票和退票功能A:查询车次或站点。当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。三、设计要求及成果根据系统功能要求,可以将问题解决分
3、为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和力一法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书0001233第1章 需求分析用C+设计一个系统,能提供下列服务:(1)录入车次信息,格式为:车次发车时间起始终点硬座票价剩余座位k26420:30包头北京110200可不定时地增加车次数据。(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。(3)
4、查询路线:可按车次编号查询,可按起始站,终点站查询(4)售票和退票功能A:查询车次或站点。当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。第2章 总体设计1.用结构框图表示各个功能之间的关系。2. 将框图中系统的各个功能用文字详细的描述。 1)初始化:在未添加过列车信息的情况下,管理员进入系统初次录入列车信息。 2)添加:管理员添加列车信息。 3)浏览:浏览列车信息,显示车次、发车时间、起始站、终点站、硬座票价、剩余座位、列车是否发出。 4)查找:查找列车信息(分别为按车次、
5、起始站、终点站)。 5)订票:订购车票;已发出的列车不能订票。 6)退票:退还车票;已发出的列车不能退票。第3章 类的设计3.1 user类的设计(第一个类)1.画出类图User数据成员 struct Time int hour; int minute; ; char num10; Time time; char start20; char end20; int price; int count;函数成员 void print(); void search(); void dingpiao(); void tuipiao(); 2.对类的函数成员的说明 在第一个类中定义了浏览函数、查找函数、订
6、票函数、退票函数 函数的首部: 1)浏览函数: 输入了当地时间、车次、列车发出时间、起始站、终点站、剩余车票; 进行了选择对象与输出流操作; 输出了当地时间,不同车次的车次编号、列车发出时间、起始站、终点 站、剩余车票、列车状态; 2)查找函数: 输入了车次(或起始站或终点站)。 进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。 输出了相匹配的车次的信息。 3)订票函数: 输入了车次(或起始站或终点站)。 进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。判断是否允许 被购买,然后进行是否购买。 刷新车票。 输出车票已订购。 4)退票函数: 输入了车次(或起始站或终点站)
7、。 进行输入车次(或起始站或终点站)与数据库内的车票信息的匹配。判断是否允许 被退票,然后进行是否退票。 刷新车票。 输出车票已退还。3.2 service类的设计(第二个类)1.画出类图service 数据成员: struct Time int hour; int minute; ; char num10; Time time; char start20; char end20; int price; int count;函数成员:void chushihua(); void add(); 友元函数: friend void ckym(); friend void glyym(); frie
8、nd void sfyz(); friend void save (); friend void read(); friend void input(); friend void display(int j); friend void search_CC(); friend void search_QS(); friend void search_ZD();2.对类的函数成员的说明 1)初始化函数:输入了初次对象的车次、列车发出时间、起始站、终点站、剩余车票数。进行了车票信息的储存。结果将车票信息保存在了。 2)增添函数:输入了不同对象的车次、列车发出时间、起始站、终点站、剩余车票数。进行了车
9、票信息的储存。结果将车票信息保存在了。第4章 详细设计4.1 工程视图4.2 类图视图4.3 主程序流程图 Y N N Y 0 N 1-6 Y 0 1-44.4 主要算法的流程图 初始化函数: Y N 添加模块: Y N 查询模块: 1 2 3 订票函数: N Y Y N 退票函数: N Y Y N第5章 测试程序的运行结果截图:第6章 总结感谢老师的辛苦教学与悉心指导,通过本次课程设计,让我更加深刻的理解到了C+得运用,这门语言的奥妙之处。相信这次实训会让我在今后的学习中受益匪浅。附录:程序代码#include#include#includeum; cout请输入起始站:ticketg_nu
10、m.start; cout请输入终点站:ticketg_num.end; cout请输入时间(时):ticketg_num.; cout请输入时间(分):ticketg_num.; cout请输入票价:ticketg_num.price; cout请输入车票数:ticketg_num.count; save (); void save () ofstream file(,ios:in); for(int j=0;j=g_num;j+) fileticketj.num ; fileticketj. ; fileticketj. ; fileticketj.start ; fileticketj.
11、end ; fileticketj.price ; fileticketj.countendl; (); cout信息已存入文件ticketg_num.; fileticketg_num.; fileticketg_num.start; fileticketg_num.end; fileticketg_num.price; fileticketg_num.count; g_num-; (); cout读取完毕!endl;void display(int j) coutticketj.numtticketj.startt ticketj.endt ticketj.: ticketj.tttick
12、etj.pricet ticketj.counttt; t = :time(NULL); tm * pt = localtime(&t); if(ticketj.tm_hour) couttm_hour&ticketj.tm_min) cout此班列车已发出; else cout正常; coutendl; void output() tm_hour) cout此班列车已发出,不能订票!; cout请按回车键返回上层菜单tm_hour&ticketj. tm_min) cout此班列车已发出,不能订票!; getchar(); strcpy(ii, n); break; do coutn; if
13、 (n = 0) cout输入错误!至少需订1张车票。= n) ticketj.count = ticketj.count - n; cout订票成功!; break; else if (ticketj.count = 0) cout对不起,你所选择的列车的车票已售完!endl; break; else if (ticketj.countn) cout对不起,你所选择的列车只剩余ticketj.count张车票endl; couta; while (!strcmp(a, y); couta; while (!strcmp(a, y); /*退票模块*/void user:tuipiao() s
14、ystem(cls); tm * pt = localtime(&t); int n; char a10; do search(); if (!strcmp(ii, n) cout对不起!没有找到您所需要的列车,所以不能退票。endl; cout请按回车键返回上层菜单endl; strcpy(ii, n); getchar(); return; if(ticketj.tm_hour) cout此班列车已发出,不能退票!!tm_hour&ticketj.tm_min) cout此班列车已发出,不能退票!endl; strcpy(ii, n); getchar(); break; cout请输入您
15、要退的车票数:n; if (n = 0) cout输入错误!至少需退1张车票。endl; else ticketj.count = ticketj.count + n; cout退票成功!; cout是否继续?请键入y或n以回车键结束:a; while (!strcmp(a, y); /*查询模块*/void user:search() 车次查询endl t2.按起始站查询endltt3.按终点站查询endl; coutn; for(;n!=1&n!=2&n!=3;) cout指令错误!请重新输入!n; switch (n) case 1:search_CC(); break; case 2:
16、search_QS(); break; case 3:search_ZD(); break; void search_CC() um)=0) cout你所要查询的列车信息为:endl; cout车次t起始站t终点站t发车时间t票价t剩余票数t状态endl; display(j); coutn查询完毕,按回车键继续endl; strcpy(ii, y); getchar(); return; coutn对不起,没有您需要的信息!endl; coutii; while (!strcmp(ii, y); void search_QS() tart)=0) cout你所要查询的列车信息为:endl;
17、cout车次t开车时间t起始t终点t票价t 剩余座位t状态tendl; display(j); coutn查询完毕,按回车键继续endl; strcpy(ii, y); getchar(); return; coutn对不起,没有您需要的信息!endl; coutii; while (!strcmp(ii, y); void search_ZD() nd)=0) cout你所要查询的列车信息为:endl; cout车次t开车时间t起始t终点t票价t 剩余座位t状态tendl; display(j); coutn查询完毕,按回车键继续endl; strcpy(ii, y); getchar();
18、 return; coutn对不起,没有您需要的信息!endl; coutii; while (!strcmp(ii, y); /*浏览模块*/ void user: print() 览车次信息endl; cout2.查找车次信息endl; cout3.订票业务endl; cout4.退票业务endl; cout0.退出endl; cout*endl; cout请输入选项前数字(回车键结束):j; switch (j) case 1:ticket9.print(); break; case 2:ticket9.search(); break; case 3:ticket9.dingpiao()
19、; break; case 4:ticket9.tuipiao(); break; case 0: save(); cout谢谢使用,您已退出乘客系统,再见endl; break; while (j != 0);void glyym() hushihua(); int j; do cout*; cout1.增加车次信息endl; cout2.浏览车次信息endl; cout3.查找车次信息endl; cout4.订票业务endl; cout5.退票业务endl; cout0.退出endl; cout*; coutj; switch (j) case 1:ticket9.add(); break
20、; case 2:ticket9.print(); break; case 3:ticket9.search(); break; case 4:ticket9.dingpiao(); break; case 5:ticket9.tuipiao(); break; case 0: save(); cout谢谢使用,您已退出管理员系统,再见endl; break; while (j != 0);void sfyz() 理员endlt2.乘客endltt0.退出系统sf; if(sf=1) coutcode; while(code!=1)/管理员密码为1 cout指令错误!请重新输入!code; glyym(); /调用管理员选择页面函数 else if(sf=2) ckym();/调用乘客界面 while(sf != 0);void main() cout欢迎使用铁路订票系统endl; couttttttt endl; sfyz(); /调用身份验证函数 cout谢谢使用,再见!endl;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1