C++课程设计.docx
- 文档编号:30659757
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:16
- 大小:132.63KB
C++课程设计.docx
《C++课程设计.docx》由会员分享,可在线阅读,更多相关《C++课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
C++课程设计
面向对象程序课程设计
(2013/2014学年第一学期第17周)
指导教师:
庄巧莉、肖荣
班级:
计算机科学与技术3班
学号:
2012329620058
姓名:
胡冰倩
面向对象程序课程设计任务书
一、题目:
电影院自动售票机
有一个小型的电影院,这个电影院只有一个放映厅,厅里有10排座位,每排10个座位。
这个电影院从早上8:
00开始营业,每2小时放映一部电影,营业至次日凌晨2点结束。
这个电影院现在打算使用自动售票机,来让观众自己购票。
现在请你为这个自动售票机编写一个程序,使得这个自动售票机能够正确工作。
二、目的:
1、提高分析问题、解决问题的能力,进一步巩固面向对象程序设计中的基本原理与方法。
2、通过设计一个小型系统,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,使自己的程序设计与调试水平有一个明显的提高。
三、要求
3.1总体要求
1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。
尤其是对编程软件的使用有基本的认识。
2、既要虚心接受老师的指导,又要充分发挥主观能动性。
结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
4、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
3.2实施要求
1、理解各种类设计方法及确切意义。
2、独立进行方案的制定,系统结构设计要合理。
3、在程序开发时,则必须清楚主要实现函数的目的和作用,需要在程序书写时说明做适当的注释。
在写课设报告时,必须要将主要函数的功能和参数做详细的说明。
3.3课程设计报告的内容及要求
在完成课题验收后,学生应在规定的时间内完成课程设计报告一份(不少于2000字),报告的内容和要求如下
课程设计必须使用规定的课程设计实验报告本书写,并且要使用钢笔或用中性水笔,不能使用圆珠笔。
四、工作内容及工作计划:
(一周,分散进行)
序号
内容
所用时间
1
课题介绍、人员安排、熟悉编程环境
1天
2
分析题目,编写程序
3天
3
上机调试程序并写出设计报告
1天
合计
1周
五、成绩评定标准与考核:
本课程设计的评价由三部分组成,包括程序演示(50%),课程设计报告(30%),回答教师提问(20%)。
1、程序演示:
(1)优功能完善,全部测试正确,并且能够对局部进行完善
(2)良功能完善,但测试欠缺
(3)中功能基本完善,但程序尚有部分错误
(4)及格实现了主要功能基本完善,有部分功能尚未实现。
(5)不及格功能不完善,且程序错误较多,无法运行
2、课程设计报告:
(1)优包括设计内容,设计思想,已经完成的任务及达到的目标,
设计思路清晰、书写条理清楚,源程序结构合理、清晰,注
释说明完整,有对本次课程设计的心得体会。
(2)良包括设计内容,设计思想,已经完成的任务及达到的目标,
设计思路基本清晰、书写条理基本清楚,源程序结构合理、
清晰,注释说明基本完整,有对本次课程设计的心得体会。
(3)中课程设计报告内容基本完整,思路较清晰,书写基本清楚,
源程序结构尚可,有注释说明但不完整
(4)及格课程设计报告内容基本完整,思路较差,书写尚清楚。
(5)不及格课程设计报告内容不完整,书写没有条理。
3、回答教师提问:
(1)优能回答教师提出的所有问题,并完全正确,思路清晰
(2)良基本能回答教师提出的所有问题,有些小错误
(3)中基本能回答教师提出的问题,少数问题回答错误或不清楚
(4)及格能回答教师提出的问题,但较多问题回答错误或不能回答
(5)不及格基本不能回答教师提出的问题
面向对象程序课程设计
目录
一、题目
二、需求分析
三、系统结构图
四、类的设计
五、程序代码与说明
六、运行结果与分析
七、心得与体会
1.题目
【题目】
电影院自动售票机
【目的】
通过设计一个小型电影院的自动售票系统,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,使自己的程序设计与调试水平有一个明显的提高。
【要求】
1、每个学生必须独立完成;
2、课程设计时间为1周;
3、设计语言采用C++;
4、学生有事离校必须请假。
课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,未按规定上交实验报告的学生,其成绩按不及格处理。
【内容简介】
有一个小型的电影院,这个电影院只有一个放映厅,厅里有10排座位,每排10个座位。
这个电影院从早上8:
00开始营业,每2小时放映一部电影,营业至次日凌晨2点结束。
这个电影院现在打算使用自动售票机,来让观众自己购票。
现在请你为这个自动售票机编写一个程序,使得这个自动售票机能够正确工作。
二、需求分析
一开始显示的是所有可以预定的场次以及各场次的时间、票价、剩余座位数,选择场次之后会显示该场次的所有座位情况以方便顾客选择座位。
第二排座位价格是第一排的9.8折,第三排是第一排的9.6折,以此类推,每往后一排价格降低2%。
3、系统结构图
4、类的设计
1.电影类
classMovie
{
charData[20];//电影播放日期
charTime[20];//电影播放时间
intNumber;//场次
charMovieName[20];
intRemain;//剩余的票
intBasePrice;//基本票价即第一排票价
boolseat[10][10];
public:
intPrice;
Movie(char*,char*,int,char*,double,int);
voiddisplay();
voidInput();
voidrun(int,int);
};
2.各成员函数的功能
1)
Movie:
:
Movie(char*data,char*time,intnumber,char*moviename,doubleprice,intremain)
{
strcpy(Data,data);
strcpy(Time,time);
Number=number;
strcpy(MovieName,moviename);
BasePrice=price;
Remain=remain;
}
类的构造函数用于初始化对象
2)
voidMovie:
:
display()
{
cout< cout< } 输出电影的日期、时间等信息 3) voidMovie: : Input(){ cout< cout<<"该电影的座位情况如下: "< for(inti=0;i<10;i++){ for(intj=0;j<10;j++) { if(seat[i][j]==1) cout<<"[有人]"; else cout<<"[空位]"; } cout< } cout<<"___________________________________________________________________________"< } 输出每个座位的情况,如果seat[][]=1表示有人 4) voidMovie: : run(inti,intj) { seat[i-1][j-1]=1; Price=BasePrice*(1-0.02*(i-1)); Remain--; } 每运行一次,代表卖出一张票,余票减一,把相应的座位值变为1 5、程序代码与说明 #include #include usingnamespacestd; classMovie { charData[20];//电影播放日期 charTime[20];//电影播放时间 intNumber;//场次 charMovieName[20]; intRemain;//剩余的票 intBasePrice;//基本票价即第一排票价 boolseat[10][10]; public: intPrice; Movie(char*,char*,int,char*,double,int); voiddisplay(); voidInput(); voidrun(int,int); }; Movie: : Movie(char*data,char*time,intnumber,char*moviename,doubleprice,intremain) { strcpy(Data,data); strcpy(Time,time); Number=number; strcpy(MovieName,moviename); BasePrice=price; Remain=remain; } voidMovie: : display() { cout< cout< } voidMovie: : Input(){ cout< cout<<"该电影的座位情况如下: "< for(inti=0;i<10;i++){ for(intj=0;j<10;j++) { if(seat[i][j]==1) cout<<"[有人]"; else cout<<"[空位]"; } cout< } cout<<"___________________________________________________________________________"< } voidMovie: : run(inti,intj) { seat[i-1][j-1]=1; Price=BasePrice*(1-0.02*(i-1)); Remain--; } intmain() { intchoice,i,j; Moviex1("2013-12-21","8: 00-10: 00",1,"画皮",81,100); Moviex2("2013-12-21","10: 00-12: 00",2,"哈利波特与凤凰社",95,100); Moviex3("2013-12-21","12: 00-14: 00",3,"泰囧",72,100); Moviex4("2013-12-21","14: 00-16: 00",4,"四大名捕",77,100); Moviex5("2013-12-21","16: 00-18: 00",5,"让子弹飞",89,100); Moviex6("2013-12-21","18: 00-20: 00",6,"泰坦尼克号",108,100); Moviex7("2013-12-21","20: 00-22: 00",7,"白狐",50,100); Moviex8("2013-12-21","22: 00-0: 00",8,"十二生肖",69,100); Moviex9("2013-12-22","0: 00-2: 00",9,"不二神探",112,100); while (1){ cout<<"所有电影情况如下"< cout< cout< x1.display();x2.display();x3.display();x4.display();x5.display();x6.display(); x7.display();x8.display();x9.display(); cout<<"___________________________________________________________________________"< cout<<"请输入您要看的电影场次: "; cin>>choice; switch(choice){ case1: x1.Input(); cout<<"请输入您要预定的座位(如43,表示在第四排第三列;每往后一排座位价格降低2%): "; cin>>i>>j; x1.run(i,j); cout<<"该座位票价为"< cout<<"*******************************************************************************"< break; case2: x2.Input(); cout<<"请输入您要预定的座位(如43,表示在第四排第三列;每往后一排座位价格降低2%): "; cin>>i>>j; x2.run(i,j); cout<<"该座位票价为"< cout<<"*******************************************************************************"< break; case3: x3.Input(); cout<<"请输入您要预定的座位(如43,表示在第四排第三列;每往后一排座位价格降低2%): "; cin>>i>>j; x3.run(i,j); cout<<"该座位票价为"< cout<<"*******************************************************************************"< break; case4: x4.Input(); cout<<"请输入您要预定的座位(如43,表示在第四排第三列;每往后一排座位价格降低2%): "; cin>>i>>j; x4.run(i,j); cout<<"该座位票价为"< cout<<"*******************************************************************************"< break; case5: x5.Input(); cout<<"请输入您要预定的座位(如43,表示在第四排第三列;每往后一排座位价格降低2%): "; cin>>i>>j; x5.run(i,j); cout<<"该座位票价为"< cout<<"*******************************************************************************"< break; case6: x6.Input(); cout<<"请输入您要预定的座位(如43,表示在第四排第三列;每往后一排座位价格降低2%): "; cin>>i>>j; x6.run(i,j); cout<<"该座位票价为"< cout<<"*******************************************************************************"< break; case7: x7.Input(); cout<<"请输入您要预定的座位(如43,表示在第四排第三列;每往后一排座位价格降低2%): "; cin>>i>>j; x7.run(i,j); cout<<"该座位票价为"< cout<<"*******************************************************************************"< break; case8: x8.Input(); cout<<"请输入您要预定的座位(如43,表示在第四排第三列;每往后一排座位价格降低2%): "; cin>>i>>j; x8.run(i,j); cout<<"该座位票价为"< cout<<"*******************************************************************************"< break; case9: x9.Input(); cout<<"请输入您要预定的座位(如43,表示在第四排第三列;每往后一排座位价格降低2%): "; cin>>i>>j; x9.run(i,j); cout<<"该座位票价为"< cout<<"*******************************************************************************"< break; default: cout<<"输入错误"< } } return0; } 6、运行结果与分析 卖出一张票后,余票变为99,座位情况: 7、心得与体会 一开始设计类的时候只设置了一个Price用于存储电影票价,写后面的程序时,发现每卖出一张票后价格就会变化,所以后来又定义了一个BasePrice来代表基本票价,是不变的,Price代表座位票价,可根据座位的位置改变。 在定义成员函数的时候,一开始定义了voidgetData(),voidgetTime()…等一系列函数用于对私有成员的输出,后来发现这样太麻烦了,于是把它们用voiddisplay()一次性输出。 在写好之后,我尝试着在程序中用上文件,但是实在是能力有限,搞了好久,还是没搞出来,一用上文件就一大堆的错误。 所以我这程序实在是没有什么技术含量,就是一些简单的处理,但还是花了好长时间才搞好,以后还是得多加练习,编程之道,贵在坚持。 考核成绩评定表 平时成绩 答辩成绩 总成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计