最胖的加菲(类与对象+数组)
题目描述
有一群猫猫,每只猫都有自己的名称和体重。
用类来描述猫,名称和体重都是私有属性,要求加入属性的get方法。其他函数根据需要自己定义
创建一个动态的猫对象数组,存储各只猫的名称和体重
根据猫的体重对数组做升序排序,并输出排序后每只猫的名称
题目涉及的数值均用整数处理
输入
第一行输入n表示有n只猫
第二行输入一只猫的名称和体重
依次输入n行
输出
输出一行,输出排序后的猫的名称
示例输入
4
chocolate 1500
water 400
cheese 3000
vegetable 200
示例输出
vegetable water chocolate cheese
#include<iostream>
#include<cstring>
using namespace std;
class Cat
{
public:
Cat()
{
name="00";
weight=0;
}
void set(string name1,int weight1);
string Getname()
{
return name;
}
int Getweight()
{
return weight;
}
private:
string name;
int weight;
};
void Cat::set(string name1,int weight1)
{
name=name1;
weight=weight1;
}
class ArrayofCat
{
public:
ArrayofCat(int n)
{
num=n;
Cats=new Cat[n];
}
~ArrayofCat()
{
num=0;
delete []Cats;
}
Cat &Element(int n)
{
return Cats[n];
}
private:
Cat *Cats;
int num;
};
int main()
{
int t,i,weight1,min,j;
string name1;
cin>>t;
ArrayofCat Cats(t);
int *p=new int[t];
for(i=0;i<t;i++)
{
cin>>name1>>weight1;
Cats.Element(i).set(name1,weight1);
}
j=t;
while(j)
{
min=Cats.Element(0).Getweight();
for(i=0;i<t;i++)
{
if(Cats.Element(i).Getweight()<min)
min=Cats.Element(i).Getweight();
}
for(i=0;i<t;i++)
{
if(Cats.Element(i).Getweight()==min)
{
cout<<Cats.Element(i).Getname();
Cats.Element(i).set("00",30000);
}
}
if(j!=1)
cout<<" ";
j--;
}
return 0;
}