zoukankan      html  css  js  c++  java
  • 实验9:Problem B: 动物类-抽象类

    最坑的一点:狗的量词是条!条!条!

    Home Web Board ProblemSet Standing Status Statistics
     
    Problem B: 动物类-抽象类

    Problem B: 动物类-抽象类

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 1567  Solved: 774
    [Submit][Status][Web Board]

    Description

    每种动物都有自己的叫声,如狗的叫声是"汪汪汪",猫的叫声是"喵喵喵",老鼠的叫声是"吱吱吱"。
    构造类Animal,Dog,Cat,Mouse,他们都有成员数据name和sex,表示名字和性别。一个成员函数cry(),输出他们的叫声,在main函数中采用多态性调用他们。
     

    Input

    动物的姓名和性别

    Output

    动物的信息

    Sample Input

    Jerry m Jemmy f Tom m Droopy m

    Sample Output

    我叫Jerry,是一只男老鼠,我的叫声是:吱吱吱! 我叫Jemmy,是一只女老鼠,我的叫声是:吱吱吱! 我叫Tom,是一只男猫,我的叫声是:喵喵喵! 我叫Droopy,是一条男狗,我的叫声是:汪汪汪!

    HINT

    Animal应当为抽象类。

    Append Code

    [Submit][Status][Web Board]
    #include<iostream>
    using namespace std;
    class Animal{
    public:
        string name;
        char sex;
        ///Animal(string n,char m){name=n;sex=m;if(sex=='m') cout<<"我叫"<<name<<",是一只男"; else cout<<"我叫"<<name<<",是一只女";}
        virtual void cry()=0;
    };
    class Mouse:public Animal{
    public:
        string name;
        char sex;
        Mouse(string n,char m){name=n;sex=m;if(sex=='m') cout<<"我叫"<<name<<",是一只男"; else cout<<"我叫"<<name<<",是一只女";}
        void cry(){cout<<"老鼠,我的叫声是:吱吱吱!"<<endl;}
    };
    class Dog:public Animal{
    public:
        string name;
        char sex;
        Dog(string n,char m){name=n;sex=m;if(sex=='m') cout<<"我叫"<<name<<",是一条男"; else cout<<"我叫"<<name<<",是一条女";}
        void cry(){cout<<"狗,我的叫声是:汪汪汪!"<<endl;}
    };
    class Cat:public Animal{
    public:
        string name;
        char sex;
        Cat(string n,char m){name=n;sex=m;if(sex=='m') cout<<"我叫"<<name<<",是一只男"; else cout<<"我叫"<<name<<",是一只女";}
        void cry(){cout<<"猫,我的叫声是:喵喵喵!"<<endl;}
    };
    int main( )
    {
        string nam;
        char s;
        cin>>nam>>s;
        Animal *p;
        Mouse m1(nam, s);
        p=&m1;
        p->cry();
        cin>>nam>>s;
        Mouse m2(nam, s);
        p=&m2;
        p->cry();
        cin>>nam>>s;
        Cat c1(nam, s);
        p=&c1;
        p->cry();
        cin>>nam>>s;
        Dog d1(nam, s);
        p=&d1;
        p->cry();
        return 0;
    }
  • 相关阅读:
    Sql Server 日期时间格式转换
    Windows7中pagefil.sys和Hiberfil.sys文件删除与转移
    64位机的pl/sql不安装32位oracle的连接方式
    cmd下进入oracle sqlplus
    杂七杂八
    做题记录Ⅱ
    SPOJ GSS8
    AGC036 A-Triangle | 构造
    Atcoder 题目泛做
    CF398A Cards | 贪心
  • 原文地址:https://www.cnblogs.com/auto1945837845/p/5447284.html
Copyright © 2011-2022 走看看