ImageVerifierCode 换一换
格式:DOCX , 页数:56 ,大小:568.94KB ,
资源ID:8951533      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8951533.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++课程设计报告电影院自动售票机.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++课程设计报告电影院自动售票机.docx

1、c+课程设计报告电影院自动售票机面向对象程序课程设计(2012/2013学年第一学期第20周)指导教师:* *浙江理工大学 班级:计算机科学与技术(1)班 学号:* 姓名:* 面向对象程序课程设计任务书【题目】电影院自动售票机【目的】通过设计一个小型电影院的自动售票系统,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,使自己的程序设计与调试水平有一个明显的提高。【要求】1、每个学生必须独立完成;2、课程设计时间为1周;3、设计语言采用C+;4、学生有事离校必须请假。课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,未按规定上交实验报告的学生,其成绩按不及格处理。【

2、内容简介】 有一个小型的电影院,这个电影院只有一个放映厅,厅里有10排座位,每排10个座位。这个电影院从早上8:00开始营业,每2小时放映一部电影,营业至次日凌晨2点结束。这个电影院现在打算使用自动售票机,来让观众自己购票。现在请你为这个自动售票机编写一个程序,使得这个自动售票机能够正确工作。【考核标准】1、能够正确出售某一场次,某一座位的票,成绩60;2、能够统计每一场次的出票情况,成绩70;3、能够统计每一天每一场次的出票情况,成绩80;4、能够考虑不同场次的票价,不同座位的票价,界面设计友好,成绩90。请仔细考虑这个题目中出现的各个实体,考虑如何保存数据。【工作内容及工作计划】时间地点工

3、作内容指导教师1月 21日上午10-306任务布置,需求分析 庄巧莉、杨东鹤下午10-306系统功能划分庄巧莉、杨东鹤1月22日上午10-306类的整体设计庄巧莉、杨东鹤下午10-306类的详细设计庄巧莉、杨东鹤1月23日上午10-306编写代码庄巧莉、杨东鹤下午10-306编写代码庄巧莉、杨东鹤1月24日上午10-306程序测试庄巧莉、杨东鹤下午10-306程序测试庄巧莉、杨东鹤1月25日上午10-306上机检查、答辩庄巧莉、杨东鹤下午10-306上机检查、答辩庄巧莉、杨东鹤面向对象程序课程设计一、题目二、需求分析三、系统结构图四、类的设计五、程序代码与说明六、运行结果与分析七、心得与体会一

4、、题目【题目】电影院自动售票机【目的】通过设计一个小型电影院的自动售票系统,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,使自己的程序设计与调试水平有一个明显的提高。【要求】1、每个学生必须独立完成;2、课程设计时间为1周;3、设计语言采用C+;4、学生有事离校必须请假。课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,未按规定上交实验报告的学生,其成绩按不及格处理。【内容简介】 有一个小型的电影院,这个电影院只有一个放映厅,厅里有10排座位,每排10个座位。这个电影院从早上8:00开始营业,每2小时放映一部电影,营业至次日凌晨2点结束。这个电影院现在打算使用自

5、动售票机,来让观众自己购票。现在请你为这个自动售票机编写一个程序,使得这个自动售票机能够正确工作。二、需求分析电影院自动售票机用户使用时,必须先登录或者注册,不同的用户登录后进入不同功能界面,管理员账户系统默认“CFY”,密码:“1101”,顾客账户,由顾客自己注册,然后每个顾客会有一个以账户名为文件名的txt文本,文本中第一行存账户密码,接下来,存的是用户的订票信息。管理员账户则不用建立相应的文本,只有有一个MovieInfo.txt用来存储影片信息即可。电影院自动售票机主要功能可分为两个板块:1、管理员板块 2、售票板块。管理员板块拥有最高权限,可对电影的信息进行修改,比如:录入(inpu

6、t)、显示(show)、查找(search)、修改(change)、删除(del);而售票系统则只进行售票(book)和退票(refund)。顾客板块拥有最小权限,只能对影片的预定(book)和退订(refund)两项功能。三、系统结构图系统的结构图如下:管理员账户无法注册,系统默认账户名:CFY,密码:1101。顾客无论是注册还是登录成功,都会自动转入售票模块,然后由用户进行相应的选择。管理员登录成功后,系统会自动进入管理板块,在进入管理板块时,先通过read()把MovieInfo.txt中的数据读入管理员类中自定义的vector中,然后管理员可实现对影片的诸多操作,录入功能:根据影讯录入

7、新的电影信息。显示功能:将电影的播放时间与系统时间比较,以判断电影是否已经播放或正在播放。查找功能:有按电影名称查询和按播放时间查询两种查询方式。修改功能:可对影片的每个属性进行修改。删除功能:通入输入要删除的影片名,通过vector自身的删除函数erase()。管理员退出后,系统调用save()函数,把vector中的数据写入文件MovieInfo.txt,MovieInfo.txt的打开方式为清空。顾客登录或注册成功后,系统自动进入售票板块,顾客可进行订票与退票两项操作。订票功能:系统先分别冲MovieInfo.txt中和用户文本中读入相应的数据到customer的vector容器P中和U

8、ser的vector容器Q中,然后通过预定,得到相应的订票信息。结束订票时,把两个容器中的数据更新到两个文本中,并清空容器中的数据。退票功能:同样需要先从文本中读入信息,然后通过P Q两容器中的数据,先将Q容器中的信息输出到屏幕,可直观得到已定的票的情况,然后根据P Q两容器中的数据信息,对所要退的票进行判断,判断能否退票。最后同样更新文件中的数据,清空P Q容器中的数据。四、类的设计首先设计一个电影信息Ticket类作为基类:class Ticketprotected: char MovieName20; double price; double discount; int num; int

9、 year; int month; int day; int hour; int minute; int rest; bool map1010;基类Ticket包含了影片的所有基本信息,以便被管理员Manager类和顾客Custom类继承。用户信息User类:class User char name20; int year; int month; int day; int hour; int minute; int n; int Seat1010;User类中包含了用户订票的信息,方便在Custom类中建立相应的数据容器。管理员Manager类:class Manager :public Ti

10、cket vector P; vector: iterator pos; static string UserName; static string Password;public: void input(); void show(); void search(); void change(); void del(); void read(); void save(); string getUserName()return UserName; string getPassword()return Password; bool cmp(Ticket a,Ticket b);管理员Manager类

11、由Ticket类派生,主要包含一个Ticket容器和对基类Ticket数据处理的功能函数。顾客Custom类:class Customer :public Ticket vector P; vector Q; vector: iterator pos; vector: iterator pos1;public: void book(char IDName); void refund(char IDName);顾客Custom类 同样继承于Ticket,类中主要包含一个Ticket的vector容器P及其迭代器pos和User的vector容器Q已经迭代器pos1;和两个带参功能函数book(c

12、har )和defund(char );界面Interface类:class Interfacepublic: void display(); void IntroduceFace(); void ManagerFace(); void CustomerFace();界面Interface类中的四个函数分别显示不同的界面,display()为登录界面,IntroduceFace();为欢迎界面,ManagerFace();为管理员功能界面,CustomerFace();顾客功能界面。菜单Menu类:class Menupublic: void manager(Interface cfy); v

13、oid customer(Interface cfy,char IDName );此类设计,是为了主函数显示简单明了,类中两成员函数 manager(Interface cfy);customer(Interface cfy,char IDName );分别显示管理与售票的功能,接收功能选择。账户操作UserInfo类:class UserInfo char IDName30; char password7;public: UserInfo(); void Login(); void Register();此类实现对账户的注册与登录。其实管理员只能登录,无法注册!五、程序代码与说明一、功能函数

14、:1、注册/注册void UserInfo:Register() char id30; while(1) cout请输入您要注册的用户名:n; gets(IDName); cout请输入您要注册的密码(6位):n; gets(password); if(strcmp(IDName,CFY)=0) /保证不能注册管理员账户 coutCFY为管理员账户,您不能注册!请重新注册endl; continue; strcpy(id,IDName); strcat(IDName,.txt); ifstream iFile(IDName,ios:in); if(!iFile) ofstream oFile(

15、IDName,ios:out|ios:app); oFile.write(char *) &password,sizeof(password); oFile.close(); coutid注册成功,系统即将为您转入购票系统endlendl; for(int i=1;i=3;i+) couti秒endl; Sleep(1000); system(cls); Menu com; Interface cfy; com.customer(cfy,IDName); break; else cout对不起,您注册的账户名已存在,请重新输入一个新的账户名endl; iFile.close(); 2、登录/登

16、录void UserInfo:Login() char pw7; char id30; Menu com; Interface cfy; cout请输入用户名:n; gets(IDName); cout请输入密码:n; gets(password); strcpy(id,IDName); strcat(IDName,.txt); ifstream iFile(IDName,ios:in); if(!iFile) if(strcmp(IDName,CFY.txt)=0&strcmp(password,1101)=0) cout欢迎管理员CFY,正在为您转入管理员系统,请稍后endl; for(i

17、nt i=1;i=3;i+) couti秒endl; Sleep(1000); com.manager(cfy); else coutid 用户不存在!endl 请重输入正确用户信息或进行注册nnn摁回车键继续endl; getchar(); system(cls); cfy.display(); else iFile.read(char *) &pw,sizeof(pw); if(strcmp(pw,password)=0) cout欢迎顾客id,正在为您转入订票系统,请稍后endl; for(int i=1;i=3;i+) couti秒endl; Sleep(1000); com.cust

18、omer(cfy,IDName); else cout用户名或密码错误,请重新登录!endl 请重新登录或退出注册nnn摁回车键继续choice2; do switch(choice2) case 1: boss.input(); break; case 2: boss.show(); break; case 3: boss.search(); break; case 4: boss.change(); break; case 5: boss.del(); break; case 6: default: boss.save(); system(pause); system(cls); cfy.

19、display(); return; getchar(); getchar(); system(cls); cfy.ManagerFace(); cinchoice2; while(1); 4、管理员从文件中读取/读取void Manager:read() ifstream iFile(MovieInfo.txt,ios:in); /*if(!iFile) cout原库中不存在电影,请管理员添加endl;*/ Ticket s; iFile.read(char *)&s,sizeof(Ticket); while(!iFile.eof() P.push_back(s); iFile.read(

20、char *)&s,sizeof(Ticket); iFile.close();5、管理员录入/录入void Manager:input() system(cls); coutnnntttt录入模块nnnendl; Ticket Movie; char ch; while(1) int date5,n; char na20; double y1,y2; coutdate0chdate1chdate2; Movie.setYear(date0); Movie.setMonth(date1); Movie.setDay(date2); coutdate3chdate4; Movie.setHour

21、(date3); Movie.setMinute(date4); coutn; Movie.setNum(n); coutna; Movie.setMovieName(na); couty1; Movie.setPrice(y1); couty2; Movie.setDiscount(y2); /Movie.setMap(); /Movie.setRest(100); P.push_back(Movie); coutch; if(ch=y) continue; if(ch=n) break; 6、管理员显示/显示int Ticket:timecmp(int a,int b,int n) int

22、 i; for(i=0;ibi) return 1; if(aibi) return -1; if(i=n) return 0;void Manager:show() system(cls); coutnnntttt显示模块nnnendl; cout 所有电影信息如下:endl; cout_endl; cout日-期t时-间t场次t电影名称t票价t折扣t余票endltm_year+1900,tim-tm_mon+1,tim-tm_mday,tim-tm_hour,tim-tm_min; pos=P.begin(); for(pos=P.begin();pos!=P.end();pos+) in

23、t datatime5; datatime0=pos-getYear(); datatime1=pos-getMonth(); datatime2=pos-getDay(); datatime3=pos-getHour(); datatime4=pos-getMinute(); int r=timecmp(datatime,array,5); coutgetYear()-getMonth()-getDay()t; coutgetHour():getMinute()t; coutgetNum()tgetMovieName()tt; coutgetPrice()tgetDiscount()tgetRest(); if(r=0) couta(已播放!) endl; else coutendl; 7、管理员查找/查找void Manager:search() system(cls); coutnnntttt查找板块nnntm_year+1900,tim-tm_mon+1,tim-tm_mday,tim-tm_hour,tim-tm_min; int choice; int ok=0; do coutendltttt1.按影片名查找; coutendltttt2.按日期查找; coutendl

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1