




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古科技大学本科生C+程序设计课程设计说明书题 目:电影院售票管理系统学生姓名:学 号:专 业:计算机科学与技术班 级:计2010-2班指导教师:38内蒙古科技大学课程设计说明书成绩评定标准课程设计的验收答辩采取“讲解程序+提问+即时编程”的方式。考核项目评价质量成绩程序功能完全实现,并能通过答辩。(60%)A能完全正确回答提问;B问题回答的基本意思正确;C不能回答或回答错误,抽取程序小的功能即时编程,能完成;D不能回答或回答错误,即时编程无法完成;程序设计符合面向对象的思想和原则,结构合理(15)A程序结构层次分明,提取出各个实体类,类的设计合理;B程序结构层次分明,具有客户类和服务类;C类的设计基本正确;D几乎在一个类或者方法中实现了大部分的逻辑,结构不够清晰;程序的风格(10%)A遵守编码规范,有良好的风格; 以下问题每出现一项成绩降一个等级: 1类、方法和变量命名不符合规范; 2方法和属性前缺少注释; 3程序没有适当缩进;设计说明书(15%)从以下几方面考核: 1结构完整 2图表正确 3文字通顺 4版面工整目 录摘 要I第一章 问题描述1第二章 问题分析22.1 阐述你对问题的理解、解决问题的方案说明22.2 系统功能模块的划分2第三章 数据模型33.1 相关数据结构的说明33.2 类的设计33.3 程序结构说明,即程序各个部分之间如何协调来完成任务33.4 全局变量,重要形式参数、局部变量等等,它们的命名及用途解释3第四章 算法描述44.1 解题算法的设计思路介绍44.2 主要程序代码,加上详细的注释44.3 画出程序流程图4第五章 设计总结5参考文献6 摘要论文主要描述了电影院售票管理系统,具体可分为以下五章:问题描述,问题分析, 数据模型, 算法描述,设计总结。在第一部分主要阐述了关于电影院售票系统的问题描述,包括所包含的录入信息,浏览信息,查询信息,以及售票和退票功能。第二部分主要是对电影院售票系统的设计方法和解决方案以及系统的模块划分等。第三部分是数据模型,叙述系统中数据结构和对类的设计,各功能之间的联系,以及各变量的意义等。第四部分是算法描述,其中需要详细介绍各功能的功能介绍和演示。第五部分描述了本次设计的总结。内蒙古科技大学课程设计说明书第一章 问题描述。用C+设计一个电影院售票管理系统,能够提供以下服务:(1)录入放映信息,格式为: 放映日期放映时间场次电影名称票价会员折扣剩余座位2011-11-210:301桃姐308782011-11-214:002桃姐30886可不定时的增加放映数据。(2) 浏览放映信息,可显示出某日期所有放映信息,如果当前系统时间超过了某电影的放映时间,则显示“此电影放映结束”的提示信息。(3)查询电影:可按日期或电影名查询。 (4)售票和退票功能A:查询电影名。当剩余座位数大于0,并且当前系统时间小于放映时间时才能售票,计算会员折扣,售票后自动更新剩余座位数。B:退票时,输入退票的电影名和场次,当电影未放映时才能退票,如果以会员折扣购买的电影票,退票按照折扣价退款,退票后自动更新剩余座位数。第二章 问题分析。2.1 阐述对问题的理解、解决问题的方案说明用C+设计电影院售票系统需要用到类,为了存储数据,需要用remember,也就是需要定义类Film_remember ,设计公有成员函数copy(参数)和remembershow()函数,然后在类外实现,公有数据成员设计date3_year,date3_mon,date3_day,time3_hour,time3_min,order3,name320,price3,discount3,left_number。在(1)录入信息时,依次输入各数据值,然后同copy函数传值,用for循环来存储每次录入的信息。在(2)中浏览信息时,需要用到时间函数来判断所录入的电影是否存在,以及是否放映,若存在且放映时间小于系统时间则显示此电影放映结束,若大于系统时间则显示出来。在(3)中按日期查找同样需要判断是否所查询的日期有要放映的电影,若存在放映的电影则需要判断是否已经放映,若放映了则显示此电影已放映,否则显示出来。按电影名查询电影时同样需要判断要查询的电影是否存在,若存在则需要判断是否放映结束,若结束则输出结束信息,若还没有放映则显示出来。在(4)设计购票时需要判断当前是否还有剩余座位,以及是否放映了,若剩余座位还有且还没有放映则显示出来。否则输出已经放映的信息。在使用时间函数时,时间函数的年需要加上1900才是当前年数,当使用月时要加上1才是当前月份。而且在判断日期时需要年月日都得判断,依次用if语句嵌套使用。2.2 系统功能模块的划分。主函数条件判断While录入放映信息浏览放映信息查询电影按日期查询按电影名查询购票和退票退出购票退票分析电影院售票管理系统,大致可分为五大模块(包含7个小模块)。第一大模块:录入放映信息。录入信息模块为其他模块的基础,没有录入放映信息就不可能浏览放映信息,不可能按日期和电影名称查询电影,更不能买票和退票了。第二大模块:浏览放映信息。这个模块中需要用到时间函数,判断是否放映时间大于系统时间,若是就输出放映信息,否则输出已经放映结束的提示信息。第三大模块:按日期和电影名查询。1. 按日期查询,需要输入一个日期,若该日期与存储的信息相同则判断系统时间是否大于此日期,若大于则显示提示放映结束的信息,否则输出放映信息供用户查看。2. 按电影名查询,输入一个电影名,首先判断是否存在此电影,若存在继续判断是否系统时间大于放映此电影放映时间,若大于则输出提示放映结束的语句,否则输出放映信息供用户查看。第四大模块:售票和退票。1. 售票。售票时首先查询电影名以及剩余座位数量,若电影不存在以及没有剩余座位就输出提示无法购买的信息。若以上两者都满足则需要判断是否电影已经放映,若已经放映了也不能售票。只有要买的电影票存在、没有放映且剩余座位还有才能售票,售票时判断是否是会员,时会员则按折扣售票,否则按原价售票。2. 退票。退票时需要输入电影名和场次,仍然需要判断两者是否与放映信息匹配,若都满足则还需判断要退票的电影是否已经放映,若已经放映了则无法退票。若可以退票,还需判断是否是会员,若是会员则按会员购买价钱退还,不是会员则按原价退还。第五大模块:退出系统。 当所需的操作结束后,实现用户退出系统功能。第三章 数据模型3.1 相关数据结构的说明定义了一个类Film_rmember,用来存储记录所录入的信息,并设计它为一个类数组方便存取数据。为了使主界面在某一操作完成后立即出现,设计了一个while语句体进行条件判断,内部设计了if条件判断执行相应的录入、浏览、查询、购票、退票操作。3.2 类的设计类Film_rmember设计了公有数据成员和公有成员函数copy(参数),以及显示函数remember_show,把他们设计成类外实现。从主函数录入信息并传值。在浏览、查询、购票、退票时都需要类数组来判断条件,调用类数组所存储的数据。3.3 程序结构说明,程序各个部分之间如何协调来完成任务首先在主函数前定义类Film_rmember,以及成员函数的实现,然后再主函数里定义类数组。当进行录入信息时,用for循环来存储信息,并同过copy函数实现对数值的传递存储。当进行浏览信息时需要时间函数的判断,若系统时间超过放映时间则显示放映已经结束,若系统时间小于放映时间则输出所有信息供浏览。当按日期查询时,同样需要用时间函数判断放映时间是否已经超过系统时间,也需要用for循环依次查找。当按电影名查询时同样需要判断时间,方法同按日期查询差不多。当购票与退票时,同样需要判断显示是否已经放映信息。各部分之间用while语句实现多次循环判断。3.4 全局变量,重要形式参数、局部变量,它们的命名及用途解释全局变量date_year,date_mon,date_day,time_hour,time_min,order,price,numbername等用于输入数值进行传值。Choice则用于选择操作。形参int date2_year,int date2_mon,int date2_day,int time2_hour,int time2_min,int order2,char name220,int price2,int discount2,int left_number2分别表示年、月、日、小时、分钟、场次、电影名,价格,会员折扣,剩余座位数量。局部变量t1,t2,t3等都分别用于for循环。变量命名随结构层次而变化,条理清晰。第四章 算法描述4.1 解题算法的设计思路介绍由于需要判断电影是否放映的条件很多,比如,年,月,日,小时和分钟,而且功能比较全面,所以需要分模块设计。在每一模块中分别详细的判断年月日,以及小时和分钟。4.2 主要程序代码,加上详细的注释/头文件:#include using namespace std; #include #include #include/时间函数,time_t是一个在time.h中定义好的结构体。而tm结构体的原形如下 : struct int tm_sec;/ seconds after the minute - 0,59 int tm_min; / minutes after the hour - 0,59 int tm_hour; / minutes after the hour - 0,59 int tm_mday; /day of the month - 1,31 int tm_mon; /months since January - 0,11 int tm_year; /years since 1900 int tm_wday; /days since Sunday - 0,6 int tm_yday; /days since January 1 - 0,365 int tm_isdst; /daylight savings time flag ;/这是Film_remember类class Film_rememberpublic:intdate3_year;intdate3_mon;intdate3_day;inttime3_hour;inttime3_min;intorder3; charname320; intprice3; intdiscount3; intleft_number3; copy(int date2_year,int date2_mon,int date2_day,int time2_hour,int time2_min,int order2,char name220,int price2,int discount2,int left_number2); /把数值传入记忆函数remembershow();/类外实现copy函数和remembershow函数Film_remember:copy(int date2_year,int date2_mon,int date2_day,int time2_hour,int time2_min,int order2,char name220,int price2,int discount2,int left_number2) date3_year=date2_year;date3_mon=date2_mon;date3_day=date2_day;time3_hour=time2_hour;time3_min=time2_min;order3=order2; strcpy(name3,name2); price3=price2; discount3=discount2; left_number3=left_number2;Film_remember:remembershow() cout放映日期 时间 场次 电影名称 票价 会员折扣 剩余座位数量 endl; coutdate3_year 年date3_mon月date3_day 日 time3_hour:time3_min order3 name3 price3 discount3 left_number3endl; /在主函数中 while(choice=6)/用循环来进行不断操作,直至结束操作 cout*请从以下选择操作*endl; cout* * 1.录入放映信息 *endl; cout* * 2.浏览放映信息 *endl; cout* * 3.按日期查询电影 *endl; cout* * 4.按电影名查询电影 *endl; cout* * 5.售票和退票 *endl; cout* * 6.退出 *endl; cout*endl;显示如下界面: / 录入放映信息if(choice=1) rem+;cout请输入放映日期 时间 场次 电影名称 票价 会员折扣 剩余座位数量 date1_yeardate1_mondate1_daytime1_hourtime1_minorder1name1price1discount1left_number1;rerem.copy(date1_year,date1_mon,date1_day,time1_hour,time1_min,order1,name1,price1,discount1,left_number1);/向类remember传值coutendl; /浏览放映信息:if(choice=2) / 浏览放映信息 for(int t1=1;t1tm_year+1900tm_year+1900=ret1.date3_year)/判断在相同时间年份里月份的大小 if(timenow-tm_mon+1tm_mon+1=ret1.date3_mon)/判断在相同时间月份里天数的大小if(timenow-tm_mdaytm_mday=ret1.date3_day)if(timenow-tm_hourtm_hour=ret1.time3_hour)if(timenow-tm_minret1.time3_min)ret1.remembershow();elsecout电影3, 场次:ret1.order3 放映结束!endl;/若系统时间大于放映时间则显示出放映结束信息elsecout电影3, 场次:ret1.order3 放映结束!endl;elsecout电影3, 场次:ret1.order3 放映结束!endl;elsecout电影3, 场次:ret1.order3 放映结束!endl;elsecout电影3, 场次:ret1.order3 放映结束!endl;coutendl; /按日期查询电影:if(choice=3) /按日期查询电影 int seyear,semon,seday,p=0;cout请输入要查询的日期,年、月、日:seyearsemonseday;for(int t2=1;t2tm_year+1900 = seyear)if(timenow-tm_mon+1 = semon)if(timenow-tm_mday = seday)ret2.remembershow();else if(timenow-tm_mday ret2.date3_day)cout电影3, 场次:ret2.order3 放映结束!tm_mon+1 semon)cout电影3, 场次:ret2.order3 放映结束!tm_year+1900 seyear)cout电影3, 场次:r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论