Home | Web Board | ProblemSet | Standing | Status | Statistics |
Problem G: 动物要吃饭
Time Limit: 1 Sec
Memory Limit: 128 MB
Submit: 673
Solved: 615
[Submit][Status][Web Board]
Description
定义Animal类,只有一个纯虚函数eat。
定义Dog、Cat、Sheep、Chicken四个类,它们都是Animal的子类。
每个类重载eat方法,每个方法输出的内容见样例。
Input
一系列0~3之内的整数。
Output
每个输入对应一行输出,0、1、2、3分别代表Dog、Cat、Sheep、Chicken。
Sample Input
01232310
Sample Output
Dog eats bone.Cat eats fish.Sheep eats grass.Chicken eats worm.Sheep eats grass.Chicken eats worm.Cat eats fish.Dog eats bone.
HINT
Append Code
append.cc,
[ Submit][Status][Web Board]
한국어< 中文 فارسی English ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <cstring>
#include <cmath>
#include <list>
#include <vector>
using namespace std;
class Animal
{
public:
virtual void eat()const = 0;
};
class Dog:public Animal
{
public:
void eat()const { cout << "Dog eats bone." << endl; }
};
class Cat:public Animal
{
public:
void eat()const { cout << "Cat eats fish." << endl; }
};
class Sheep:public Animal
{
public:
void eat()const { cout << "Sheep eats grass." << endl; }
};
class Chicken:public Animal
{
public:
void eat()const { cout << "Chicken eats worm." << endl; }
};
int main()
{
int c;
vector<Animal*> animals;
vector<Animal*>::iterator itr;
while(cin>>c)
{
switch(c)
{
case 0 :
animals.push_back(new Dog());
break;
case 1:
animals.push_back(new Cat());
break;
case 2:
animals.push_back(new Sheep());
break;
case 3:
animals.push_back(new Chicken());
}
}
for (itr = animals.begin(); itr != animals.end(); itr++)
(*itr)->eat();
return 0;
}