• 动物园(虚函数与多态)


    目录

    题目描述

    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. }
  • 相关阅读:
    竞赛选题 基于深度学习的人脸性别年龄识别 - 图像识别 opencv
    java中的注解
    RabbitMQ生产故障问题分析
    CentOS 8 通过YUM方式升级最新内核
    iOS系统暗黑模式
    Postman如何做接口自动化测试?
    GO 语言的并发模式你了解多少?
    计组 | 六七章 总线 IO输入输出系统 —— 总复习知识点回顾
    解决DDP的参数未参与梯度计算
    计算机毕业论文微信小程序毕业设计项目ssm驾校教培服务系统小程序+后台管理系统|前后分离VUE[包运行成功]
  • 原文地址:https://blog.csdn.net/weixin_62264287/article/details/126816007