1

输入

第一行表示要输入n个对象

后续各行输入不同对象的各属性值,每个对象一行,属性值包括:姓名、学号、学院、专业、性别、宿舍楼、手机号

输出

输出不同对象的各自属性

每个对象占一行

#include<iostream>
using namespace std;
#include<string>
class Student
{
	private:
		//姓名、学号、学院、专业、性别、宿舍楼、手机号
		string name;
		int id;
		string school;
		string major;
		string sex;
		string dom;
		string phone;
	public:
		void input()
		{
			cin>>name>>id>>school>>major>>sex>>dom>>phone;
		}
	    void output()
	    {
	    	cout<<name<<" "<<id<<" "<<school<<" "<<major<<" "<<sex
			<<" "<<dom<<" "<<phone<<endl;
		}
};
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
	Student s;
	s.input();
	s.output();
	}
	return 0;
}

错:手机号 phone 你用了 int 类型,但手机号通常是11位数字,可能超出 int 的表示范围(最大约21亿,11位手机号约100亿),导致溢出。另外,如果手机号以0开头,int 会丢失前导零。建议将 phone 改为 string 类型,这样更安全通用

2

题目描述

评估成年人身体健康有多个指标,包括BMI、体脂率BFR等

设计一个身体类Body,包含私有成员:姓名、身高(米)、体重(公斤),腰围(厘米),实现三个公有方法如下:

姓名get方法:返回对象的姓名,字符串类型

BMI方法,返回BMI数值(整数),计算公式BMI= 体重 / 身高的平方

体脂率方法,返回体脂率数值(浮点数),计算过程如下:

1)参数a=腰围(cm)×0.74

2)参数b=体重(kg)×0.082+34.89

3)体脂肪重量(kg)=a-b

4)体脂率 = 体脂肪重量÷体重

其他公有方法根据需要自行设计

主函数操作包括

1、创建Body类对象,并根据输入数据设置类对象属性

2、根据输出结果的格式,分别调用类对象的三个方法输出类对象的姓名、BMI值、体脂率

输入

第一行输入t表示有t个测试实例

第二行起,每行输入四个参数:姓名、身高、体重,腰围

依次输入t行

输出

输出t行,每行输入一个实例的BMI和体脂率,小数数值精确到小数点后2位,用空格隔开

#include<iostream>
using namespace std;
#include<string>
#include<iomanip>
class body
{
	private:
	string name;
	double hei;
	double wei;
	double wl;
	public:
		string get()
		{
			return name;
		}
		int BMI()
		{
			int bmi=(int)(wei/(hei*hei)+0.5);//直接int转换不会四舍五入,加个0.5就好了 
			return bmi;
		}
		double BFR()
		{
			double a,b,c,bfr;
			a=wl*0.74;
			b=wei*0.082+34.89;
			c=a-b;
			bfr=c/wei;
			return bfr;
		}
		void input()
		{
			cin>>name>>hei>>wei>>wl;
		}
		
};
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
	   body s;
	   s.input();
	   cout<<s.get()<<"'s'"	<<"  BMI:"<<s.BMI()<<fixed
	   <<setprecision(2)<<"--BFR:"<<s.BFR()<<endl;
	}
	return 0;
}

更多推荐