【C++】BMI身体质量指数计算工具

2023-10-17 20:44

本文主要是介绍【C++】BMI身体质量指数计算工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍BMI身体质量指数计算工具。
学其所用,用其所学。——梁启超
欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞

文章目录

    • :smirk:1. 知识介绍
    • :blush:2. c++终端程序
    • :satisfied:3. qt界面程序

😏1. 知识介绍

BMI(Body Mass Index,身体质量指数),也称为体重指数,是一种常用的衡量成人人体肥胖程度的指标。它通过身高和体重之间的数值关系来评估一个人的体重是否适中。

BMI的计算公式如下:

BMI = 体重(kg)/ (身高(m) * 身高(m))

根据计算得到的BMI值,可以将人体的体重状况分为以下几个范围:

BMI < 18.5:体重过轻
18.5 <= BMI < 24:体重正常
24 <= BMI < 28:超重
BMI >= 28:肥胖

虽然BMI是一种常用的评估指标,但它仅仅是通过身高和体重的比值来进行估算,并没有考虑到体脂肪和肌肉的比例以及身体的其他组成。因此,在评估个体的体重状况时,还应考虑其他因素,如体脂肪百分比、腰围、腰臀比等。

😊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指数为:" << 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_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:/*** @brief on_pb_calculate_clicked* 自动创建的信号槽*/void on_pb_calculate_clicked();/*** @brief printBMI* 手动创建的信号槽*/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("非常肥胖");}
}

请添加图片描述

以上。

这篇关于【C++】BMI身体质量指数计算工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/227851

相关文章

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

C++字符串提取和分割的多种方法

《C++字符串提取和分割的多种方法》在C++编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时,本文将详细探讨如何使用C++标准库中的工具来提取和分割字符串,并分析不同方法的适用... 目录1. 字符串提取的基本方法1.1 使用 std::istringstream 和 >> 操作符示

C++原地删除有序数组重复项的N种方法

《C++原地删除有序数组重复项的N种方法》给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度,不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(... 目录一、问题二、问题分析三、算法实现四、问题变体:最多保留两次五、分析和代码实现5.1、问题分析5.

jvm调优常用命令行工具详解

《jvm调优常用命令行工具详解》:本文主要介绍jvm调优常用命令行工具的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一 jinfo命令查看参数1.1 查看jvm参数二 jstack命令2.1 查看现场堆栈信息三 jstat 实时查看堆内存,gc情况3.1