C++ DAY5 作业

 1.全局变量,int monster = 10000;定义英雄类hero,受保护的属性string name,int hp.int attck;公有的无参构造,有参构造,虚成员函数void Atk()blood-=0;},法师类继承自英雄类,私有属性int ap_atk=50;重写虚成员函数void Atk()(blood-=(attck+ap_atk);};射手类继承自英雄类,私有属性int ac_atk = 100;重写虚成员函数void Atik()(blood-=(attck+ac_atk);}实例化类对象,判断怪物何时被杀死。(能写多少写多少)

#include <iostream>

using namespace std;

int Monster_blood = 10000;

//英雄类
class Hero
{
protected:
    string name;
    int hp;
    int attck;
public:
    //构造函数
    Hero(){
        cout << "Hero无参构造" << endl;
    }
    Hero(string name,int hp,int attck):name(name),hp(hp),attck(attck){
        cout << "Hero有参构造" << endl;
    }
    //虚函数
    virtual void Atk()
    { Monster_blood -= 0;}

};

//法师类
class Master: public Hero
{
    int ap_atk = 50;
public:
    //构造函数
    Master(string name,int hp,int attck):Hero(name,hp,attck){
        cout << "Master有参构造" << endl;
    }
    void Atk()
    {
        Monster_blood -= (attck + ap_atk);
    }
};

//射手类
class Shooter:public Hero
{
    int ac_atk = 100;
public:
    //构造函数
    Shooter(string name,int hp,int attck):Hero(name,hp,attck){
        cout << "Shooter有参构造" << endl;
    }
    void Atk()
    {
        Monster_blood -=(attck + ac_atk);
    }
};

struct Attck_num
{
    int M_num;
    int S_num;
};
//打怪
Attck_num Beat_Monster(Master M1,Shooter S1,struct Attck_num num)
{
    while(Monster_blood >= 0)
    {
        M1.Atk();
        if(Monster_blood >= 0)
        {
            num.M_num++;
        }else {break;}

        S1.Atk();
        if(Monster_blood >= 0)
        {
            num.S_num++;
        }else {break;}
    }
    return num;
}

int main()
{
    Master M1("Raz",1000,60);
    Shooter S1("VN",1000,70);
    //定义打怪次数结构体
    struct Attck_num num;
    num.M_num = 0;
    num.S_num = 0;
    num = Beat_Monster(M1,S1,num);

    cout << "Master攻击次数:" << num.M_num << endl;
    cout << "Shooter攻击次数" << num.S_num << endl;
    cout << "Monster die" << endl;
    return 0;
}

2.思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/287910.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MatrixOne 1.1.0 Release

我们非常高兴地宣布&#xff1a; MatrixOne内核1.1.0版本 正式发布啦&#xff01; 项目文档网站 https://docs.matrixorigin.cn MatrixOne是一款分布式超融合异构数据库&#xff0c;MatrixOne旨在提供一个云原生、高性能、高弹性、高度兼容MySQL的HSTAP数据库&#xff0c;让…

SpringCloud微服务架构,适合接私(附源码)

一个由商业级项目升级优化而来的微服务架构&#xff0c;采用SpringBoot 2.7 、SpringCloud 等核心技术构建&#xff0c;提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。 架构图 项目介绍 用户权益 仅允许免费用于学习、毕设、公司项目、私活等。…

Java技术栈 —— Hadoop入门(一)

Java技术栈 —— Hadoop入门&#xff08;一&#xff09; 一、Hadoop第一印象二、安装Hadoop三、Hadoop解析3.1 Hadoop生态介绍3.1.1 MapReduce - 核心组件3.1.2 HDFS - 核心组件3.1.3 YARN - 核心组件3.1.4 其它组件3.1.4.1 HBase3.1.4.2 Hive3.1.4.3 Spark 一、Hadoop第一印象…

IoTDB 集群部署——windows

本文的测试环境为window server2016&#xff0c;版本包为1.1.0&#xff0c;jdk版本为1.8 首先下载IoTDB版本包&#xff0c;链接地址如下 https://archive.apache.org/dist/iotdb/1.1.0/apache-iotdb-1.1.0-all-bin.zip 本次部署将使用1个ConfigNode 和3个DataNode模式&#…

Java基础-----集合类(一)

文章目录 1.集合类简介2. 自定义集合类 1.集合类简介 集合和数组一样&#xff0c;都是用来存储多个数据的结构&#xff0c;也可以称作容器。 数组长度是不可变化的&#xff0c;一旦在初始化数组时指定了数组长度&#xff0c;这个长度就不可变。如果需要处理数量变化的数据&am…

我在CSDN的2023年

一、引言 在2023年的这一年当中&#xff0c;在CSDN的生活让我得到许多知识与启发&#xff0c;也让我获得一些快乐和成就 二、自己的收获 在这一年当中&#xff0c;我从一个只会看别人写的文章解决问题到&#xff0c;可以自己写文章帮别人解决问题&#xff0c;这种成就感是极大…

【数据不完整?用EM算法填补缺失】期望值最大化 EM 算法:睹始知终

期望值最大化算法 EM&#xff1a;睹始知终 算法思想算法推导算法流程E步骤&#xff1a;期望M步骤&#xff1a;最大化陷入局部最优的原因 算法应用高斯混合模型&#xff08;Gaussian Mixture Model, GMM&#xff09;问题描述输入输出Python代码实现 算法思想 期望值最大化方法&a…

手把手教你学会接口自动化框架的搭建-前言

在网上看过很多帖子,各种接口自动化的框架眼花缭乱,但是对于很多才做自动化的新手,那是一头雾水。 因此,我决定出一个系列,让你能够按照我的文档一步步把接口自动化都做起来,而不是网上这种一股脑的全部抛出,让你看的云里雾里的。 看完这些文档保证你能去任何一家公司,…

面对众多知识付费平台,如何做出明智的选择?

在当今的知识付费市场中&#xff0c;用户面临的选择越来越多&#xff0c;如何从众多知识付费平台中正确选择属于自己的平台呢&#xff1f;下面&#xff0c;我们将为您介绍明理信息科技知识付费平台相比同行的优势&#xff0c;帮助您做出明智的选择。 一、创新的技术架构&#…

Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架

目录 一、FastAPI框架概述 二、FastAPI与Flask和Tornado的性能对比 1、路由性能 2、请求处理性能 3、内存占用 三、FastAPI的优点与特色 四、代码示例 五、注意事项 六、结论 在当今的软件开发领域&#xff0c;快速、高效地构建API成为了许多项目的关键需求。为了满足…

DevEco Studio IP Convention for MAC

一、前置条件 1、已经Phone/Tablet和PC连接到同一WLAN网络。 2、已经获取Phone/Tablet的IP地址&#xff0c;可通过设置>关于手机/关于平板>状态信息>IP地址进行 查看 3、Phone/Tablet上的555…

Nginx多域名部署多站点

目录 1.修改配置文件nginx.conf 2. 修改hosts文件 1.修改配置文件nginx.conf 在配置文件的 server_name 处修改成自己需要的域名&#xff0c;然后保存退出 j 查看语法是否错误&#xff0c;然后重启nginx nginx -t # 查看语法是否正确 systemctl restart nginx # 重启nginx …

【Python机器学习】观察数据散点图矩阵

构建机器学习模型前&#xff0c;通常要检查数据&#xff0c;判断不用机器学习能不能轻松完成任务&#xff0c;或者需要的信息有没有包含在数据中。检查数据也是发现异常值和特殊值的好办法。 检查数据的最佳方法之一就是可视化&#xff0c;一种是绘制散点图&#xff0c;将一个…

CNN——LeNet

1.LeNet概述 LeNet是Yann LeCun于1988年提出的用于手写体数字识别的网络结构&#xff0c;它是最早发布的卷积神经网络之一&#xff0c;可以说LeNet是深度CNN网络的基石。 当时&#xff0c;LeNet取得了与支持向量机&#xff08;support vector machines&#xff09;性能相…

【前沿技术】超级稳定的视频卡通画方案

Git clone项目到本地 git clone gitgithub.com:Artiprocher/DiffSynth-Studio.git 基本原理 使用了stable diffusion稳定扩散模型和controlnet来控制图像生成的轮廓&#xff0c;animatediff控制视频帧与帧之间的连续性&#xff0c;最后使用RIFE技术平滑整个生成后的视频。 …

40道java集合面试题含答案(很全)

1. 什么是集合 集合就是一个放数据的容器&#xff0c;准确的说是放数据对象引用的容器集合类存放的都是对象的引用&#xff0c;而不是对象的本身集合类型主要有3种&#xff1a;set(集&#xff09;、list(列表&#xff09;和map(映射)。 2. 集合的特点 集合的特点主要有如下两…

使用Python做个可视化的“剪刀石头布”小游戏

目录 一、引言 二、环境准备与基础知识 三、游戏界面制作 四、游戏逻辑实现 五、代码示例 六、游戏测试与优化 七、扩展与改进 八、总结 一、引言 “剪刀石头布”是一种古老的手势游戏&#xff0c;它简单易懂&#xff0c;趣味性强&#xff0c;适合各个年龄段的人参与。…

虎克:开发小程序要多少钱一个,非专业开发如何做自己的小程序

小程序开发费用主要取决于小程序的功能复杂度和开发周期。一般来说&#xff0c;小程序开发费用可以分为两类&#xff1a;模板开发和定制开发。 模板开发&#xff1a;模板开发是指使用现成的模板进行开发&#xff0c;价格相对较低&#xff0c;一般在几千元左右。优点是价格便宜&…

你不知道的 CSS 之 包含块 ! 最细讲解,一听就懂!

你不知道的 CSS 之包含块 一说到 CSS 盒模型&#xff0c;这是很多小伙伴耳熟能详的知识&#xff0c;甚至有的小伙伴还能说出 border-box 和 content-box 这两种盒模型的区别。 但是一说到 CSS 包含块&#xff0c;有的小伙伴就懵圈了&#xff0c;什么是包含块&#xff1f;好像…

(切图笔记)layui表格单元格添加超链接 以及传参方法 亲测可用 附代码

layui在切图网日常的工作中常常用到&#xff0c;特别是它的layer弹窗&#xff0c;基本可以满足网站切图时候遇到的绝大多数弹窗的情况&#xff0c;参数比较丰富 灵活&#xff0c;是不可多得的网页插件之一&#xff0c;我见很多人说layui过时了&#xff0c;这是相比于vue正流行的…