基于C++實(shí)現(xiàn)BMI身體質(zhì)量指數(shù)計(jì)算工具
1. 知識(shí)介紹
BMI
(Body Mass Index,身體質(zhì)量指數(shù)),也稱(chēng)為體重指數(shù),是一種常用的衡量成人人體肥胖程度的指標(biāo)。它通過(guò)身高和體重之間的數(shù)值關(guān)系來(lái)評(píng)估一個(gè)人的體重是否適中。
BMI的計(jì)算公式如下:
BMI = 體重(kg)/ (身高(m) * 身高(m))
根據(jù)計(jì)算得到的BMI值,可以將人體的體重狀況分為以下幾個(gè)范圍:
- BMI < 18.5:體重過(guò)輕
- 18.5 <= BMI < 24:體重正常
- 24 <= BMI < 28:超重
- BMI >= 28:肥胖
雖然BMI是一種常用的評(píng)估指標(biāo),但它僅僅是通過(guò)身高和體重的比值來(lái)進(jìn)行估算,并沒(méi)有考慮到體脂肪和肌肉的比例以及身體的其他組成。因此,在評(píng)估個(gè)體的體重狀況時(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 << "體重過(guò)輕" << endl; } else if (bmi >= 18.5 && bmi < 24) { cout << "正常范圍" << endl; } else if (bmi >= 24 && bmi < 28) { cout << "體重過(guò)重" << endl; } else if (bmi >= 28 && bmi < 32) { cout << "肥胖" << endl; } else { cout << "非常肥胖" << endl; } } int main() { double weight, height; cout << "請(qǐng)輸入體重(千克):"; cin >> weight; cout << "請(qǐng)輸入身高(米):"; 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 * 自動(dòng)創(chuàng)建的信號(hào)槽 */ void on_pb_calculate_clicked(); /** * @brief printBMI * 手動(dòng)創(chuàng)建的信號(hào)槽 */ 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("體重過(guò)輕"); } else if (bmi >= 18.5 && bmi < 24) { ui->tb_display->append("正常范圍"); } else if (bmi >= 24 && bmi < 28) { ui->tb_display->append("體重過(guò)重"); } 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt掃盲篇之QRegularExpression正則匹配總結(jié)
QRegularExpression是Qt5.0引進(jìn)的,修復(fù)了很多bug,提高了效率,使用時(shí)建議使用QRegularExpression,下面這篇文章主要給大家介紹了關(guān)于Qt掃盲篇之QRegularExpression正則匹配的相關(guān)資料,需要的朋友可以參考下2023-03-03詳解C++成員函數(shù)的override和final說(shuō)明符的用法
這篇文章主要介紹了詳解C++成員函數(shù)的override和final說(shuō)明符的用法,分別用于重寫(xiě)和禁止繼承類(lèi),要的朋友可以參考下2016-01-01