身体质量指数(BMI,Body Mass Index)是国际上常用的衡量人体肥胖程度和是否健康的重要标准,主要用于统计分析。肥胖程度的判断不能采用体重的绝对值,它天然与身高有关。因此,BMI 通过人体体重和身高两个数值获得相对客观的参数,并用这个参数所处范围衡量身体质量。
计算公式
体重指数BMI=体重/身高的平方(国际单位kg/㎡)
理想BMI(18.5~23.9) = 体重(单位Kg) ÷ 身高的平方 (单位m)根据世界卫生组织定下的标准,亚洲人的BMI(体重指标Body Mass Index)若高于22.9便属于过重。亚洲人和欧美人属于不同人种,WHO的标准不是非常适合中国人的情况,为此制定了中国参考标准:
来源:百度百科
程序可以这么写,先创建两个个文本文档:AldBMI.txt
里面写:
low 0 18.4
right 18.5 23.9
big 24.0 27.9
large 28.0 100.0
和StuBMI.txt
low 10.0 14.6
right 14.7 21.8
big 21.9 24.5
large 24.8 100.0
代表学生版和成人版BMI数据
我们把下限设为0,上限设为100,这样以免麻烦
代码:
#include <iostream> #include <string> #include <fstream> #include <conio.h> #include <iomanip> #include "windows.h" using namespace std; void OUTlevel(string s) {if(s == "low")cout << "您的BMI等级为:" << "偏瘦" << endl;else if(s == "big")cout << "您的BMI等级为:" << "超重" << endl;else if(s == "large")cout << "您的BMI等级为:" << "肥胖" << endl; } void CheckAndOut(double AnsBMI, double high, double weight)//最后检查输出 {const double rightWeightB = 21.8 * (high * high);//常量定义,正常重量边界const double rightWeightS = 14.7 * (high * high);//常量定义,正常重量边界if(rightWeightS > AnsBMI)cout << "您还需要加" << rightWeightS - AnsBMI << "Kg" << endl;else if(rightWeightB < AnsBMI)cout << "您还需要减" << AnsBMI - rightWeightB << "Kg" << endl; } struct BMI_ALL{//结构体定义,string lv;//等级double score_small;//小成绩double score_big;//大成绩 }; void BMI_STUDENT(); void BMI_ALDULT();//提前声明 void BMI_m()//menu主界面 {while(true){cout << "--------BMI test--------" << endl;cout << "aldult [1]" << endl;cout << "student [2]" << endl;cout << "exit [0]" << endl;cout << "------------------------" << endl;cout << ">>> ";int Choose;cin >> Choose;//无等待输入-conio.hswitch (Choose){case 1:system("cls");BMI_ALDULT();break;case 2:system("cls");BMI_STUDENT();break;case 0:goto loop;}}loop:return; } void BMI_STUDENT() {ifstream fin("StuBMI.txt");double high, weight;cout << "BMI for aldult:" << endl;cout << "tips:输入时如无小数点加.0" << endl;cout << "input your high(M)" << endl;cin >> high;cout << "input your weight(kg)" << endl;cin >> weight;double BMIn = weight / (high * high);//19.65BMI_ALL student[4];for(int i = 0; i < 3; i++){fin >> student[i].lv >> student[i].score_small >> student[i].score_big;//录入等级}/*for(int i = 0; i < 3; i++){cout << student[i].lv << student[i].score_small << student[i].score_big << endl;}*/for(int i = 0; i < 3; i++)if(BMIn >= student[i].score_small && BMIn <= student[i].score_big){cout << "BMI值=" << BMIn << endl;OUTlevel(student[i].lv);if(i == 1)cout << "恭喜!达到正常水平!" << endl;//是否达到正常水平elseCheckAndOut(BMIn, high, weight);//否则不正常-二阶查看//cout << "check loop" << endl;}//cout << "check loop" << endl;system("pause");system("cls");return; } void BMI_ALDULT() {ifstream fin("AldBMI.txt");double high, weight;cout << "BMI for aldult:" << endl;cout << "tips:输入时如无小数点加.0" << endl;cout << "input your high(M)" << endl;cin >> high;cout << "input your weight(kg)" << endl;cin >> weight;double BMIn = weight / (high * high);//19.65BMI_ALL student[4];for(int i = 0; i < 3; i++){fin >> student[i].lv >> student[i].score_small >> student[i].score_big;//录入等级}/*for(int i = 0; i < 3; i++){cout << student[i].lv << student[i].score_small << student[i].score_big << endl;}*/for(int i = 0; i < 3; i++)if(BMIn >= student[i].score_small && BMIn <= student[i].score_big){cout << "BMI值=" << BMIn << endl;OUTlevel(student[i].lv);if(i == 1)cout << "恭喜!达到正常水平!" << endl;//是否达到正常水平elseCheckAndOut(BMIn, high, weight);//否则不正常-二阶查看//cout << "check loop" << endl;}//cout << "check loop" << endl;system("pause");system("cls");return; } int main() {BMI_m();return 0; }
详细文件、代码、exe文件链接:
https://download.csdn.net/download/cool99781/12149691
相关知识
BMI指数测量——c++ 1.0.0
C程序计算身体质量指数「BMI」
C程序计算身体质量指数(BMI)
身体质量指数(BMI)测试
体质指数BMI=()。
身体质量指数(BMI)测量系统设计与实现开题报告
BMI指数(身体质量指数)
身体质量指数(BMI)
自测“身体健康指数”(BMI)
「BMI指数」BMI指数的介绍
网址: BMI指数测量——c++ 1.0.0 https://m.trfsz.com/newsview1693528.html