码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 动物园(虚函数与多态)


    目录

    题目描述

    AC代码


    题目描述

    某个动物园内,有老虎、狗、鸭子和猪等动物,动物园的管理员为每个动物都起了一个名字,并且每个动物都有年龄、体重等信息。每到喂食的时候,不同的动物都会叫唤(speak)。每种动物的叫唤声均不同,老虎的叫唤声是“AOOO”,狗的叫唤声是“WangWang”,鸭子的叫唤声是“GAGA”,猪的叫唤声是“HENGHENG”。

    定义一个Animal的基类,Animal类有函数Speak(),并派生老虎(Tiger)、狗(Dog)、鸭子(Duck)和猪(Pig)类,其能发出不同的叫唤声(用文本信息输出叫声)。

    编写程序,输入动物名称、名字、年龄,让动物园内的各种动物叫唤。

    要求:只使用一个基类指针,指向生成的对象并调用方法。

    输入

    测试案例的个数

    第一种动物的名称  名字  年龄

    第二种动物的名称  名字 年龄

    ......

    输出

    输出相应动物的信息

    如果不存在该种动物,输出There is no 动物名称 in our Zoo.  ,具体输出参考样例输出

    输入样例1

    4
    Tiger Jumpjump 10
    Pig Piglet 4
    Rabbit labi 3
    Duck tanglaoya 8

    输出样例1

    Hello,I am Jumpjump,AOOO.
    Hello,I am Piglet,HENGHENG.
    There is no Rabbit in our Zoo.
    Hello,I am tanglaoya,GAGA.

    AC代码

    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. class Animal{
    4. protected:
    5. string name;
    6. int year;
    7. public:
    8. void datain(){cin>>name>>year;}
    9. virtual void Speak()=0;
    10. };
    11. class Tiger:public Animal{
    12. public:
    13. virtual void Speak(){cout<<"Hello,I am "<<name<<",AOOO."<<endl;}
    14. };
    15. class Dog:public Animal{
    16. public:
    17. virtual void Speak(){cout<<"Hello,I am "<<name<<",WangWang."<<endl;}
    18. };
    19. class Duck:public Animal{
    20. public:
    21. virtual void Speak(){cout<<"Hello,I am "<<name<<",GAGA."<<endl;}
    22. };
    23. class Pig:public Animal{
    24. public:
    25. virtual void Speak(){cout<<"Hello,I am "<<name<<",HENGHENG."<<endl;}
    26. };
    27. int main() {
    28. int t;
    29. cin >> t;
    30. string Kind;
    31. Animal * animal;
    32. while (t--) {
    33. cin>>Kind;
    34. if(Kind=="Tiger"){animal=new Tiger;}
    35. else if(Kind=="Dog"){animal=new Dog;}
    36. else if(Kind=="Duck"){animal=new Duck;}
    37. else if(Kind=="Pig"){animal=new Pig;}
    38. else{
    39. cout<<"There is no "<<Kind<<" in our Zoo."<<endl;
    40. cin.ignore(1314,'\n');
    41. continue;
    42. }
    43. animal->datain();
    44. animal->Speak();
    45. }
    46. }
  • 相关阅读:
    HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计
    第三章 Android 开发从入门到实战--简单控件
    2022-11-20 每日打卡:Leetcode第 320 场周赛
    如何使用机器学习算法进行能耗预测 2:算法与架构
    恒合仓库 - 商品管理模块、上传照片、添加采购单、添加出库单、商品分类
    Word中插入或修改文字时后面的字消失了该怎么办
    【远程访问和支持软件】上海道宁为您提供简单、安全、随时可用的远程访问解决方案
    【项目方案】利用Zookeeper实现集群缓存一致
    JavaScript中的浅拷贝与深拷贝
    MySQL+Java实现父子级联查询
  • 原文地址:https://blog.csdn.net/weixin_62264287/article/details/126816007
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号