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

news2024/11/17 23:28:07

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

文章目录

    • :smirk:1. 知识介绍
    • :blush:2. Java终端程序
    • :satisfied:3. Java-Swing界面程序

😏1. 知识介绍

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

BMI的计算公式如下:

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

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

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

😊2. Java终端程序

在这里插入图片描述

package org.example;

import java.util.Scanner;

public class Main {
    /*
     * main函数是程序的入口函数
     */
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        System.out.println("欢迎使用BMI计算器");
        System.out.print("请输入您的体重(kg):");
        double weight = input.nextDouble();

        System.out.print("请输入您的身高(m):");
        double height = input.nextDouble();

        double bmi = calculateBMI(weight, height);
        System.out.println("您的BMI指数为:" + bmi);
        System.out.println("BMI指数结果解读:");
        interpretBMI(bmi);

        input.close();

    }

    /**
     * BMI计算
     * @param weight
     * @param height
     * @return
     */
    public static double calculateBMI(double weight, double height) {
        return weight / (height * height);
    }

    /**
     * BMI解读
     * @param bmi
     */
    public static void interpretBMI(double bmi) {
        if (bmi < 18.5) {
            System.out.println("您的体重过轻");
        } else if (bmi < 24) {
            System.out.println("您的体重正常");
        } else if (bmi < 28) {
            System.out.println("您的体重超重");
        } else {
            System.out.println("您的体重肥胖");
        }
    }

}

😆3. Java-Swing界面程序

可以使用 JTextFields 用于输入体重和身高,使用JButton 触发计算,并使用JLabel显示结果。

在这里插入图片描述

package org.example;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Dimension;

public class Main extends JFrame {
    private JTextField weightField;
    private JTextField heightField;
    private JLabel resultLabel;

    public Main() {
        setTitle("BMI计算器");
        setSize(675, 120);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 获取屏幕尺寸
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        int screenWidth = (int) screenSize.getWidth();
        int screenHeight = (int) screenSize.getHeight();

        // 计算窗口显示位置
        int x = (screenWidth - getWidth()) / 2;
        int y = (screenHeight - getHeight()) / 2;
        setLocation(x, y);

        // 创建面板
        JPanel panel = new JPanel();
        JLabel weightLabel = new JLabel("体重(kg):");
        weightField = new JTextField(10);
        JLabel heightLabel = new JLabel("身高(m):");
        heightField = new JTextField(10);
        JButton calculateButton = new JButton("计算");
        resultLabel = new JLabel();

        calculateButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                double weight = Double.parseDouble(weightField.getText());
                double height = Double.parseDouble(heightField.getText());
                double bmi = calculateBMI(weight, height);
                String interpretation = interpretBMI(bmi);
                resultLabel.setText("您的BMI指数为:" + bmi + ",结果解读:" + interpretation);
            }
        });

        panel.add(weightLabel);
        panel.add(weightField);
        panel.add(heightLabel);
        panel.add(heightField);
        panel.add(calculateButton);
        panel.add(resultLabel);
        add(panel);
    }

    private double calculateBMI(double weight, double height) {
        return weight / (height * height);
    }

    private String interpretBMI(double bmi) {
        if (bmi < 18.5) {
            return "您的体重过轻";
        } else if (bmi < 24) {
            return "您的体重正常";
        } else if (bmi < 28) {
            return "您的体重超重";
        } else {
            return "您的体重肥胖";
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Main().setVisible(true);
            }
        });
    }
}

请添加图片描述

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1180820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服装和纺织品在欧盟和英国售卖需要做哪些认证?REACH认证、EN14682认证

近期&#xff0c;不少亚马逊卖家在欧洲和应该售卖纺织品和服装都遇到了安全问题&#xff0c;下架的理由都是不符合产品安全的要求&#xff0c;下架邮件有以下几种&#xff1a; ①标签不合规 ②不符合安全标准 那么&#xff0c;纺织品出口到欧盟和英国&#xff0c;具体有哪些要…

智能井盖传感器功能,万宾科技产品介绍

在国家治理方面&#xff0c;对社会的治理是一个重要的领域&#xff0c;一定要在推进社会治理现代化过程中提高市政府的管理和工作能力&#xff0c;推动社会拥有稳定有序的发展。在管理过程中对全市井盖进行统一化管理&#xff0c;可能是市政府比较头疼的难题&#xff0c;如果想…

新开普智慧校园系统RCE漏洞 [附POC]

文章目录 新开普智慧校园系统RCE漏洞 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 新开普智慧校园系统RCE漏洞 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#x…

某集团营销、制造多公司业财一体核算整体流程图(ODOO15/16)

某集团旗下有销售公司、加工制造厂、原料生产厂等多家公司&#xff0c;此类型公司从客户订单到完成交货&#xff0c;业务环节相对复杂&#xff0c;业务单据多&#xff0c;出纳银行收付款流水多、对象多&#xff0c;难以正确核销&#xff0c;跟单部难以全面了解订单进度&#xf…

【亲测推荐】魔方财务和魔方云系统开源全解密

简介 资源入口点击进入 众所周知&#xff0c;魔方财务现在官方售价299&#xff0c;那么接下来就是带来开心版&#xff0c;详细手写实测安装教程已经放在付费资源中 展示 > 本文由博客一文多发平台 [OpenWrite](https://openwrite.cn?fromarticle_bottom) 发布&#xff01;

大数据之LibrA数据库系统告警处理(ALM-12029 license文件失效)

告警解释 系统在安装集群后和每天零点检查当前系统中的license文件是否失效&#xff08;即当前集群中导入的license文件的节点数是否超限&#xff0c;license文件是否过期&#xff09;。如果license文件失效&#xff0c;产生该告警。 当license文件有效时&#xff0c;告警恢复…

Java使用FTP连接到NAS读取文件信息,并将文件信息变成单向树形结构设置到对象中

检测NAS是否启用的FTP连接模式 如果这里不启用会出现下面错误提示&#xff1a; MalformedServerReplyException: Could not parse response code. Server Reply: SSH-2.0-OpenS 使用依赖 <dependency><groupId>commons-net</groupId><artifactId>comm…

【高德地图API】JS高德地图实现点标连线,高德地图实现点跟点连线,高德地图实现连线

前言 高德地图API参考&#xff1a;https://lbs.amap.com/demo/javascript-api/example/marker/custom-icon 实现各个点标的经纬度连线&#xff0c;点击点标可查看内容&#xff08;自定义的&#xff09; 效果 实现 案例实现&#xff0c;复制粘贴&#xff0c;将安全密钥和key替…

个性化联邦学习-综述

介绍阅读的三篇个性化联邦学习的经典综述文章 Three Approaches for Personalization with Applications to Federated Learning 论文地址 文章的主要内容 介绍了用户聚类&#xff0c;数据插值&#xff0c;模型插值三种个性化联邦学习的方法。 用户聚类&#xff1a; 目的&a…

工作四年,我学会了用 Idea本地调试线上服务器代码

文章目录 工作四年&#xff0c;我学会了用 Idea本地调试线上服务器代码&#x1f4c6; 一.那些辛酸的过往&#x1f4d5;二.远程debug原理远程调试分类主动连接调试&#xff1a;被动连接调试&#xff1a; &#x1f44b;三.操作步骤3.1.准备一个简单springboot程序 例如helloworld…

【带头学C++】----- 三、指针章 ---- 3.11 补充重要指针知识

1.指针的指针&#xff08;多级指针&#xff09; 指针的指针&#xff08;Pointer to Pointer&#xff09;是指一个指向指针的指针变量。也就是说&#xff0c;它存储了一个指向指针的内存地址。在C中&#xff0c;指针的指针可以用来传递多个指针参数&#xff0c;或者用于在函数内…

期中成绩发布啦

期中考试过后&#xff0c;老师们最头疼的事情之一就是成绩的录入和发布。而学生们最关心的事情之一则是如何能够快速、方便地查询到自己的成绩。那么&#xff0c;如何让学生自主查询成绩呢&#xff1f;下面就给大家介绍几种简单实用的方法。 一、使用学校官网或教务系统查询 现…

1698 - Access denied for user ‘root‘@‘192.168.229.1‘

目录 1. 问题现象 2. 问题分析及解决方法 1. 问题现象 在使用mysql连接工具连接mysql的时候如下&#xff1a; 出现了如下错误&#xff1a; 2. 问题分析及解决方法 出现这种错误一般有两种情况&#xff1a;一种是密码输入错误&#xff0c;重新检查一下密码再试一下&#xf…

后期混音效果全套插件Waves 14 Complete mac中文版新增功能

Waves 14 Complete for Mac是一款后期混音效果全套插件&#xff0c;Waves音频插件,内置混响&#xff0c;压缩&#xff0c;降噪和EQ等要素到建模的模拟硬件&#xff0c;环绕声和后期制作工具&#xff0c;包含全套音频效果器&#xff0c;是可以让你使用所有功能。Waves 14 Comple…

简述SVM

概述 SVM&#xff0c;即支持向量机&#xff08;Support Vector Machine&#xff09;&#xff0c;是一种常见的监督学习算法&#xff0c;用于分类和回归问题。它是一种基于统计学习理论和结构风险最小化原则的机器学习方法。 SVM的主要思想是在特征空间中找到一个最优的超平面…

智慧农业:农林牧数据可视化监控平台

数字农业是一种现代农业方式&#xff0c;它将信息作为农业生产的重要元素&#xff0c;并利用现代信息技术进行农业生产过程的实时可视化、数字化设计和信息化管理。能将信息技术与农业生产的各个环节有机融合&#xff0c;对于改造传统农业和改变农业生产方式具有重要意义。 图扑…

AVL平衡树的插入

//AVL搜索树 //对数据的搜索&#xff1a; 1&#xff1a;暴力查找遍历 // 2:二叉树 有序&#xff0c;但是伴随着插入删除&#xff0c;维护成本很高 // 3&#xff1a;二叉搜索树 问题&#xff1a;在极端情况下&#xff0c;会退化成最开始的链表 // …

inne所属公司抢注“童年时光”商标仍被冻结

根据中国商标网查询&#xff0c;国家知识产权局已于2023年3月10日裁定&#xff0c;被告inne所属的南京童年时光生物技术有限公司注册的“童年时光”商标无效。随着这起保健品行业品牌资产争夺事件的发酵&#xff0c;更多的细节得到披露&#xff0c;至此&#xff0c;一个从“代理…

低代码+RPA,会发生什么?

据相关研究表明&#xff0c;每个企业员工每天至少花1-2个小时完成文件归档、数据输入等工作&#xff0c;而这些工作都是可以通过自动化的方式完成的。 如今&#xff0c;不少企业正专注于工作流程自动化&#xff0c;希望能花最少的时间完成重复性工作&#xff0c;机器人流程自动…

Python基础入门(17)----Python虚拟环境:为何要用虚拟环境、如何使用virtualenv

文章目录 在Python开发中,虚拟环境是一个独立的目录树,可以在其中安装Python模块。每个虚拟环境都有自己的Python二进制文件和一组安装的库。使用虚拟环境的主要原因是为了避免项目间的依赖冲突,允许每个项目有其特定的依赖,而不影响全局安装的模块。 为何要用虚拟环境 依…