设计一个People 类,该类的数据成员有姓名、年龄、身高、体重和人数,其中人数为静态数据成员,成员函数有构造函数、显示和显示人数。其中构造函数由参数姓名、年龄、身高和体重来构造对象;显示函数用于显示人的姓名、年龄、身高和体重;显示人数函数为静态成员函数,用于显示总的人数。
按姓名、年龄、身高和体重依次输入每个人的信息
已exit结束
zhang 18 180 70
li 20 160 50
exit
输出总人数,例如
2
在这里给出一组输入。例如:
zhang 18 180 70
li 20 160 50
exit
在这里给出相应的输出。例如:
2
方法一:
#include
using namespace std;
int main()
{
string name;
int age;
double h,w;
static int cnt;
cin>>name;
while(name!="exit") //先输入姓名,再输入身高体重
{
cin>>age>>h>>w;
cnt++;
cin>>name;
};
printf("%d",cnt); //输出人数
return 0;
}
这是一种常规做法不需要类,正常的就可以
这是最常规的一种方法,下面还有第二种方法需要用到类,而且个人认为也比较简单(这个简单是我相对于主函数来说的),可以看一下
方法二:
#include
using namespace std;
class people //类名
{
private: //私有
string name; //姓名
int age; //年龄
double h,w; //身高,体重
public:
void show() //显示函数
{
name=" "; //姓名
age=0;
h=0;
w=0;
}
void input() //输入函数
{
cin>>name; //同样的我们先输姓名,再输年龄身高和体重
while(name!="exit")
{
cin>>age>>h>>w;
cnt++;
cin>>name;
};
}
void output() //输出函数
{
cout<
我们还有第三种方法,第三种方法和第二种方法的区别在于,第三种我们用了构造函数创造空间,将成员变量和形参联系了起来,不过第三种有一点繁琐,没第二种看起来简洁
第三种:
#include
using namespace std;
class people //类名
{
private: //私有
string name; //姓名
int age; //年龄
double h,w; //身高,体重
public:
people(string name,int age,double h,double w) //构造函数
{
this->name=name;
this->age=age;
this->h=h;
this->w=w;
}
void show() //显示函数
{
name=" "; //姓名为空
age=0;
h=0;
w=0;
}
static int cnt; //静态变量
};
int main()
{
string name;
int age;
double h,w;
static int cnt;
cin>>name;
people A=people(name,age,h,w); //传递数值
while(name!="exit") //先输入姓名,再输入身高体重
{
cin>>age>>h>>w;
cnt++;
cin>>name;
};
printf("%d",cnt); //输出人数
return 0;
}