c++电影院管理系统的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

内蒙古科技大学课程设计论文题目:C++课程设计——电影院售票管理系统学生姓名:张雪婉学号:1167119224专业:通信工程班级:2011-2指导教师:郝斌【摘要】.....................................................................................................................................1第一章问题描述.........................................................................................................................1.1电影院售票管理系统的设计.......................................................................................第二章问题分析.........................................................................................................................2.1阐述你对问题的理解、解决问题的方案说明...........................................................2.2系统功能模块的划分...................................................................................................第三章数据模型.........................................................................................................................3.1相关数据结构的说明类的设计...................................................................................3.2程序结构说明,即程序各个部分之间如何协调来完成任务...................................第四章算法描述.........................................................................................................................4.1解题算法的设计思路介绍...........................................................................................4.2主要程序代码,加上详细的注释...............................................................................第五章设计总结.........................................................................................................................第六章附录.................................................................................................................................【摘要】电影院售票管理系统实现的功能:1、录入信息:且可不定时增加数据。并根据放映时间排序。2、浏览信息:可显示出某日期所有放映信息,如果当前系统时间超过了某电影的放映时间,则显示“此电影放映结束”的提示信息。3、查询电影:可按日期或电影名查询。并显示目标的详细信息。4、售票:售票即为影片预定。可根据输出的可预订信息选择订票,如果该影片已放映,则提示不能订票,如果售票成功,自动跟新座位数。5、退票:影片退订即退票。根据放映时间和系统时间来判断是否能进行退票,并自动更新座位数。其他参数:程序中定义了一个moive结构和一个ticket类,在结构体和类外还定义了seat()和putout()两个函数。moive结构用来存放电影的数据(属性)信息;ticket类实现管理moive结构体里面的数据和系统功能模块;seat()和putout()函数用来辅助结构体和类,简化程序。第一章:问题描述1.1、设计资料及参数用C++设计一个系统,能提供下列服务:(1)录入放映信息,格式为:放映日期放映时间场次电影名称票价会员折扣剩余座位2011-11-210:301桃姐308782011-11-214:002桃姐30886可不定时地增加放映数据。(2)浏览放映信息,可显示出某日期所有放映信息,如果当前系统时间超过了某电影的放映时间,则显示“此电影放映结束”的提示信息。(3)查询电影:可按日期或电影名查询。(4)售票和退票功能A:查询电影名。当剩余座位数大于0,并且当前系统时间小于放映时间时才能售票,计算会员折扣,售票后自动更新剩余座位数。B:退票时,输入退票的电影名和场次,当电影未放映时才能退票,如果以会员折扣购买的电影票,退票按照折扣价退款,退票后自动更新剩余座位数。1.2、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书第二章:问题分析2.1、对问题理解的阐述、解决方案的说明由设计题目知电影院售票管理系统主要由1、录入(input)2、显示(show)3、查询(search)4、售票(sell)5、退票(refund)五个模块组成。对整个系统进行功能分析不难发现,电影院管理系统可以对所有数据的信息进行操作,比如:录入(input)、显示(show)、查询(search)、售票(sell)和退票(refund)。所以需要设计一个moive结构体和ticket类来实现对基本数据的储存和模块功能的实现。考虑到程序实现程序的尽量简洁明了,又增加了时间比较函数(timecmp)、座位判断函数(seat)和信息输出函数(putout)三个函数,对程序实现一定程度的简化。2.2、系统的模块功能流程图如下:运行程序时,需要先输入数据。并定义了时间的输入格式。如(2013-6-2122:00)。显示数据时,会先跟系统时间比较,如果小于系统当前时间,则输出提示“已播放”。查找时满足要求的按名字查找和按日期查找。找到之后与系统时间比较输出提示,如果没找到,输出提示。查询时分为按电影名和日期两种查询功能。查询时将会出现界面来供操作者选择。订票函数中会先给出可预订的提示,这样可以更有效订票。输入之后会先检查是否播放,若播放则给出提示,退出。若未找到,则同样给出提示。如果票卖光了,仍然有提示,如果电影达到预定要求,则先给出现有座位的预订情况,方便用户高效率订票。当客户输入一座位时程序会判断这个作为是否被预订,如果是,则给出提示;如果no就输出用户需要支付的金额,并记录在座位号对应的数组中。方便退票时退款。订票成功后还会输出现有座位的信息方便核实。退票时,操作者要先输入电影名,若电影名不存在或时间以过,会提示“输入错误”或“电影已播放,无法退票”。若在预定的电影中,还会要求输入退订的座位号,以便进一步确认是否真正该电影。若两道确认都成功通过,就会输出要腿还的金额。其中订票和退票函数都是用大篇幅(一两百行)来构建起强大而有完善的提示功能,已完成快捷而又便利操作。第三章:数据模型3.1相关数据结构和类的说明structmoive//定义moive结构体,存放数据{intyear;//年intmonth;//月intday;//日inthour;//时intminute;//分intdatetime[5];//装电影放映时间,方便比较与系统时间比较intnum;//场次stringname;//电影名floatprice;//票价floatdiscount;//折扣intrest;//余票floatseat[10][10];//初始值都为0,只在预定后改变其值};classticket//定义ticket类{private:moivetic[N];//存电影数据的数组intlen;//现有电影数量public:ticket();//构造函数~ticket();//析构函数friendvoidseat(inti);//把seat函数定义为类ticket的友元函数friendvoidputout(inti);//把putout函数定义为类ticket的友元函数voidinput();//录入voidshow();//显示voidsearch();//查找voidsell();//订票voidrefund();//退票;}tick;在类中把seat()和putout()函数定义为类的友元函数,实现类外的函数访问类内的成员,这样可以源代码的篇章幅度,实现在一定程度上简化程序。私有数据成员moivetic[N],便于操作数据。数据组织结构图:3.2程序结构说明,即程序各个部分之间如何协调来完成任务程序的主要实现过程是在ticket类中定义的成员函数和友元函数来实现完成,并且在类外实现。这样方便了对数据进行操作。并且定义了一个全局的比较函数timecmp,可以比较两个时间数组的大小;函数seat实现判断某一座位是否被预定;函数putout实现对电影信息的输出。这三个函数在程序中用途很广泛,在整个程序中多次有时间的比较,座位的检索,电影的信息的输出,当用到某一函数时,直接在模块调用即可,不必多次编写,实现程序的简化。其中程序总很多代码是重复用到的,但是没有写成函数来调用有两点原因。首先如果写成函数调用的话会降低程序的可读性,其次写成函数的话,代码就固定下来了,使得程序不够灵活。所以在程序不必要的地方,就用代码来代替函数调用。举个例子说,在修改,删除,订票,退票中都会用到按电影名查找。可是没有单独把按电影名查找单独写成函数来调用,是因为在按电影名查找会输出很多详细的电影信息和提示信息。这样也不便于调用函数。第四章:算法的描述4.1解题算法的设计思路介绍timecmp函数是用来比较日期时间函数,它需要先把两个时间装入数组再传进来地址,然后从年月日时分进行比较。如果有大小区分,直接返回。inttimecmp(inta[],intb[],intn){inti;for(i=0;in;i++){if(a[i]b[i]){return1;}if(a[i]b[i]){return-1;}}if(i==n){return0;}}Seat函数作为检索某一座位是否已被预订,因为seat[m][n]=0,即初始化都为0。二当该座位被预订后就会赋予座位号,所以用两层for循环,把所有的座位都检索了一遍。在输出,就一下子看出那些座位被预定,那些没有。因为seat函数是类外函数,不能直接操作类ticket的成员,所以要在类中写入“friendvoidseat(inti);”即定义为类的友元函数。若不加,编译将会出错。voidseat(inti){for(intm=0;m10;m++){coutendl\t;for(intn=0;n10;n++){cout[;if(tick

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功