Problem A: 让动物们叫起来吧!

Description

Tom家里养了很多动物,比如有鸭子、火鸡和公鸡。它们的叫声都不相同。现在,请编写类Animal、Cock、Turkey和Duck,根据给出的main()函数及样例分析每个类的属性、行为及相互关系,以模仿Tom家的情况。

提示:动物们都有自己的名字。

Input

输入有多行。第一行正整数M表示之后有M个测试用例,每个测试用例包括2部分:前一部分是动物的名字,后一部分是动物的类型(用A、B、C分别表示鸭子、火鸡和公鸡)。

Output

输出有M行,每个测试用例对应一样。见样例。

Sample Input

3 Baby C Rubby B Tobby A

Sample Output

Baby is a cock, and it can crow. Rubby is a turkey, and it can gobble. Tobby is a duck, and it can quack.

HINT

Append Code

append.cc,

int main()

{

    int cases;

    string name;

    char type;

    Animal *animal;

    cin>>cases;

    for (int i = 0; i < cases; i++)

    {

       cin>>name>>type;

       switch(type)

       {

        case ‘A‘:

            animal = new Duck(name);

            break;

        case ‘B‘:

            animal = new Turkey(name);

            break;

        case ‘C‘:

            animal = new Cock(name);

            break;

       }

       animal->sound();

    }

    return 0;

}

代码

#include <iostream>

using namespace std;

class Animal

{

    public:

    Animal(){}

    virtual void sound(){}

};

class Cock:public Animal

{

    string name1;

public:

    Cock(string n):name1(n){}

    void sound()

    {

        cout<<name1<<" is a cock, and it can crow."<<endl;

    }

};

class Turkey:public Animal

{

    string name2;

public:

    Turkey(string  n):name2(n){}

    void sound()

    {

        cout<<name2<<" is a turkey, and it can gobble."<<endl;

    }

};

class Duck:public Animal

{

    string name3;

public:

    Duck(string n):name3(n){}

    void sound()

    {

        cout<<name3<<" is a duck, and it can quack."<<endl;

    }

};

int main()

{

    int cases;

    string name;

    char type;

    Animal *animal;

    cin>>cases;

    for (int i = 0; i < cases; i++)

    {

       cin>>name>>type;

       switch(type)

       {

        case ‘A‘:

            animal = new Duck(name);

            break;

        case ‘B‘:

            animal = new Turkey(name);

            break;

        case ‘C‘:

            animal = new Cock(name);

            break;

       }

       animal->sound();

    }

    return 0;

}

时间: 2024-11-04 04:58:27

Problem A: 让动物们叫起来吧!的相关文章

Problem E: 动物爱好者

Problem E: 动物爱好者 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 882  Solved: 699[Submit][Status][Web Board] Description 某人是一个狂热的动物爱好者,豢养了大量的各种动物.现在请定义两个类: 1. Animal类: (1)string name和int  num属性表示该种动物的名称和数量. (2)无参构造函数. (3)void setAnimal(string,int)方法,用

虚函数练习:动物2

Problem D: 虚函数练习:动物2 Description 长期的物种进化使自然界出现了生活在陆地上的陆生动物和生活在水中的水生动物.根据已有主函数编写动物类,陆生动物类和水生动物类. Input 动物的体长,体重,性别: 水生动物的体长,体重,性别,游泳速度: 陆生动物的体长,体重,性别,奔跑速度: Output 动物的体长,体重,性别: 水生动物的体长,体重,性别,游泳速度: 陆生动物的体长,体重,性别,奔跑速度: Sample Input 52 22 f 62 32 m 122 72

实验12:Problem J: 动物爱好者

#define null ""是用来将字符串清空的 #define none -1是用来当不存在这种动物时,返回-1. 其实这种做法有点多余,不过好理解一些. Home Web Board ProblemSet Standing Status Statistics Problem J: 动物爱好者 Problem J: 动物爱好者 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 509  Solved: 376[Submit][Status

动物产生式识别系统

摘要:构造知识型系统和建立认知模型时常用的知识表示的形式系统.1943年E.波斯特首先将他提出的一种计算形式体系命名为产生式系统.50年代末期,A.纽厄尔和H.A.西蒙在研究人类问题求解的认知模型时也使用了产生式系统这一术语.产生式系统现代已成为研制人工智能系统时采用的最典型的体系结构之一.本文主要论述计算机科学与技术专业大三下专业课<人工智能>第三个实验算法. 关键字:人工智能,专家系统,产生式系统 Production system Abstract: Constructs the kno

Problem D: 动物爱好者

Problem D: 动物爱好者 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1766  Solved: 1355[Submit][Status][Web Board] Description 某人是一个狂热的动物爱好者,豢养了大量的各种动物.现在请定义两个类: 1. Animal类: (1)string name和int  num属性表示该种动物的名称和数量. (2)无参构造函数. (3)void setAnimal(string,int)方法

《动物世界》的剪刀石头布 HDU --- 6418

题目连接: https://vjudge.net/problem/1812686/origin emmm 这一题的资料来自<动物世界>这一个李易峰演的电影.. 主要的思路就是概率,但是会牵扯到博弈论这一个复杂的思路,如果继续深入就会越陷越深... 为什么不需要博弈的根本原因是它的总数的不变的,这个需要考虑到 A: a1, b1, c1 B: a2, b2, c2 (其中a, b, c分别对应剪刀,石头,布) 现在要B赢,并且题目提到了B知道A中手牌 所以 A要赢的最佳可能是(a'*(c-b)+

A Math Problem

A Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 237    Accepted Submission(s): 117 Problem Description You are given a positive integer n, please count how many positive integers

Water Problem

water problem 发布时间: 2015年10月10日 15:34   时间限制: 1000ms   内存限制: 256M 描述 题意很简单 给你N个数, Q个查询 每次查询给你一个区间[L, R] 你要找出 [L, R] 这个区间里面取模M后的最大值. 输入 第一行一个T,表示测试数据组数.第二行两个整数N, M (1<=N<=10^5, 1<=M<=10^9).第三行给你N个整数 整数范围在1到10^9之间.第四行给你一个整数Q. ( 1<=Q<=10^5)

FOJ Problem 2261 浪里个浪

                                                                                                                                                           Problem 2261 浪里个浪 Accept: 40    Submit: 106Time Limit: 1500 mSec    Memory Limit : 32768 KB Pro