返回顶部
首页 > 资讯 > 后端开发 > Python >基于Java实现简单的身材计算程序
  • 440
分享到

基于Java实现简单的身材计算程序

Java身材计算程序Java身材计算Java身材 2022-12-21 12:12:52 440人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录效果展示完整代码效果展示 完整代码 代码比较简单,也有注释,就不再详细做介绍啦。 import java.util.Scanner; public class Main e

效果展示

完整代码

代码比较简单,也有注释,就不再详细做介绍啦。


import java.util.Scanner;

public class Main extends Common {
    public static void main(String[] args) {
        // 身体健康计算情况
        // 开始
        start();
        boolean flag = true;
        Person person = new Person();
        while (flag) {
            showRule();
            String inText = in();
            while (inText == null || inText == "") {
                show("输入错误,请检查是否有输入。");
                inText = in();
            }
            switch (inText) {
                case "0":
                    show("欢迎下次光临南方者小测!");
                    flag = false;
                    break;
                case "1":
                    person.inName(); // 输入名字(如:南方者)
                    person.inSex(); // 输入性别
                    person.inAge(); // 输入年龄
                    person.inHeight(); // 输入身高
                    person.inWeight(); // 输入体重
                    person.inBust(); // 输入胸围
                    person.inWaist(); // 输入腰围
                    person.inHip(); // 输入臀围
                    break;
                case "2": // 显示`BMI`计算公式
                    showBMI();
                    break;
                case "3": // 计算`BMI`值
                    person.countBMI();
                    break;
                case "4": // 显示`体脂率值`计算公式
                    showBF();
                    break;
                case "5": // 计算`体脂率值`
                    person.countBF();
                    break;
                case "6":
                    person.display();
                    break;
                default:
                    show("输入错误,请检查是否有输入。");
            }

        }
    }

    public static void start() {
        show("********************************");
        show("计算身体健康情况 - by nanfangzhe");
        show("---------------------------------");
        show("说明:");
        show("1. 输入的参数值越多,计算标准越多。");
        show("2. 根据提示进入下一步。");
        show("(注:仅靠简单数据计算出的结果,都有可能的误差在8%以内;请以医院医生数据为标准。)");
        show("---------------------------------");
    }

    
    public static void showRule() {
        show("---------------------------------");
        show("输入提示:0 退出;1 输入/修改参数;2 显示`BMI`计算公式;\n     3计算`BMI`值;4 显示`体脂率值`计算公式;5 计算`体脂率值`;6 输出个人情况;");
        show("---------------------------------");
    }

    
    public static void showBF() {
        show("********************************");
        show("计算体脂率:1.2×BMI+0.23×年龄-5.4-10.8×性别(男1,女0)");
        show("---------------------------------");
        show("丨 类型 丨   体脂率范围");
        show("丨  男  丨   15%~18%");
        show("丨  女  丨   20%~30%");
        show("---------------------------------");
    }

    
    public static void show3Point() {
        show("********************************");
        show("标准三围计算");
        show("-----------------------------------");
        show("丨 类型 丨     男    丨       女       ");
        show("丨 胸围 丨 身高×0.61 丨 身高×0.61×0.9  ");
        show("丨 腰围 丨 身高×0.42 丨 身高×0.42×0.89 ");
        show("丨 臀围 丨 身高×0.64 丨 身高×0.64×1.02 ");
        show("-----------------------------------");
    }

    public static void showBMI() {
        show("********************************");
        show("BMI 中国标准(计算公式:BMI = 体重(kg)/ 身高的平方(m)");
        show("---------------------------------");
        show("丨 分类 丨   BMI 范围     ");
        show("丨 偏瘦 丨   <= 18.4     ");
        show("丨 正常 丨 18.5 ~ 23.9  ");
        show("丨 过重 丨 24.0 ~ 27.9   ");
        show("丨 肥胖 丨   >= 28.0     ");
        show("---------------------------------");
    }

}


class Person extends Common {
    static String notInputText = "(待输入)";
    String name = "你"; // 姓名 默认称呼 “你”
    int age; // 年龄
    int sex = -1; // 性别(1男 0女)
    float height; // 体重
    float weight; // 身高
    float bmi; // BMI值
    float bust; // 胸围
    float waist; // 腰围
    float hip; // 臀围
    float canonBust; // 标准胸围
    float canonWaist; // 标准腰围
    float canonHip; // 标准臀围
    float bf; // 体脂率
    String text = "暂无";


    public void inName() {
        show("输入姓名");
        this.name = in();
    }


    public void inAge() {
        show("输入年龄");
        String str = in();
        while (!isNumber(str)) {
            show("输入格式错误,请检查。(格式:整数;如:18岁,输入18(多余小数会自动去掉)");
            str = in();
        }
        try {
            float f = Float.parseFloat(str);
            this.age = (int) f;
        } catch (Exception e) {
            show("输入错误,请重试。");
            this.inAge();
        }
    }


    public void inSex() {
        show("输入性别(男1 女0 其他为跳过)");
        String str = in();
        while (!isNumber(str)) {
            show("输入格式错误,请检查。(格式:整数;男1 女0");
            str = in();
        }
        try {
            float f = Float.parseFloat(str);
            if (f == 0 || f == 1) {
                this.sex = (int) f;
            }
        } catch (Exception e) {
            show("输入错误,请重试。");
            this.inSex();
        }
    }


    public void inHeight() {
        show("输入身高(输入0为跳过)");
        String str = in();
        while (!isNumber(str)) {
            show("输入格式错误,请检查。(格式为:数字;例如身高184cm,输入184)");
            str = in();
        }
        try {
            if (isZero(str)) {
                // 0为跳过
                return;
            }
            this.height = Float.parseFloat(str);
        } catch (Exception e) {
            show("输入错误,请重试。");
            this.inHeight();
        }
    }


    public void inWeight() {
        show("输入体重(输入0为跳过)");
        String str = in();
        while (!isNumber(str)) {
            show("输入格式错误,请检查。(格式为:数字;例如体重90.2kg,输入90.2)");
            str = in();
        }
        try {
            if (isZero(str)) {
                // 0为跳过
                return;
            }
            this.weight = Float.parseFloat(str);
        } catch (Exception e) {
            show("输入错误,请重试。");
            this.inWeight();
        }
    }


    public void inBust() {
        show("输入胸围(输入0为跳过)");
        String str = in();
        while (!isNumber(str)) {
            show("输入格式错误,请检查。(格式为:数字;例如胸围37.5,输入37.5)");
            str = in();
        }
        try {
            if (isZero(str)) {
                return;
            }
            this.bust = Float.parseFloat(str);
        } catch (Exception e) {
            show("输入错误,请重试。");
            this.inBust();
        }
    }


    public void inWaist() {
        show("输入腰围(输入0为跳过)");
        String str = in();
        while (!isNumber(str)) {
            show("输入格式错误,请检查。(格式为:数字;例如腰围50.5,输入50.5)");
            str = in();
        }
        try {
            if (isZero(str)) {
                return;
            }
            this.waist = Float.parseFloat(str);
        } catch (Exception e) {
            this.inWaist();
            show("输入错误,请重试。");
        }
    }


    public void inHip() {
        show("输入臀围(输入0为跳过)");
        String str = in();
        while (!isNumber(str)) {
            show("输入格式错误,请检查。(格式为:数字;例如臀围50.5,输入50.5)");
            str = in();
        }
        try {
            if (isZero(str)) {
                return;
            }
            this.hip = Float.parseFloat(str);
        } catch (Exception e) {
            this.inHip();
            show("输入错误,请重试。");
        }
    }

    
    public void countBMI() {
        if (this.weight == 0 || this.weight < 1 || this.height < 1) {
            show("请检查当前的身高和体重是否有值。(计算 BMI 失败!");
            return;
        }
        this.bmi = this.weight / (this.height * this.height) * 100 * 100;  // 身高是以米为单位(因此,乘上两个100)
        show("计算成功!你的BMI值为:" + this.bmi);
    }

    
    public void count3Point() {
        if (this.height == 0 || this.height < 1 || (this.sex != 0 && this.sex != 1)) {
            show("请检查当前的身高和性别是否有值。(计算标准三围失败!");
            return;
        }
        this.canonBust = this.height * 0.61f;
        this.canonWaist = this.height * 0.42f;
        this.canonHip = this.height * 0.64f;

        // 如果是女性,需要乘上对应的参数
        if (this.sex == 0) {
            this.canonBust *= 0.9f;
            this.canonWaist *= 0.89f;
            this.canonHip *= 1.02f;
        }
    }

    
    public void countBF() {
        if (this.bmi == 0 || this.age == 0 || (this.sex != 0 && this.sex != 1)) {
            show("请检查当前的身高、体重、年龄、性别是否有值。(计算 体脂率 失败!");
            return;
        }
        this.bf = this.bmi * 1.2f + 0.23f * this.age - 5.4f - 10.8f * this.sex;
        show("计算成功!你的体脂率值为:" + this.bf);
    }

    public void display() {
//        countBMI();
//        count3Point();
//        countBF();
        // 输出身体情况
        String ageStr = "" + (this.age == 0 ? notInputText : this.age);
        String sexStr = this.sex == -1 ? notInputText : (this.sex == 1 ? "男" : "女");
        String heightStr = this.height == 0 ? notInputText : (this.height + "cm");
        String weightStr = this.weight == 0 ? notInputText : (this.weight + "kg");
        String bmiStr = this.bmi == 0 ? notInputText : this.bmi + "";
        String bfStr = this.bf == 0 ? notInputText : this.bf + "";
        show(this.name + "的身体情况");
        show("---------------------------------");
        show("丨  类型  丨   值");
        show("---------------------------------");
        show("丨  年龄  丨   " + ageStr);
        show("丨  性别  丨   " + sexStr);
        show("丨  身高  丨   " + heightStr);
        show("丨  体重  丨   " + weightStr);
        show("丨  BMI   丨   " + bmiStr);
        show("丨  体脂率 丨   " + bfStr);
        show("丨  最终建议:  " + this.text);
        show("---------------------------------");
    }

    public boolean isNumber(String str) {
        String regex = "\d+(.\d+)?";
        return str.matches(regex);
    }

    public static boolean isZero(String str) {
        return Float.parseFloat(str) == 0;
    }
}

class Common {
    
    public static void show(String str) {
        System.out.println(str);
    }

    
    public static String in() {
        Scanner scanner = new Scanner(System.in);
        String next = scanner.next();
        while (next == null || next.isEmpty() || next.trim().isEmpty()) {
            show("输入有误,请重新输入。");
            next = scanner.next();
        }
        return next;
    }
}

到此这篇关于基于Java实现简单的身材计算程序的文章就介绍到这了,更多相关Java身材计算内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 基于Java实现简单的身材计算程序

本文链接: https://lsjlt.com/news/175436.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于Java实现简单的身材计算程序
    目录效果展示完整代码效果展示 完整代码 代码比较简单,也有注释,就不再详细做介绍啦。 import java.util.Scanner; public class Main e...
    99+
    2022-12-21
    Java身材计算程序 Java身材计算 Java身材
  • Java实现简单计算器小程序
    本文实例为大家分享了Java实现简单计算器小程序的具体代码,供大家参考,具体内容如下 这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的...
    99+
    2024-04-02
  • 基于Java实现简单的时序数据压缩算法
    目录背景整数VarintZigZagDelta2Simple8b浮点数有损压缩无损压缩字符串标签型非标签型背景 今年在公司内部主导了两个的行情数据系统的构建,两者均使用到了常见的时序...
    99+
    2024-04-02
  • 小程序实现简单的计算器
    本文实例为大家分享了小程序实现简单计算器的具体代码,供大家参考,具体内容如下 #app.json { "pages": [ "pages/index/index",...
    99+
    2024-04-02
  • Java程序设计基础实验一Java简单程序设计
    实验一 JAVA简单程序设计 一、实验目的 1.掌握Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序。 2.掌握同时编译多个Java文件。 3.掌握char型数据和int型数据之间的相互转换,同时了解Unicode字符表。 ...
    99+
    2023-10-11
    java
  • 基于HTML+JS实现简单的年龄计算器
    目录前言演示效果HTML代码CSS代码Javascript代码演示地址前言 在线演示地址:http://haiyong.site/age-calculator JavaScript提...
    99+
    2024-04-02
  • Java基于TCP如何实现简单聊天程序
    本篇内容介绍了“Java基于TCP如何实现简单聊天程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、如何实现TCP通信要实现TCP通信需...
    99+
    2023-06-29
  • 基于opencv+java实现简单图形识别程序
    目录前言方法如下总结前言 OpenCV的 全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视...
    99+
    2024-04-02
  • Java实战之基于TCP实现简单聊天程序
    目录一、如何实现TCP通信二、编写C/S架构聊天程序1.编写服务器端程序 - Server.java2.编写客户端程序 - Client.java3.测试服务器端与客户端能否通信4....
    99+
    2024-04-02
  • C#实现简单的计算器小程序
    作为一个程序员,如何从浅入深的训练自己的技术,可以通过一些小程序来训练下面简单介绍一下如何制作一个简单的计算器小程序 如下为制作之后的小程序截图 代码段 其中计算用了dataTab...
    99+
    2024-04-02
  • JavaScript实现简单计算器小程序
    本文实例为大家分享了JavaScript实现简单计算器的具体代码,供大家参考,具体内容如下 代码: <!DOCTYPE html> <html> <h...
    99+
    2024-04-02
  • java 简单的计算器程序实例代码
    java 简单的计算器程序实现实例:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator { public...
    99+
    2023-05-31
    java 计算器 ava
  • 小程序如何实现简单的计算器
    本篇内容介绍了“小程序如何实现简单的计算器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果如下:#app.json{  ...
    99+
    2023-06-08
  • 微信小程序实现简单计算器
    微信小程序写的简单计算器,供大家参考,具体内容如下 jisaunqi.js // pages/jisuanqi/jisuanqi.js Page({ data: {...
    99+
    2024-04-02
  • 基于JavaScript实现简易计算器
    本文实例为大家分享了JavaScript实现简易计算器的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"&g...
    99+
    2024-04-02
  • Java实现一个简单计算器
    先来看看界面效果: 源码如下: package test1;   import java.awt.Frame; import java.awt.TextField; import ...
    99+
    2024-04-02
  • 微信小程序实现简单的计算器功能
    本文实例为大家分享了微信小程序实现计算器功能的具体代码,供大家参考,具体内容如下 wxml <view class='content'> <input va...
    99+
    2024-04-02
  • 怎么用C#实现简单的计算器小程序
    这篇文章主要介绍“怎么用C#实现简单的计算器小程序”,在日常操作中,相信很多人在怎么用C#实现简单的计算器小程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C#实现简单的计算器小程序”的疑惑有所帮助!...
    99+
    2023-06-29
  • 微信小程序实现简单计算器功能
    微信小程序:简单计算器,供大家参考,具体内容如下 对于才接触小程序不久的人来说,想要直接上手一个实用性强的项目难度很大,想要快速熟悉小程序的使用,我们可以先尝试着做一个简单的计算器。...
    99+
    2024-04-02
  • 基于Vue方法实现简单计时器
    Vue简单的计时器,供大家参考,具体内容如下 原理:setInterval来每隔1s(可设置的时间间隔)运行一次自增方法,clearInterval来让持续运行的自增方法停止,来达到...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作