C++程序设计A2
课 程 设 计 报 告
课程名称 C++程序设计A2 课题名称 飞机大战
专 业 计算机科学与技术 班 级 1820544 ___ 学 号 182054424 _____ 姓 名 王锐 ____ _ 指导教师 韩燕丽 __
2024年 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. 3. 4. 5. 6. 7.
系统需求分析 .............................................................................................................. 1 总体设计 ...................................................................................................................... 2 详细设计及实现 .......................................................................................................... 5 系统调试 ...................................................................................................................... 5 结论 ............................................................................................... 错误!未定义书签。 心得体会 ....................................................................................... 错误!未定义书签。 参考书目 .................................................................................................................... 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 系统功能模块图:
飞机大战飞机类子弹类地图类BOSSBOSS
敌
机战机机敌机子弹战机子弹机子弹敌机绘制战机绘制
BOSS机绘制2.4 类的设计
(1)Bullet类(抽象类)的设计: