大科树电影院订票系统(共32页)_第1页
大科树电影院订票系统(共32页)_第2页
大科树电影院订票系统(共32页)_第3页
大科树电影院订票系统(共32页)_第4页
大科树电影院订票系统(共32页)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、大 连 科 技 学 院面向对象程序设计(chn x sh j)课程设计题 目 大科树电影(dinyng)院售票系统(xtng) 学生姓名 123 专业班级 软件()12-2 指导教师 236 职 称 讲师 所在单位 软件工程教研室 教学部主任 213 完成日期 2015年1月9日课程设计报告单学号9999姓名123专业班级软件12-2考 核 项 目评分备注1平时工作态度及遵守纪律情况(10分)2掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平(10分)3独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度(20分)4完成课程设计说明书及软件的情况与水平(小组分工情

2、况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)(60分)总评成绩综 合 评 定:(优、良、中、及格、不及格) 指导教师签字:2015年1月9日面向对象程序设计(chn x sh j)课程设计任务书一、课程设计任务(rn wu)及要求:任务:针对小型信息管理系统(xtng)或若干综合性设计题目,选择一种软件开发模型,完成从需求分析、系统设计、系统实现,软件测试的全过程。要求:(1)根据软件系统开发的一般原则,完成相应系统的功能设计,完成主要功能模块的程序实现并进行测试训练,给出代码运行结果和相应的设计文档。可以分组进行,但所有学生必须经历整个系统的开发全过程,以便

3、加深对系统开发全过程的认识。(2)提交课程设计报告。(3)指标: 要求完成课程设计报告3000字以上(yshng)(约二十页);完成所设计的题目,设计题目的语句行数的和在200行语句以上。二、工作量2周(10个工作日)时间(shjin)三、计划(jhu)安排第1个工作日第2个工作日:查找相关资料、书籍,阅读示例文档;设计程序结构、模块图、完成类的设计。第3个工作日第7个工作日:完成程序的编码,并且自己调试、测试。穿插进行项目文档的撰写。第8个工作日第9个工作日:撰写和整理项目文档。第10个工作日:由教师检查软件测试效果、项目文档,给出学生本课程成绩。指导教师签字:2014年12月29日 目录

4、TOC o 1-2 h z u HYPERLINK l _Toc407088258 题目: PAGEREF _Toc407088258 h 1 HYPERLINK l _Toc407088259 1.需求分析 PAGEREF _Toc407088259 h 1 HYPERLINK l _Toc407088260 2.概要设计2 HYPERLINK l _Toc407088261 3.详细设计4 HYPERLINK l _Toc407088262 4.编码8 HYPERLINK l _Toc407088263 5.调试(dio sh)分析11 HYPERLINK l _Toc407088264

5、6.测试(csh)结果及运行效果12 HYPERLINK l _Toc407088265 7.系统开发所用(su yn)到的技术15 HYPERLINK l _Toc407088266 8.课程设计总结16 HYPERLINK l _Toc407088267 参考文献17 HYPERLINK l _Toc407088268 附录 全部代码18 需求(xqi)分析针对学校新建大科树休闲(xixin)基地,特此为学校全体师生设计一个“大科树电影院售票系统(xtng)”为服务全体师生。为服务学生老师购买票方便快捷,以便全体师生老师能够享受到学校大科树给我们带来的休闲愉快快感。希望这个系统也能促进全校

6、各个体系的发展。电影院售票管理系统两个模块管理系统和售票系统。1.管理系统具有如下功能:(1)录入信息:且可不定时增加数据。并根据放映时间排序。(2)浏览信息:可显示出某日期所有放映信息,如果当前系统时间超过了某电影的放映时间,则显示“此电影放映结束”的提示信息。(3)查询电影:可按日期或电影名查询。并显示目标的详细信息。 (4)修改信息:可根据电影名修改该电影的各种信息(余票除外)并简单排序。(5)删除电影:根据电影名找到该电影并删除。2.售票系统功能如下:(1)售票:售票即为影片预定。可根据输出的可预订信息选择订票,如果该影片已放映,则提示不能订票,如果售票成功,自动跟新座位数。(2)退票

7、:影片退订即退票。根据放映时间和系统时间来判断是否能进行退票,并自动更新座位数。概要设计由设计题目知电影院售票管理系统主要可分为两个大模块:1.管理系统2.售票系统。对整个系统进行功能分析不难发现,管理系统和售票系统的权限是不一样的,管理系统具有管理员权限,可以对所有数据的信息进行操作,比如:录入(input)、显示(show)、查找(search)、修改(change)、删除(del);而售票系统则只进行售票(sell)和退票(refund)。所以需要设计一个manager和customer函数来区分权限的函数。所以,manager里包含了需要实现的input、show、search、cha

8、nge、del等函数来满足管理要求的功能。Customer包含sell和refund。系统的模块(m kui)图如下:欢迎界面主函数(hnsh)售票customer管理manager删除退票售票显示输入查找修改图2-1系统(xtng)模块图管理函数进入时需要管理密码:1234运行程序时,需要先输入数据,根据需要在对数据进行简单操作。录入时,每录入一个信息就会对现有信息进行插入排序。显示数据时,会先跟系统时间比较,如果小于系统当前时间,则输出提示“已播放”。查找时满足要求的按名字查找和按日期查找。找到之后与系统时间比较输出提示,如果没找到,输出提示。修改函数支持多种修改,可以避免输入的一些错误。

9、也可以修改日期,以调整放映时间。删除函数是为防止输入错误,或是内存不够用而设计的。比如前几天已播放的,在内存中如果作用不是很大,完全是可以删除的。这样能跟有效利用资源。售票系统设计较为简单,主要是订票和退票。订票函数中会先给出可预订的提示,这样可以更有效订票。输入之后会先检查是否播放,若播放则给出提示,退出。若未找到,则同样给出提示。如果票卖光了,仍然有提示,如果电影达到预定要求,则先给出现有座位的预订情况,方便用户高效率订票。当客户输入一座位时程序会判断这个作为是否被预订,如果是,则给出提示;如果no就输出用户需要支付的金额,并记录在座位号对应的数组中。方便退票时退款。订票成功后还会输出现有

10、座位的信息方便核实。其中订票和退票函数都是用大篇幅(一两百行)来构建起强大而有完善的提示(tsh)功能,趋于人性化的设计跟拉近了与客户的距离。详细(xingx)设计1.系统(xtng)各个模块流程图程序中函数的流程图:main()终止Choice=2Choice=1Choice=othercustomermanager输入choice开始图3-1 主函数功能流程图break退出5删除6其他4修改3查找2显示选择功能1录入YN密码正确输入管理密码开始2.manager()图3-2 函数设计(shj)功能流程图开始输出提示3.search()退出输出详细信息提示,返回NY遍历找到输入日期输入电影名

11、flag=2flag=1flag=other输入flag图3-3 查找(ch zho)功能流程图开始输入电影名4.del()NY退出删除(后项向前覆盖)遍历找到图3-4删除(shnch)功能流程图5.customer()订票退票退出as=otheras=2as=1输入as开始图3-5订票系统(xtng)功能流程图编码(bin m)查找电影获名获取记录(jl)的代码:string na;int j=1;coutna;for(i=0;itick.len;i+)if(=na)/找到 k+;/找到的记录数 if(j=1) coutn 查找结果如下:endl; cout_en

12、dl; cout日期t时-间t场次t电影名称t票价t折扣t余票endlendl; coutnatttt没有找到您要预定的电影!100|seatnum1) m=(seatnum-1)/10; n=(seatnum-1)%10; if(tick.tici.seatmn=0&tick.tici.rest!=0) coutendla; if(a!=N&a!=n) tick.tici.seatmn=tick.tici.price*tick.tici.discount/10; else tick.tici.seatmn=tick.tici.price; tick.tici.rest-; coutendlt

13、ttt您需要(xyo)支付:tick.tici.seatmn元。endl; coutendltttt您的座位号是:seatnumendl; coutendltttt预订(ydng)成功!;i+NYY初始化部分数据Len+;是否继续Sort(i);Ni!=0输入日期和时间,场次电影名等YN退出Len输入密码图6-2输入密码界面录入选择1录入图6-3录入电影信息(xnx)界面选择(xunz)2显示信息图6-4显示信息界面(jimin)选3查找图6-5查找信息界面退出选3删除图6-6删除(shnch)信息界面选4退出(tuch)图6-7退出(tuch)界面七系统开发所用到的技术Visual C+6.

14、0由Microsoft开发, 它不仅是一个C+ HYPERLINK /doc/6133192.html t _blank 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括 HYPERLINK /doc/6781941.html t _blank 编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。 HYPERLINK /doc/21307

15、45.html t _blank Microsoft的主力软件产品。Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,VisualC+6.0已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C+.NET(Visual C+7.0),但它的应用有很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。Visual C+6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它

16、允许(ynx)用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著C+是由C语言发展起来的,也支持C语言的编译。6.0版本是使用最多的版本,很经典。最大的缺点是对于(duy)模版的支持比较差。现在最新补丁为SP6,推荐安装,否则易出现编译时假死状态。仅支持Windows操作 HYPERLINK /doc/5402991.html t _blank 系统(xtng)。目前发现与window

17、s 7兼容性不好,安装成功后可能会出现无法打开cpp文件的现象。八课程设计总结这次课程设计中我感觉设计的比较满意的是订票和退票函数(hnsh),根据提示信息就可以轻松完成订票和退票。对于这次程序设计(chn x sh j)我学习了很多知识,我遇到的最大的困难就是编写代码,由于知识不够熟练,所以编写出的代码仅能有一小段,所以借助了互联网以及各种编程书籍,才得以是的代码完整的被录入进去。接着就做软件设计流程图以及功能图,用上课老师讲解的方法做出图形,最后要了解大科树电影院的需求,来选择合适的方法进行编写调试。如果想做一分优秀的报告就需要很多知识的运用,通过这次我知道学习知识需要实践,很多问题需要实

18、践才会发现其中的问题,也能更加理解所学习的内容。而且,最重要的是你不仅(bjn)只会一门就能解决所有的问题,你必须要把各门知识相结合才能把你的东西做的更好。还有就是整个程序的设计思想,大型一点的程序设计,如果从上向下考虑功能的实现会节约很多时间,这也是比较合理的设计方法。以上是我的总结。九参考文献1耿祥义java实用教材(第四版)清华大学出版社,2013年6月2张海藩软件工程导论(第五版)清华大学出版社,2008年2月3陈明晰语言程序设计中国铁道出版社,2009年6月4谭浩强面向对象程序设计清华大学出版社,2010年5月1日5谭庆平数据库系统设计清华大学出版社,2005年2月附录(fl)#in

19、clude#include#include#include#define N 50/可存电影(dinyng)总数 using namespace std;struct nodeint year;int month;int day;int hour;int minute;int datetime5;/装时间(shjin) ,方便比较 int num;string name;float price;float discount;int rest;float seat1010;/class ticketprivate:node ticN;int len;public:ticket();ticket(

20、);int sort(int i);void input();void show();void search();void change();void del();void sell();void refund();tick;/ticket:ticket();ticket:ticket();/int r,n,j;for(j=0;ji;j+)/从首元素开始比较(bjio)日期 r=timecmp(tick.tici.datetime,tick.ticj.datetime,5);if(r=-1)/找到第一个比他大的日期(rq) ,插入其前面 break;if(j=tick.len-1)return

21、 j;if(j=i)for(j=i+1;jtick.len;j+)/从首元素开始比较(bjio)日期 r=timecmp(tick.tici.datetime,tick.ticj.datetime,5); if(r=-1)/找到第一个比他大的日期 ,插入(ch r)其前面 break;node temp=tick.tici;if(jj;n-) tick.ticn=tick.ticn-1; tick.ticj=temp; return j;elseif(j=tick.len)for(n=i;nj-1;n+) tick.ticn=tick.ticn+1;else for(n=i;nj;n+) ti

22、ck.ticn=tick.ticn+1;tick.ticn=temp;return n;/void ticket:input()/录入(l r)信息 system(cls);/清屏 char ch;/接受日期(rq)中的字符或: coutnnntttt录入(l r)模块nnnendl; for(int i=tick.len;iN;i+) couttick.tici.yearchtick.tici.monthchtick.tici.day; couttick.tici.hour;cinch;cintick.tici.minute; tick.tici.datetime0=tick.tici.ye

23、ar; tick.tici.datetime1=tick.tici.month; tick.tici.datetime2=tick.tici.day;tick.tici.datetime3=tick.tici.hour;tick.tici.datetime4=tick.tici.minute; couttick.tici.num; ; couttick.tici.price; couttick.tici.discount; tick.tici.rest=100; for(int m=0;m10;m+) for(int n=0;n10;n+)tick.tici

24、.seatmn=0; tick.len+;/个数加1 if(i!=0)/按时间(shjin),插入排序 int j=sort(i); coutendl; coutch; if(ch=y | ch=Y | ch=n | ch=N) break; else cout输入(shr)错误请重新输入:; if(ch=n | ch=N) break; /void ticket:show()system(cls);/清屏coutnnntttt显示模块nnnendl;cout 所有电影信息如下:endl;cout_endl;cout日期t时-间t场次t电影名称t票价t折扣t余票endltm_year+1900

25、,tim-tm_mon+1,tim-tm_mday,tim-tm_hour,tim-tm_min; int r; for(int i=0;itick.len;i+) r=timecmp(tick.tici.datetime,array,5); couttick.tici.year-tick.tici.month-tick.tici.dayt; couttick.tici.hour:tick.tici.minutet; tt; couttick.tici.pricettick.tici.discountttick.tici.rest

26、; if(r=0) couta(已播放(b fn)!) endl; else coutendl; /void ticket:search()char flag;int i;int k=0;/标记(bioj)找到的记录 system(cls);/清屏 coutnnntttt查找(ch zho)模块nnnendl; do coutendltttt1.按影片名查找; coutendltttt2.按日期查找; coutendlflag; if(flag!=1&flag!=2) coutnatttt选择有误!请选择正确的查找模式。endl; while(flag!=1&flag!=2);if(flag=

27、1) string na;int j=1;coutna;for(i=0;itick.len;i+)if(=na)/找到 k+;/找到的记录(jl)数 if(j=1) coutn 查找(ch zho)结果如下:endl; cout_endl; cout日期t时-间t场次t电影名称(mngchng)t票价t折扣t余票endlendl; j+; couttick.tici.year-tick.tici.month-tick.tici.dayt; couttick.tici.hour:tick.tici.minutet; couttick.tici.numttick.tic

28、tt; couttick.tici.pricettick.tici.discountttm_year+1900,tim-tm_mon+1,tim-tm_mday,tim-tm_hour,tim-tm_min; int r; r=timecmp(tick.tici.datetime,array,5);/与系统时间比较 if(r=0) couta(已播放!) endl; else coutendl; coutendltttt当前预订情况; char ch;int temp3; couttemp0chtemp1chtemp2;int j=1;for(i=0;itick.len;i+)/遍

29、历 if(timecmp(tick.tici.datetime,temp,3)=0)/找到 k+;/找到的记录(jl)数 if(j=1) coutn 查找(ch zho)结果如下:endl; cout_endl; cout日期t时-间t场次t电影名称t票价(pio ji)t折扣t余票endlendl; j+; couttick.tici.year-tick.tici.month-tick.tici.dayt; couttick.tici.hour:tick.tici.minutet; tt; couttick.tici.price

30、ttick.tici.discountttm_year+1900,tim-tm_mon+1,tim-tm_mday,tim-tm_hour,tim-tm_min; int s; s=timecmp(tick.tici.datetime,array,5);/与系统时间比较 if(s=0) couta(已播放!) endl; else coutendl; coutendltttt当前预订情况; for(int m=0;m10;m+) coutendlt; for(int n=0;n10;n+) cout; void ticket:change()system(cls);/清屏 coutnnnttt

31、t修改(xigi)模块nnnendl; string na; int i;int j=0;/标记(bioj)修改数量 coutna;for(i=0;itick.len;i+)if(=na)/找到 j+;char a;do coutendltttt1.修改放映日期(2011-11-11); coutendltttt2.修改放映时间(12:30); coutendltttt3.修改放映场次; coutendltttt4.修改影片名称; coutendltttt5.修改影片票价; coutendltttt6.修改会员折扣; coutendlendlendl; couten

32、dlflag; char ch; switch(flag) case 1:couttick.tici.yearchtick.tici.monthchtick.tici.day;tick.tici.datetime0=tick.tici.year; tick.tici.datetime1=tick.tici.month; tick.tici.datetime2=tick.tici.day;i=sort(i);break; case 2:couttick.tici.hourchtick.tici.minute;tick.tici.datetime3=tick.tici.hour; tick.tic

33、i.datetime4=tick.tici.minute;i=sort(i);break; case 3:couttick.tici.num;break; case 4:;break; case 5:couttick.tici.price;break; case 6:couttick.tici.discount;break; default:break; coutendla; while(a!=N&a!=n); cout 当前电影信息如下:endl; cout_endl; cout日期t时-间t场次t电影名称t票价t折扣t余票endlendl; time_t

34、 t; void ticket:del()system(cls);/清屏 coutnnntttt删除模块nnnendl; string na; int i;int j=0;/标记删除的数量 coutna;for(i=0;itick.len;i+)if(=na)/找到j+;for(int j=i+1;jtick.len;j+)tick.ticj-1=tick.ticj;coutendltttt删除成功!n;tick.len-; if(i=tick.len&j=0) coutnatttt未找到结果,删除失败!nendl;system(pause);/任意键继续 retu

35、rn;/ void ticket:sell()system(cls);/清屏 coutnnntttt售票模块(m kui)nnnendl; cout 可预订的电影信息(xnx)如下:endl; cout_endl; cout日期t时-间t场次(chngc)t电影名称t票价t折扣t余票endlendl; time_t t;string na;coutendlna; k=0;/再次做标记for(i=0;itick.len;i+) if(=na)/找到 k+;/找到的记录数 int j=1; if(j=1) coutn 查找结果如下:endl; cout_endl; cout日期t时-间t场次t电影名称t票价t折扣t余票endlendl;

温馨提示

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

评论

0/150

提交评论