基于C++實現(xiàn)BMI身體質(zhì)量指數(shù)計算工具
1. 知識介紹
BMI(Body Mass Index,身體質(zhì)量指數(shù)),也稱為體重指數(shù),是一種常用的衡量成人人體肥胖程度的指標(biāo)。它通過身高和體重之間的數(shù)值關(guān)系來評估一個人的體重是否適中。
BMI的計算公式如下:
BMI = 體重(kg)/ (身高(m) * 身高(m))
根據(jù)計算得到的BMI值,可以將人體的體重狀況分為以下幾個范圍:
- BMI < 18.5:體重過輕
- 18.5 <= BMI < 24:體重正常
- 24 <= BMI < 28:超重
- BMI >= 28:肥胖
雖然BMI是一種常用的評估指標(biāo),但它僅僅是通過身高和體重的比值來進(jìn)行估算,并沒有考慮到體脂肪和肌肉的比例以及身體的其他組成。因此,在評估個體的體重狀況時,還應(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...";
/* 終端輸出計算值 */
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++實現(xiàn)BMI身體質(zhì)量指數(shù)計算工具的文章就介紹到這了,更多相關(guān)C++ BMI計算工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt掃盲篇之QRegularExpression正則匹配總結(jié)
QRegularExpression是Qt5.0引進(jìn)的,修復(fù)了很多bug,提高了效率,使用時建議使用QRegularExpression,下面這篇文章主要給大家介紹了關(guān)于Qt掃盲篇之QRegularExpression正則匹配的相關(guān)資料,需要的朋友可以參考下2023-03-03
詳解C++成員函數(shù)的override和final說明符的用法
這篇文章主要介紹了詳解C++成員函數(shù)的override和final說明符的用法,分別用于重寫和禁止繼承類,要的朋友可以參考下2016-01-01

