面向对象课程设计-长途客运售票管理系统.doc_第1页
面向对象课程设计-长途客运售票管理系统.doc_第2页
面向对象课程设计-长途客运售票管理系统.doc_第3页
面向对象课程设计-长途客运售票管理系统.doc_第4页
面向对象课程设计-长途客运售票管理系统.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+程序设计课程设计说明书题 目长途客运售票管理系统的设计学 号姓 名指导教师日 期2015.7.2内蒙古科技大学课程设计任务书课程名称面向对象程序设计A课程设计设计题目长途客运售票管理系统的设计指导教师王丽颖时间2015-2016春学期 第17、18周一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数用C+设计一个系统,能提供下列服务:(1)录入车次信息,格式为:车次开车时间起始终点票价剩余座位22120:30包头北京31087可不定时地增加车次数据。(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班车已发出”的提示信息。(3)查询路线:可按车次编号查询,可按起始站,终点站查询(4)售票和退票功能A:查询车次编号或站点。当剩余座位数大于0,并且当前系统时间小于开车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班车未发出时才能退票,退票后自动更新剩余座位数。三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书目录第1章 需求分析4第2章 总体设计4第3章 类的设计43.1 类的设计33.2 类的设计4第4章 详细设计54.1 工程视图44.2 类图视图44.3 函数的调用关系54.4 主程序流程图5 4.5 主要算法的流程图5第5章 测试6第6章 总结6附录:程序代码6第1章 需求分析用C+设计一个系统,能提供下列服务:(1)录入车次信息,格式为:车次发车时间起始终点硬座票价剩余座位k26420:30包头北京110200可不定时地增加车次数据。(2)浏览车次信息,可显示出所有车次,如果当前系统时间超过了某车次的发车时间,则显示“此班列车已发出”的提示信息。(3)查询路线:可按车次编号查询,可按起始站,终点站查询(4)售票和退票功能A:查询车次或站点。当剩余座位数大于0,并且当前系统时间小于发车时间时才能售票,售票后自动更新剩余座位数。B:退票时,输入退票的车次,当本班列车未发出时才能退票,退票后自动更新剩余座位数。第2章 总体设计1.用结构框图表示各个功能之间的关系。2. 将框图中系统的各个功能用文字详细的描述。基本功能:录入次、始发站、终点站、开车时间(小时、分钟)、票价、剩余票数等信息。浏览车次查看所有的录入车次其中开车时间小于当前时间的车次则输出车次已发出。查询车次通过搜索车次或站点来快速的查看车辆的信息。定退票车时间大于当前系统时间的前提下才可退票并且在票数大于零的前提下才可定票,票数更新。文件的存储存储录入的车次信息以便下次访问。文件的读取读取文件内的信息方便操作以上的各项功能;。第3章 类的设计3.1 user类的设计(第一个类)1.画出类图user数据成员 私有段:定义车辆的车次、开车时间(小时、分钟)、始发站、终点站、票价、票数。函数成员 公有段:依次为输出函数、定票函数、退票函数。友元函数查询函数、浏览函数、文件存储函数、文件读取函数。2.对类的函数成员的说明车次:变量 train 定义为字符型。发车时间:time 结构体。始发站:变量 star-station 字符型。终点站:变量end-station 字符型。开车的间: :变量 time 整型、变量 time1 整型。票价 :变量 ticket-price 实型。剩余票数 :变量remaind_seats 整型。3.2 service 类的设计(第二个类)1. 画出类图service数据成员私有段:(公有继承user类)定义车辆的车次、开车时间(小时、分钟)、始发站、终点站、票价、票数。函数成员 公有段:依次为输入函数、输出函数、定票函数、退票函数。添加设定信息函数。友元函数查询函数、浏览函数、文件存储函数、文件读取函数。添加输入函数。2. 对类的函数成员的说明 g-num:确定数组对象的个数,也是控制循环的条件。 ticketj:代表具体的某个对象。 A: bool型,判断使用者身份。 B: bool型,判断是否退出程序。 t: long型,获得当前距1970年秒数。 pt: tm 指向类的对象的指针,指向当前时间。 Functionnumber:整型,选择功能。第4章 详细设计4.1 工程视图说明有几个源代码文件,可以截取工程文件视图表示4.2 类图视图每个文件包含哪些类和函数,可以截图说明4.3 主程序流程图第5章 测试程序的运行结果截图。1验证身份2管理员登陆3录入信息并保存4浏览5不是管理员,不能录入信息5查询子菜单6查询车次7订票8退票9退出第6章 总结经历过基本几天都在看程序的时间,我发现我懂的太少,要学的太多。原以为会很轻松,但还是遇到很多问题,以前上课时从未想到过。对文件的操作我一直都没注意,现在才发现其乐无穷,学习与实践果然是不可分割的。发现水平还是不够,同学可以编出一个比较漂亮的界面,还可以随意调用文件操作,实在让人赞叹不已。课程设计旨在锻炼学生的实际动手能力和解决真实问题的能力。并在其中掌握和熟练所学的知识,并能够运用所学知识解决比较简单的现实模拟问题。本次课程设计在老师的帮助和自己的努力下终于能够成功运行,使我感到非常高兴以及提高了自己的编程信心,虽然这次课程设计的题目实现比较简单和不实用但毕竟是自己将近两个星期的努力地结果。在期间我对编程的理念理解又加深了一点,他是我明白好的算法或者是好的逻辑思维对编程的重要性,在调试期间我自卑过、高兴过、平静过。可以说是我经历了比较大的情感波动。当费很大劲才把程序调运行的时候那种感觉实在是太好了。在本次课程设计活动中,我明显的感觉到自己知识的欠缺和实际动手能的差劲。尤其是在传值传参的函数调用时更体现的非常明显,感觉自己的书本学的不透、学的不扎实。有些地方更本就不会,不如说文件的操作,比如说系统时间的获取等以前在上课或作习题时更本就不会考虑的问题在课程设计当中完全暴露出来。此次实习加强了我的理解,很多以前迷糊的概念得到了明确,亦让我感到计算机语言的强大之处。一句诗概括此次实践,“山重水复疑无路,柳暗花明又一村”;如今实践已然结束,但是对于计算机语言的学习决不能放松,“雄关漫道真如铁, 而今迈步从头越”。现在的世界是信息化的,路漫漫其修远兮,吾将上下而求索。感谢老师抽出时间的指导,同时亦感谢大家这些天来的支持与帮助。附录:程序代码#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; ;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() couttraint 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.minutetm_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 train次列车 退票一次,现存票量为: 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;static 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;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_secendlendl;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对不起,没有这趟车次信息!;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 = 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(strcmp(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_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;switch(functionNumber)case 1:ticketj.order();save ();break;case 2:ticketj.Delete();save ();break;case 3:mainmenu();break;/switch endsvoid search_menu()int functionNumber;cout 查询子菜单 n;coutendl;cout 1.按班次查询 n;cout 2.按站点查询 n;cout 3.返回主菜单 n;coutendl;coutfunctionNumber;coutendlendl;for(;functionNumber!=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;cout 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();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 = localtime(&t);system(cls);coutendlendlendlendlendlendlendl;cout 谢谢使用车票管理系统 n;B=false;break;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论