基于C++實(shí)現(xiàn)BMI身體質(zhì)量指數(shù)計(jì)算工具
1. 知識介紹
BMI(Body Mass Index,身體質(zhì)量指數(shù)),也稱為體重指數(shù),是一種常用的衡量成人人體肥胖程度的指標(biāo)。它通過身高和體重之間的數(shù)值關(guān)系來評估一個人的體重是否適中。
BMI的計(jì)算公式如下:
BMI = 體重(kg)/ (身高(m) * 身高(m))
根據(jù)計(jì)算得到的BMI值,可以將人體的體重狀況分為以下幾個范圍:
- BMI < 18.5:體重過輕
- 18.5 <= BMI < 24:體重正常
- 24 <= BMI < 28:超重
- BMI >= 28:肥胖
雖然BMI是一種常用的評估指標(biāo),但它僅僅是通過身高和體重的比值來進(jìn)行估算,并沒有考慮到體脂肪和肌肉的比例以及身體的其他組成。因此,在評估個體的體重狀況時(shí),還應(yīng)考慮其他因素,如體脂肪百分比、腰圍、腰臀比等。
2. c++終端程序

#include <iostream>
using namespace std;
double calculateBMI(double weight, double height) {
// 身高單位為米,體重單位為千克
double bmi = weight / (height * height);
return bmi;
}
void interpretBMI(double bmi) {
if (bmi < 18.5) {
cout << "體重過輕" << endl;
} else if (bmi >= 18.5 && bmi < 24) {
cout << "正常范圍" << endl;
} else if (bmi >= 24 && bmi < 28) {
cout << "體重過重" << endl;
} else if (bmi >= 28 && bmi < 32) {
cout << "肥胖" << endl;
} else {
cout << "非常肥胖" << endl;
}
}
int main() {
double weight, height;
cout << "請輸入體重(千克):";
cin >> weight;
cout << "請輸入身高(米):";
cin >> height;
double bmi = calculateBMI(weight, height);
cout << "你的BMI指數(shù)為:" << bmi << endl;
interpretBMI(bmi);
return 0;
}
3. qt界面程序

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDebug>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
/**
* @brief on_pb_calculate_clicked
* 自動創(chuàng)建的信號槽
*/
void on_pb_calculate_clicked();
/**
* @brief printBMI
* 手動創(chuàng)建的信號槽
*/
void printBMI();
/**
* @brief calculateBMI
* @param weight
* @param height
* @return double
*/
double calculateBMI(double weight, double height);
/**
* @brief interpretBMI
* @param bmi
*/
void interpretBMI(double bmi);
private:
Ui::MainWindow *ui;
double weight, height;
};
#endif // MAINWINDOW_H
// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
qDebug() << "start...";
/* 終端輸出計(jì)算值 */
double mybmi = calculateBMI(80, 1.73);
qDebug() << "terminal print: " << mybmi;
connect(ui->pb_calculate_2, SIGNAL(clicked()), this, SLOT(printBMI()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pb_calculate_clicked()
{
QString text = "Hello, BMI Tool! Auto created!";
ui->tb_display->append(text);
weight = ui->le_weight->text().toDouble();
height = ui->le_height->text().toDouble();
double bmi = weight / (height * height);
QString strBMI = QVariant(bmi).toString();
ui->tb_display->append(strBMI);
interpretBMI(bmi);
}
void MainWindow::printBMI()
{
QString text = "Hello, BMI Tool! Manual created!";
ui->tb_display->append(text);
weight = ui->le_weight->text().toDouble();
height = ui->le_height->text().toDouble();
double bmi = calculateBMI(weight, height);
QString strBMI = QVariant(bmi).toString();
ui->tb_display->append(strBMI);
interpretBMI(bmi);
}
double MainWindow::calculateBMI(double weight, double height)
{
double bmi = weight / (height * height);
return bmi;
}
void MainWindow::interpretBMI(double bmi)
{
if (bmi < 18.5) {
ui->tb_display->append("體重過輕");
} else if (bmi >= 18.5 && bmi < 24) {
ui->tb_display->append("正常范圍");
} else if (bmi >= 24 && bmi < 28) {
ui->tb_display->append("體重過重");
} else if (bmi >= 28 && bmi < 32) {
ui->tb_display->append("肥胖");
} else {
ui->tb_display->append("非常肥胖");
}
}
到此這篇關(guān)于基于C++實(shí)現(xiàn)BMI身體質(zhì)量指數(shù)計(jì)算工具的文章就介紹到這了,更多相關(guān)C++ BMI計(jì)算工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VC程序在Win32環(huán)境下動態(tài)鏈接庫(DLL)編程原理
這篇文章主要介紹了VC程序在Win32環(huán)境下動態(tài)鏈接庫(DLL)編程原理,包括了dll文件的原理與具體實(shí)現(xiàn)過程,對于深入掌握VC程序設(shè)計(jì)具有很好的參考借鑒價(jià)值,需要的朋友可以參考下2014-10-10
Ubuntu16.04下配置VScode的C/C++開發(fā)環(huán)境
這篇文章主要介紹了Ubuntu16.04下配置VScode的C/C++開發(fā)環(huán)境的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
C語言實(shí)現(xiàn)順序循環(huán)隊(duì)列實(shí)例
大家好,本篇文章主要講的是C語言實(shí)現(xiàn)順序循環(huán)隊(duì)列實(shí)例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02

