1. 程式人生 > >第十三週專案一--動物這樣叫

第十三週專案一--動物這樣叫

問題及程式碼:

/* Copyright (c) 2014, 煙臺大學計算機學院
* All rights reserved.
* 檔名稱:test.cpp
* 作    者:尚 月
* 完成日期:2015年 06 月 05 日
* 版 本 號:v1.0
*
* 問題描述: 根據給出的main()函式和執行結果的提示,設計出相關的各個類,注意觀察執行結果,提取出每個類中需要的資料成員,並匹配上需要的成員函式。
* 程式輸入: 無
* 程式輸出: 按要求輸出
*/
#include<iostream>
#include<string>
using namespace std;
class Animal
{
public:
  virtual void cry()
    {
      cout<<"不知哪種動物,讓我如何學叫?"<<endl;
    }
};

class Mouse:public Animal
{
private:
    string name;
    char sex;
public:
    Mouse(string n,char s):name(n),sex(s){};
    virtual void cry()
    {
        cout<<"我叫"<<name<<",是一隻"<<((sex=='m')?"男":"女")<<"老鼠,我的叫聲是:吱吱吱!"<<endl;
    }
};


class Cat:public Animal
{
private:
    string name;
public:
    Cat(string n):name(n){};
    virtual void cry()
    {
        cout<<"我叫"<<name<<",是一隻貓,我的叫聲是:喵喵喵!"<<endl;
    }
};

class Dog:public Animal
{
private:
    string name;
public:
    Dog(string n):name(n) {}
    virtual void cry()
    {
        cout<<"我叫"<<name<<",是一條狗,我的叫聲是:汪汪汪!"<<endl;
    }

};

class Giraffe:public Animal
{
private:
    string name;
    char sex;
public:
    Giraffe(string n,char s):name(n),sex(s){};
    virtual void cry()
    {
        cout<<"我叫"<<name<<",是"<<((sex=='m')?"男":"女")<<"長頸鹿,因為我脖子太長,發不出聲音來!"<<endl;
    }
};


int main( ){
    Animal *p;
    p = new Animal();
    p->cry();
    Mouse m1("Jerry",'m');
    p=&m1;
    p->cry();
    Mouse m2("Jemmy",'f');
    p=&m2;
    p->cry();
    Cat c1("Tom");
    p=&c1;
    p->cry();
    Dog d1("Droopy");
    p=&d1;
    p->cry();
    Giraffe g1("Gill",'m');
    p=&g1;
    p->cry();
    return 0;
}


執行結果:

學習總結:給出main()函式以後,就不會無從下手了。。