- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++程序设计A2
课程设计报告
课程名称 C++程序设计 A2
课题名称 飞机大战
专 业 计算机科学与技术
班 级 1820544
学 号 182054424
姓 名 王锐
指导教师 韩燕丽
2019 年 6 月 15 日
一)、课程设计题目:
飞机大战
二)、目的与要求:
1、目的:
(1)要求学生达到熟练掌握 C++语言的基本知识和技能;
( 2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、 基本要求:
(1) 要求利用面向对象的方法 以及C++的编程思路来完成系统的设计。
(2) 在系统的设计中,要求运用面向对象的机制( 继承及多态性 ),来实现系统功 能,并且要建立清晰的类层次结构。
(3) 在系统设计中要分析和定义各个类,每个类中要有各自的数据成员和成员数。
(4) 主函数中提供 菜单选项 ,并给出足够的选择信息以及提示信息。
(5) 程序具有一定的 健壮性 ,不会因为用户的输入错误引起程序运行错误而中断 执行。对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法 的输入值给出出错信息,指出错误类型,等待重新输入。
3、 创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
三)、设计方法和基本原理:
功能要求:
设计一个基于控制台的简洁流畅的飞机大战游戏。
问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1) 应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2) 分析系统中的各个实体及它们之间的关系包括属性和行为;
(3) 根据问题描述,设计系统的类层次;
(4) 完成类层次中各个类的描述(包括属性和方法) ;
(5) 完成类中各个成员函数的定义;
(6) 完成系统的应用模块;
( 7)功能调试;
(8)完成系统总结报告以及系统使用说明书
目录
系统需求分析 1
总体设计 2
详细设计及实现 5...
系统调试 5
结论 错...误! 未定义书签。
心得体会 错... 误! 未定义书签。
参考书目 4..5..
系统需求分析
1.1 系统设计的目的与意义:
飞机大战游戏作为 PC 中一款桌面游戏,界面简洁流畅、游戏方式简单玩起来容 易上手。面向休闲游戏的玩家,例如:家庭、办公人员等,使用人群广泛。
1.2 系统功能需求:
1) 通过键盘,方向键 WASD键可控制战机的位置,空格键发射子弹,
2) 界面中敌机出现的位置是随机的。
3) 对于随机产生的敌机及子弹,若超出界面,则释放该对象。
4) 战机、敌机、子弹都有生命值,敌机和玩家碰撞、敌机和玩家的子弹碰撞、敌
机的子弹和玩家碰撞、敌机的子弹和玩家的子弹碰撞均需考虑。敌机的生命值为 0,则
删除敌机或BOSS战机生命值为0,游戏结束。
5) 战机子弹:战机有两种子弹可自由选择。
6) 结束功能:游戏中按下 2 会结束游戏,再次按下 Y/N 可继续或者退出游戏。
总体设计
2.1系统功能分析:
系统通过调用类函数来实现游戏的运行,通过面向对象类的继承、多态等思想在使 程序简洁的同时保证游戏的正常运行。
2.2系统功能模块划分与设计:
系统定义了 Bullet() 、Plane()两个基类,通过继承得到Bullet_1() 、Bullet_2() Bullet_3() 、Bullet_3() 、Bullet()_4 、Player()等类。Map 类用于地图的绘制,Bullet 类用于子弹的实现,Plane类是飞机的实现,在通过 Plane类的继承,编写敌机和战 机类。
2.3系统功能模块图:
飞机大战
2.4类的设计
(1)Bullet类(抽象类)的设计
Bullct
bool isOut;
bool isDead;
int atk;
int m_hp_b;
Note* noo; vectorNote** m_bull;
virtual void draw_on_map(Map* p) = 0; virtual void clear(Map* m) = 0;
virtual void init(int x, int y) = 0;
virtual void upDate(Map* m) = 0;
virtual void overstep(Map* m) = 0;
(2) Plane类的设计:
(3) Map类的设计:
P1 ane
bool isOut; bool isDead; int atk; int m_hp; char directi on;
Note* noo; vectorNote** m_data;
virtual void draw_ on _map(Map* p)
文档评论(0)