C++课程设计报告【飞机大战】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++程序设计A2

课程设计报告

课程名称C++程序设计A2

课题名称飞机大战

专业计算机科学与技术

班级1820544 ___

学号********* _____

姓名王锐____ _

指导教师韩燕丽__

2019年6 月15 日

(一)、课程设计题目:

飞机大战

(二)、目的与要求:

1、目的:

(1)要求学生达到熟练掌握C++语言的基本知识和技能;

(2)基本掌握面向对象程序设计的基本思路和方法;

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求:

(1)要求利用面向对象的方法以及C++的编程思路来完成系统的设计。

(2)在系统的设计中,要求运用面向对象的机制(继承及多态性),来实现系统功能,并且要建立清晰的类层次结构。

(3)在系统设计中要分析和定义各个类,每个类中要有各自的数据成员和成员数。

(4)主函数中提供菜单选项,并给出足够的选择信息以及提示信息。

(5)程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入。

3、创新要求:

在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。(三)、设计方法和基本原理:

功能要求:

设计一个基于控制台的简洁流畅的飞机大战游戏。

问题的解决方案:

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系包括属性和行为;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述(包括属性和方法);

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

目录

1.系统需求分析 (1)

2.总体设计 (2)

3.详细设计及实现 (5)

4.系统调试 (5)

5.结论 ............................................................................................... 错误!未定义书签。

6.心得体会 ....................................................................................... 错误!未定义书签。

7.参考书目 (45)

1.系统需求分析

1.1系统设计的目的与意义:

飞机大战游戏作为 PC 中一款桌面游戏,界面简洁流畅、游戏方式简单玩起来容易上手。面向休闲游戏的玩家,例如:家庭、办公人员等,使用人群广泛。

1.2 系统功能需求:

1)通过键盘,方向键 WASD 键可控制战机的位置,空格键发射子弹,

2)界面中敌机出现的位置是随机的。

3)对于随机产生的敌机及子弹,若超出界面,则释放该对象。

4)战机、敌机、子弹都有生命值,敌机和玩家碰撞、敌机和玩家的子弹碰撞、敌机的子弹和玩家碰撞、敌机的子弹和玩家的子弹碰撞均需考虑。敌机的生命值为0,则删除敌机或BOSS,战机生命值为0,游戏结束。

5)战机子弹:战机有两种子弹可自由选择。

6)结束功能:游戏中按下2会结束游戏,再次按下 Y/N 可继续或者退出游戏。

2.总体设计

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类(抽象类)的设计:

(2)Plane类的设计:

(3)Map类的设计:

(4)Manager类的设计:

3.详细设计及实现

3.1 Public_using及stdafx的实现

// Public_Using.h

#pragma once

// 组成飞机和子弹的节点

struct Note

{

int m_x;

int m_y;

Note(int x, int y):m_x(x), m_y(y){}

};

// 枚举类型(自己定义)

enum Type

{

KONG,HEAD_F,LEFT_F,RIGHT_F,XUNL_F

,OBSTACLE,BULLET,SMALL,BOSS,MIND

,B_U_HEAD,SHENTI,B_HEAD,B_LEFT,B_RIGHT ,BOOS,PLAYER,A,B,C,D,E,F,G,H,I,J,K

,BULLET_4_HEAK,BULLET_4_SHENTI

};

// stdafx.h

// stdafx.h : 标准系统包含文件的包含文件,

// 或是经常使用但不常更改的

// 特定于项目的包含文件

//

#pragma once

#include"targetver.h"

#include

#include

#include

#include

#include

#include

#include

#include

相关文档
最新文档