设计一个People 类,该类的数据成员有姓名、年龄、身高、体重和人数,其中人数为静态数据成员,成员函数有构造函数、显示和显示人数。其中构造函数由参数姓名、年龄、身高和体重来构造对象;显示函数用于显示人的姓名、年龄、身高和体重;显示人数函数为静态成员函数,用于显示总的人数。

输入格式:

按姓名、年龄、身高和体重依次输入每个人的信息
已exit结束
zhang 18 180 70
li 20 160 50
exit

输出格式:

输出总人数,例如
2

输入样例:

在这里给出一组输入。例如:

zhang 18 180 70
li 20 160 50
exit

输出样例:

在这里给出相应的输出。例如:

2

 方法一:
#include<bits/stdc++.h>
 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<bits/stdc++.h>
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<<cnt;      
		}
	static int cnt;		 //静态变量 
};
int people::cnt;         //在这里我们定义cnt为int型,类名为people的类; 
int main()
{   
   	people A;        // 再定义一个为people类型的结构变量名 
	A.input();        //调用input成员函数 
	A.output();             //调用output成员函数 
	return 0;
	
}

我们还有第三种方法,第三种方法和第二种方法的区别在于,第三种我们用了构造函数创造空间,将成员变量和形参联系了起来,不过第三种有一点繁琐,没第二种看起来简洁

 第三种:
#include<bits/stdc++.h>
 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;
	
	
 }

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐