编写java bmi和bmr计算器使用度量转换

时间:2016-01-29 20:50:38

标签: java

我似乎在自己的编程中迷失了自我。直接在下面是结果假设的样子。我迫切需要帮助,因为我是java编码的新手并且很快意识到我不是很擅长。请填写免费以根据需要更正代码。当我知道错误是什么时,我会学得更好。感谢您提供的任何帮助。

该程序实施健康援助计算器

考虑到体重,身高和年龄,它会计算:

BMI - 体重指数

每天保持体重所需的卡路里

请以磅为单位输入您的体重:150

请输入您的身高(英寸):66

请输入您的年龄:30

您的BMI是24.3

BMI在18.5到24.9范围内被认为是正常的

保持目前的体重:

男性每天需要2249卡路里

女性每天需要2018卡路里

方法1:显示程序将对用户执行的操作的说明的方法。 o此方法不具有任何参数或返回值。 方法2:计算人的BMI的方法。这种方法必须: o有2个参数:以千克为单位的重量和以米为单位的高度 o使用java.Math类中的pow方法来平方高度 o返回一个double值:计算的BMI 方法3& 4:计算热量需求的两种方法,一种用于男性,一种用于a 女人。每种方法都必须: o有3个参数:以千克为单位的重量,以米为单位的高度和年龄 o将高度转换为厘米。 o计算热量要求。 o使用java.Math类中的一种舍入方法将答案四舍五入 返回之前的数字。请注意,您可能需要使用强制转换来转换值 从java.Math方法返回到整数。 o返回一个整数值:维持当前体重所需的每日卡路里 方法5:显示结果的方法,没有返回值。这种方法必须: o有3个参数:一个人的BMI,男性的卡路里和女性的卡路里 o使用printf方法显示描述和BMI,四舍五入到小数点后一位 来自System.out类 o显示维持男性当前体重所需的每日卡路里 o显示维持女性当前体重所需的每日卡路里

enter code here


package healthy;
import java.util.*;
import java.lang.Math;
public class Healthy {

public static void main(String[] args) {
Scanner console = new Scanner(System.in);
printIntroduction(); 
double kg = .453592;
double feet = .3048;        
double bmi = BMIinput(console);
double age = InputAge(console);
double Wt = InputWeight(console);
double Ht = InputHeight(console);
double MetricConvert = Metric();
String status = getStatus(bmi);
String converted = getConverted(MetricConvert);

}
//Prints program description
public static void printIntroduction(){
System.out.println("This program Implements a Health Assistance Calculator")
System.out.println("Given a Weight, Height, and age, it will compute: ");
System.out.println("    BMI - body mass index");
System.out.println("    Calories needed per day to maintain weight");
System.out.println("");

} 
//Prompts user to input weight, height and age.
public static double BMIinput(Scanner console){
    System.out.println("Please enter your weight in pounds: ");
    double Inputweight = console.nextDouble();
    System.out.println("please enter your height in inches: ");
    double Inputheight = console.nextDouble();
    System.out.println("please enter your age in years: ");
    double InputAge = console.nextDouble();
            return BMIto(weight, height);
}  
// Calculates BMI based on user inputs
public static double BMIto(double weight, double height){
    return weight / Math.pow(height, 2);
}
// convert input height and weight to metric
public static String getConverted(double Metricconvert){
    double Ht * kg;
    double Wt * feet;
    return getConverted;
}
// displays Users Health status based off of bmi
public static String getStatus(double bmi) {
    if (bmi < 18.5) {
    return "A BMI below the range 18.5 to 24.9 is considered  underweight}
    } else if (bmi < 25) {
        return "A BMI in the range of 18.5 to 24.9 is considered normal";
    } else if (bmi < 30) {
        return "A BMI above range of 18.5 to 24.9 is considered overweight";
    } else {
        return "A BMI over 30 is obese";
    }   
}
} 
public static double round(double value, int digits) {
return Math.round(value * Math.pow(10, digits)) / Math.pow(10, digits);
}

}

1 个答案:

答案 0 :(得分:0)

这段代码存在许多问题,包括它甚至不编译的事实。您有很多导致此问题的语法问题。

例如,方法getConverted(double Metricconvert)中的局部变量声明被破坏。我不确定你想要的计算究竟是什么样的,但更正确的方法定义看起来像这样(这当然是基于你有字段HtWt的事实,并且它们应该是类变量。

public static void getConverted(double Metricconvert) {
    Ht = Metricconvert * kg;
    Wt = Metricconvert * feet;
}

语法错误的另一个例子是您的String个返回值之一的问题(这一个:A BMI below the range 18.5 to 24.9 is considered underweight)。您已使用右括号结束该返回语句,并应使用引号"关闭。

首先应修复此段代码中的语法错误,然后处理其他问题,例如输出错误。