版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 46 1内蒙古科技大学本科生C+程序设计课程设计说明书 题 目: 铁路售票管理系统 学生姓名:范振辉 学 号:1067111204 专 业:计算机科学与技术 班 级:计10-2班 指导教师:孙涛成绩评定标准课程设计的验收答辩采取“讲解程序+提问+即时编程”的方式。考核项目评价质量成绩程序功能完全实现,并能通过答辩。(60%)A能完全正确回答提问;B问题回答的基本意思正确;C不能回答或回答错误,抽取程序小的功能即时编程,能完成;D不能回答或回答错误,即时编程无法完成;程序设计符合面向对象的思想和原则,结构合理(15)A程序结构层次分明,提取出各个实体类,类的设计合理;B程序结
2、构层次分明,具有客户类和服务类;C类的设计基本正确;D几乎在一个类或者方法中实现了大部分的逻辑,结构不够清晰;程序的风格(10%)A遵守编码规范,有良好的风格; 以下问题每出现一项成绩降一个等级: 1类、方法和变量命名不符合规范; 2方法和属性前缺少注释; 3程序没有适当缩进;设计说明书(15%)从以下几方面考核: 1结构完整 2图表正确 3文字通顺 4版面工整 摘要本系统是一个铁路售票管理系统,可以满足购票者,票务工作人员和票务系统管理员等多方面的需要。根据开发的要求,它主要应用于交通系统,可实现集票务信息录入、售票、退票、查询等功能进行现代化的信息管理。本售票管理系统可自主服务乘客,加快查
3、询、买票的速度,减轻客运工作人员工作压力。进而提高劳动生产力,降低成本,提高服务质量和管理水平,促进经济效益。本系统功能比较简单,容易实现,整个系统力求做到操作 简便,界面友好,灵活,实用和安全。 目录 TOC o 1-3 h z u HYPERLINK l _Toc312331970 第一章 成绩评定标准 PAGEREF _Toc312331970 h 2 HYPERLINK l _Toc312331971 1.1 摘要 PAGEREF _Toc312331971 h 3 HYPERLINK l _Toc312331972 第二章 问题描述 PAGEREF _Toc312331972 h 6
4、 HYPERLINK l _Toc312331973 第三章 问题分析 PAGEREF _Toc312331973 h 7 HYPERLINK l _Toc312331974 3.1 阐述你对问题的理解、解决问题的方案说明 PAGEREF _Toc312331974 h 7 HYPERLINK l _Toc312331975 3.2 系统功能模块的划分 PAGEREF _Toc312331975 h 8 HYPERLINK l _Toc312331976 第四章 数据模型 PAGEREF _Toc312331976 h 9 HYPERLINK l _Toc312331977 4.1 相关数据结
5、构的说明 PAGEREF _Toc312331977 h 9 HYPERLINK l _Toc312331978 4.2 类的设计 PAGEREF _Toc312331978 h 9 HYPERLINK l _Toc312331979 4.3 程序结构说明,即程序各个部分之间如何协调来完成任务 PAGEREF _Toc312331979 h 11 HYPERLINK l _Toc312331980 4.4 全局变量,重要形式参数、局部变量等等,它们的命名及用途解释 PAGEREF _Toc312331980 h 12 HYPERLINK l _Toc312331981 第五章 算法描述 PAG
6、EREF _Toc312331981 h 13 HYPERLINK l _Toc312331982 5.1 测试结果 PAGEREF _Toc312331982 h 13 HYPERLINK l _Toc312331983 5.1.1 1:验证身份: PAGEREF _Toc312331983 h 13 HYPERLINK l _Toc312331984 5.1.2 2:管理员登陆 PAGEREF _Toc312331984 h 14 HYPERLINK l _Toc312331985 5.1.3 乘客登录 PAGEREF _Toc312331985 h 15 HYPERLINK l _Toc
7、312331986 5.1.4 不是管理员,不能录入车次信息 PAGEREF _Toc312331986 h 16 HYPERLINK l _Toc312331987 5.1.5 读文件 PAGEREF _Toc312331987 h 17 HYPERLINK l _Toc312331988 5.1.6 3:录入信息并存入文件 PAGEREF _Toc312331988 h 17 HYPERLINK l _Toc312331989 5.1.7 4:浏览 PAGEREF _Toc312331989 h 19 HYPERLINK l _Toc312331990 5.1.8 5:查询子菜单 PAGE
8、REF _Toc312331990 h 20 HYPERLINK l _Toc312331991 5.1.9 6:查询车次 PAGEREF _Toc312331991 h 21 HYPERLINK l _Toc312331992 5.1.10 7:订票 PAGEREF _Toc312331992 h 22 HYPERLINK l _Toc312331993 5.1.11 8:退票 PAGEREF _Toc312331993 h 23 HYPERLINK l _Toc312331994 5.1.12 退出系统 PAGEREF _Toc312331994 h 24 HYPERLINK l _Toc
9、312331996 第六章 代码,加上详细的注释 PAGEREF _Toc312331996 h 25 HYPERLINK l _Toc312331997 第七章 设计总结 PAGEREF _Toc312331997 h 43 HYPERLINK l _Toc312331998 第八章 参考文献 PAGEREF _Toc312331998 h 44问题描述。1.用C+设计一个系统,能提供下列服务:(1)录入车次信息,格式为:车次发车时间起始终点硬座票价剩余座位k26420:30包头北京110200可不定时地增加车次数据。(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时
10、间,则显示“此班列车已发出”的提示信息。(3)查询路线:可按车次编号查询,可按起始站,终点站查询(4)售票和退票功能A:查询车次或站点。当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。2.设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和力一法);(4)完成类中各个成.员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)完成系
11、统总结报告以及系统使用说明书。问题分析阐述你对问题的理解、解决问题的方案说明铁路售票管理系统理解:系统中必须有车次信息,车次信息应该是由管理员录入,可由管理员或者乘客查看,定退票及其他操作。其中要注意的是录入信息必须是由管理员完成的,所以我会创建一个乘客类,然后创建管理员类继承乘客类,进而继承乘客的所有功能,并添加录入信息的功能。信息的载体可以使链表,也可以是数组,因为我更加熟悉数组,所以我用对象数组。(为了熟悉链表,课下自己还建立了以链表存放数据的系统)系统录入信息的操作非常枯燥,所以我创建了一个文件,把每次录入的信息保存入文件,在下一次进入系统是,它会默认读取文件原有的信息,当然也可以随时
12、添加录入车次信息。然后系统的各个功能仅仅是通过查询找到具体对象的具体数据进行操作。 基本功能:录入次、始发站、终点站、开车时间(小时、分钟)、票价、剩余票数等信息。浏览车次查看所有的录入车次其中开车时间小于当前时间的车次则输出车次已发出。查询车次通过搜索车次或站点来快速的查看车辆的信息。定退票车时间大于当前系统时间的前提下才可退票并且在票数大于零的前提下才可定票,票数更新。文件的存储存储录入的车次信息以便下次访问。文件的读取读取文件内的信息方便操作以上的各项功能;。系统功能模块的划分数据模型相关数据结构的说明车次:变量 train 定义为字符型。发车时间:time 结构体。始发站:变量 sta
13、r-station 字符型。终点站:变量end-station 字符型。开车的间: :变量 time 整型、变量 time1 整型。票价 :变量 ticket-price 实型。剩余票数 :变量remaind_seats 整型。类的设计定义了一个user 类,类中包括以下几部分:私有段:定义车辆的车次、开车时间(小时、分钟)、始发站、终点站、票价、票数。公有段依次为输出函数、定票函数、退票函数。友元函数查询函数、浏览函数、文件存储函数、文件读取函数。定义了一个service 类,类中包括以下几部分:公有继承了user类私有段:定义车辆的车次、开车时间(小时、分钟)、始发站、终点站、票价、票数。
14、公有段依次为输入函数、输出函数、定票函数、退票函数。添加设定信息函数。友元函数查询函数、浏览函数、文件存储函数、文件读取函数。添加输入函数。程序结构说明,即程序各个部分之间如何协调来完成任务全局变量,重要形式参数、局部变量等等,它们的命名及用途解释g-num:确定数组对象的个数,也是控制循环的条件。ticketj:代表具体的某个对象。A: bool型,判断使用者身份。B: bool型,判断是否退出程序。t: long型,获得当前距1970年秒数。pt: tm 指向类的对象的指针,指向当前时间。Functionnumber:整型,选择功能。算法描述测试结果1:验证身份:2:管理员登陆乘客登录不是
15、管理员,不能录入车次信息读文件3:录入信息并存入文件4:浏览5:查询子菜单6:查询车次7:订票8:退票退出系统序代码,代码,加上详细的注释#include #include /格式控制#include /清屏文件的声明#include#include #include /获取时间的文件的声明using namespace std;const int N=10;/创建车次信息对象的个数bool A=false,B=true;long t = time(0);tm * pt = localtime(&t);void mainmenu();struct Timeint hour;int minute
16、; ;class user friend void save ();friend void sure_message();friend void browse();friend void ticketmenu();friend void search_train();friend void search_station();protected:char train10;Time time;char start_station20;char end_station20;int ticket_price;int remaind_seats;public:void display() couttra
17、int setfill(0)setw(2)time.hour:setw(2)time.minutett start_stationt end_stationt ticket_pricet remaind_seatst;t = :time(NULL); tm * pt = localtime(&t);if(time.hourtm_hour)couttm_hour&time.minutetm_min)cout 此班列车已发出;else coutt正常;coutendl;/*定退票模块*/void order()if(time.hourtm_hour)couttm_hour&time.minutet
18、m_min)cout 此班列车已发出,不能订票,退出!;else if ( remaind_seats = 0 ) cout 此班列车已没票,不能订票,退出! endl;elseremaind_seats = remaind_seats - 1;cout train次列车 售票一次,现存票量为: remaind_seats endl;void Delete() if(time.hourtm_hour)couttm_hour&time.minutetm_min)cout 此班列车已发出,不能退票,退出!;else remaind_seats = remaind_seats + 1;cout tr
19、ain次列车 退票一次,现存票量为: remaind_seats endl; ;class service :public userfriend void input();public:void setinfo (char* c, int h, int m, char* q, char* z, int p, int s)strcpy(train,c);time.hour=h;time.minute=m;strcpy(start_station,q);strcpy(end_station,z);ticket_price=p;remaind_seats=s;service ticketN;stat
20、ic int g_num=-1;/*存储模块*/void save ()ofstream file(数据.txt,ios:out);for(int j=0;j=g_num;j+)fileticketj.train ;fileticketj.time.hour ;fileticketj.time.minute ;fileticketj.start_station ;fileticketj.end_station ;fileticketj.ticket_price ;fileticketj.remaind_seats endl;file.close();cout信息已存入文件endl;/*录入模块
21、*/void input()g_num+;char c10;int h;int m;char q20;char z20;int p;int s;coutc;couth;coutm;coutq;coutz;coutp;couts;ticketg_num.setinfo (c, h, m, q, z, p, s);save ();/*浏览模块*/void browse()int j;t = time(NULL); tm * pt = localtime(&t);cout当前时间:setfill(0)setw(2)tm_hour:;coutsetw(2)tm_min:;coutsetw(2)tm_s
22、ecendlendl;cout现存车次信息如下:endlendl;cout车次t开车时间t起始t终点t票价t剩余座位t状态tendl;for( j=0;j=g_num;j+)ticketj.display();/*查询模块之车次查询*/void search_train()char train10;couttrain;coutendlendl;for(int j=0;j=g_num;j+)if(strcmp(train,ticketj.train)=0)cout查询结果:endl;cout车次t开车时间t起始t终点t票价t剩余座位t状态tg_num)cout对不起,没有这趟车次信息!;/*查询
23、模块之站点查询*/void search_station()char station20;coutstation;coutendlendl;for(int j=0;j=g_num;j+)if(strcmp(station,ticketj.start_station)=0)|(strcmp(station,ticketj.end_station)=0)cout查询结果:endl;cout车次t开车时间t起始t终点t票价t剩余座位t状态tg_num)cout对不起,没有有关此站点的车次信息!;/*票务菜单模块*/void ticketmenu()long t = time(0);tm * pt =
24、 localtime(&t);int functionNumber;int j;cout 票务菜单 n;char train10;char station20;cout可按站点或车次查询订票(1.按站点,2.按车次)endl;coutfunctionNumber;getchar();for(;functionNumber!=1&functionNumber!=2;) cout指令错误!请重新输入!functionNumber; coutendlendl;if (functionNumber=1)coutstation;coutendlendl;for( j=0;j=g_num;j+)if(st
25、rcmp(station,ticketj.start_station)=0)|(strcmp(station,ticketj.end_station)=0)cout本车次现存信息:endl;cout车次t开车时间t起始t终点t票价t剩余座位t状态tg_num)cout对不起,没有这趟车次信息!,无法订退票!;if (functionNumber=2)couttrain;coutendlendl;for( j=0;j=g_num;j+)if(strcmp(train,ticketj.train)=0)cout本车次现存信息:endl;cout车次t开车时间t起始t终点t票价t剩余座位t状态tg_
26、num)cout对不起,没有有关此站点的车次信息!无法订退票!;if(ticketj.time.hourtm_hour)couttm_hour&ticketj.time.minutetm_min)cout此班列车已发出,不能订退票!;else coutn;cout 1.订票 n;cout 2.退票 n;cout 3.返回主菜单 n;coutn;coutfunctionNumber;for(;functionNumber!=1&functionNumber!=2&functionNumber!=3;) cout指令错误!请重新输入!functionNumber; coutendlendl;swi
27、tch(functionNumber)case 1:ticketj.order();save ();break;case 2:ticketj.Delete();save ();break;case 3:mainmenu();break;/switch ends/*查询模块*/void search_menu()int functionNumber;cout 查询子菜单 n;coutendl;cout 1.按班次查询 n;cout 2.按站点查询 n;cout 3.返回主菜单 n;coutendl;coutfunctionNumber;coutendlendl;for(;functionNumb
28、er!=1&functionNumber!=2&functionNumber!=3;) cout指令错误!请重新输入!functionNumber;coutendlendl; switch(functionNumber)case 1:search_train();break;case 2:search_station();break;case 3:system(cls);mainmenu();/*主菜单*/void mainmenu()int functionNumber;cout 欢迎使用车票管理系统 n;coutendl;cout 1.录入班次信息 n;cout 2.浏览班次信息 n;co
29、ut 3.查询行车路线 n;cout 4.售票与退票系统 n;cout 5.退出系统 n;coutendl;coutfunctionNumber;coutendlendl;switch(functionNumber)case 1: char c;if (A)do input();cout已录入g_num+1条航班信息(包括已从文件中读取的),想继续录入吗(y/n)c; for(;c!=y&c!=n;) cout指令错误!请重新输入!c; while (c=y);else cout对不起,您不是管理员不能进行这项操作!;coutendl按任意键回主菜单endl;getchar();getchar
30、();system(cls);break;case 2:browse();coutendlendlendl按任意键回主菜单endl;getchar();getchar();system(cls);break;case 3:search_menu();coutendl按任意键回主菜单endl;getchar();getchar();system(cls);break;case 4:ticketmenu();coutendl按任意键回主菜单endl;getchar();getchar();system(cls);break;case 5:t = time(NULL);tm* pt = localt
31、ime(&t);system(cls);coutendlendlendlendlendlendlendl;cout 谢谢使用车票管理系统 n;coutendlendlendlendlendlendlendlendlendlendlendl ttttttt制作:范振辉endlendl;cout ttttttt日期:setfill(0)tm_year-;coutsetw(2)tm_mon + 1-;coutsetw(2)tm_mday ;coutsetw(2)tm_hour:;coutsetw(2)tm_min:;coutsetw(2)tm_secn;B=false;break;default: cout输入错误,请确保你的输入为1-5endl;cout按任意键回主菜单endl;getchar();system(cls);/switch ends/*开始保证系统中存有信息模块*/void sure_message()cout 欢迎使用车票管理系统 nendlendl;ifstream file ( 数据.txt ,ios:in) ;if ( !file ) if (A)cout 从没录入过信息,请您先录入信息 endl;input();coutendl按任意键回主菜单endl;getchar();s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论