[c++]代码库
#include<iostream>
#include<string>
using namespace std;
class Animal
{
protected:
string name;//某动物名
int num;//该动物的数量
public:
//无参构造
Animal()
{
name="NULL";
num=0;
}//设置动物名和数量
void setAnimal(string n,int m)
{
name=n;
num=m;
}
//返回动物数量
int getNum() const
{
return num;
}
//返回动物名称
string getName() const
{
return name;
}
//重载运算符=,以便之后快速存入动物
Animal &operator=( const Animal &a)
{
if(this != &a)
{
this-> num=a.num;
this->name=a.name;
}
return *this;
}
};
class AnimalList
{
private:
Animal *animalList;
int numOfAnimal;//动物种数
public:
AnimalList(Animal *animals, int n)
{
numOfAnimal=n;
animalList=new Animal[n];//申请n种动物的空间
for(int i=0; i<n; i++)
animalList[i]=animals[i];//把n种动物都存进去
}
//重载运算符[],根据动物名字找动物数量
int operator[](string name)
{
for(int i=0; i<numOfAnimal; i++)
{
if(name == animalList[i].getName())//找到该动物
return animalList[i].getNum();//返回该动物的数量
}
return -1;//没有此动物名字,返回-1
}
};
int main()
{
int cases;
string name;
int num;
cin>>cases;//输入动物种数
Animal animals[cases];//根据种数开数组
//挨个录入动物信息
for (int i = 0; i < cases; i++)
{
cin>>name>>num;
animals[i].setAnimal(name, num);
}
AnimalList animalList(animals, cases);
cin>>cases;//输入查询次数
for (int i = 0; i < cases; i++)
{
cin>>name;
if (animalList[name] != -1)
cout<<"There are "<<animalList[name]<<" "<<name<<"s."<<endl;
else
cout<<"There is none "<<name<<"."<<endl;
}
return 0;
}
by: 发表于:2017-09-01 09:53:04 顶(0) | 踩(0) 回复
??
回复评论