关于此题的相关知识点以及更多题目,请查看👇
【C++学习】【持续更新 】史上最全C++学习总结(知识点+OJ练习讲解)
题目描述
评估成年人身体健康有多个指标,包括BMI、体脂率BFR等
设计一个身体健康类,包含私有成员:姓名、身高(米)、体重(公斤),腰围(厘米),实现两个公有方法如下:
BMI方法,返回BMI数值(整数),计算公式BMI= 体重 / 身高的平方
体脂率方法,返回体脂率数值(浮点数),计算过程如下:
1)参数a=腰围(cm)×0.74
2)参数b=体重(kg)×0.082+34.89
3)体脂肪重量(kg)=a-b
4)体脂率 = 体脂肪重量÷体重
其它方法根据需要自行定义
输入
第一行输入t表示有t个测试实例
第二行起,每行输入四个参数:姓名、身高、体重,腰围
依次输入t行
输出
输出t行,每行输入一个实例的BMI和体脂率,小数数值精确到小数点后2位,用空格隔开
输入样例1
2
David 1.85 78.5 85.2
Sara 1.55 67.6 77.3
输出样例1
David’s BMI: 23–BFR: 0.28
Sara’s BMI: 28–BFR: 0.25
#include <iostream>
#include <cstring>
#include<iomanip>
#include<cmath>
using namespace std;
class Health //类的界面,第2种方式
{
private:
char name[20];
double h;
double w;
double y;
public:
int BMI()
{
return round(w/(h*h));
}
double BFR()
{
double a,b;
a = y*0.74;
b = w*0.082+34.89;
return (a-b)/w;
}
void set(char* nameval, double hval, double wval, double yval) //设置属性(提供接口给外部进行修改)
{
strcpy(name, nameval);
h = hval;
w = wval;
y = yval;
}
char* getname()
{
return name;
}
}; //注意这里的分号
int main()
{
int t;
cin >> t;
while(t--)
{
Health p; //对象(类类型实例化)
char name[20];
double h;
double w;
double y;
cin >> name >> h >> w >> y;
p.set(name,h,w,y);
int i;
double r;
i = p.BMI();
r = p.BFR();
cout << p.getname()<<"'s BMI: "<<i<<"--BFR: "<<fixed<<setprecision(2)<<r<<endl;
}
}
该博客介绍了一个C++程序,用于计算成年人的BMI(身体质量指数)和BFR(体脂率)。程序定义了一个健康类,包含姓名、身高、体重和腰围等属性,并实现了计算BMI和BFR的方法。通过输入多个测试实例,程序能够输出每个实例的BMI和体脂率,结果保留两位小数。示例中给出了输入输出样例,展示了如何使用该程序。
962

被折叠的 条评论
为什么被折叠?



