定义一个名为“person”的类它封装了以下属性和必要的方法:
1)height: int,单位:cm;
2)重量:浮子,单位:kg;
3)性别:char, 'M'/'F'
4)名称:字符
2. 定义main()函数来完成以下工作:
1)建立一个包含10个Person类实例的数组;
2)从键盘将数据输入到数组元素中
3)打印平均身高、体重、最高、最矮者、男性、女性、170厘米以上者。
#include <iostream>
#include <string>
using namespace std;
class Person
{
private:
int Height,Weight;
string Name;
char Sex;
public:
Person() {}
void setHeight(int h) {Height = h;}
void setWeight(int w) {Weight= w;}
void setName(string name) {Name= name;}
void setSex(char sex) {Sex= sex;}
int getHeight() {return Height;}
int getWeight() {return Weight;}
char getSex() {return Sex;}
string getName() {return Name;}
};
int getAvgHeight(Person *p,int n)
{
int h= 0;
for(int i=0;i<n;i++)
h += p[i].getHeight();
return h/n;
}
string getHighMax(Person *p ,int n)
{
int max= 0,maxIdx= 0;
for(int i=0;i<n;i++)
{
if(i==0)
{
max = p[i].getHeight();
maxIdx = 0;
}
else if(max < p[i].getHeight())
{
max = p[i].getHeight();
maxIdx = i;
}
}
return p[maxIdx].getName();
}
string getHighMin(Person *p ,int n)
{
int min= 0,minIdx= 0;
for(int i=0;i<n;i++)
{
if(i==0)
{
min= p[i].getHeight();
minIdx = 0;
}
else if(min > p[i].getHeight())
{
min = p[i].getHeight();
minIdx = i;
}
}
return p[minIdx].getName();
}
void getF(Person *p,int n)
{
for(int i=0;i<n;i++)
if(p[i].getSex() == 'F')
cout<<p[i].getName()<<endl;
}
void getM(Person *p,int n)
{
for(int i=0;i<n;i++)
if(p[i].getSex() == 'M')
cout<<p[i].getName()<<endl;
}
void getHightMore(Person *p,int n,int h,char sex)
{
for(int i=0;i<n;i++)
if(p[i].getHeight() > h && p[i].getSex() == sex)
cout<<p[i].getName()<<endl;
}
int getAvgWeight(Person *p,int n)
{
int h= 0;
for(int i=0;i<n;i++)
h += p[i].getWeight();
return h/n;
}
int main()
{
Person p[10];
int h,w;
string name;
char sex;
for(int i=0;i<10;i++)
{
cin>>h>>w>>name>>sex;
p[i].setHeight(h);
p[i].setWeight(w);
p[i].setName(name);
p[i].setSex(sex);
}
//
cout<<"平均身高:"<<getAvgHeight(p,10)<<endl;
cout<<"平均体重:"<<getAvgWeight(p,10)<<endl;
cout<<"最高的人:"<<getHighMax(p,10)<<endl;
cout<<"最矮的人:"<<getHighMin(p,10)<<endl;
cout<<"女人有:"<<endl;
getF(p,10);
cout<<"男人有:"<<endl;
getM(p,10);
cout<<"超过170cm的男人有:"<<endl;
getHightMore(p,10,170,'M');
return 0;
}