Edit this java code, adding a new method to calculate BMI, and a separate boolea
ID: 3863937 • Letter: E
Question
Edit this java code, adding a new method to calculate BMI, and a separate boolean method to validate the input data. Also, format the output using PrintF to match the screenshot.
import java.util.Scanner;
public class test {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("Name Heart Rate Resp Rate Height Weight BMI BP Score");
while(scanner.hasNext()){
String name = scanner.next();
int heartRate = scanner.nextInt();
int respiratoryRate = scanner.nextInt();
int height = scanner.nextInt();
int weight = scanner.nextInt();
int systolicPressure = scanner.nextInt();
int diastolicPressure = scanner.nextInt();
double BMI = (((double)weight)*0.453592d)/((((double)height)*0.0254)*(((double)height)*0.0254));
if(heartRate == 0 ||respiratoryRate == 0 ||height == 0 ||weight == 0 ||systolicPressure == 0 || diastolicPressure == 0)
{
System.out.print("Invalid record");
}
else
{
System.out.print(name+" ");
int score = 1;
if(heartRate>=60 && heartRate<=100){
score++;
System.out.print(heartRate+" ");
}
else{
System.out.print("!!"+heartRate+" ");
}
if(respiratoryRate>=12 && respiratoryRate<=18){
score++;
System.out.print(respiratoryRate+" ");
}
else{
System.out.print("!!"+respiratoryRate+" ");
}
{
System.out.print(name+" ");
int score = 1;
if(heartRate>=60 && heartRate<=100){
score++;
System.out.print(heartRate+" ");
}
else{
System.out.print("!!"+heartRate+" ");
}
if(respiratoryRate>=12 && respiratoryRate<=18){
score++;
System.out.print(respiratoryRate+" ");
}
else{
System.out.print("!!"+respiratoryRate+" ");
}
System.out.print(height+" ");
System.out.print(weight+" ");
System.out.print((BMI)+" ");
if((systolicPressure>=90 && systolicPressure<=120) && (diastolicPressure>=60 && diastolicPressure<=80)){
score++;
System.out.print(systolicPressure+"/"+diastolicPressure+" ");
}
else{
System.out.print("!!"+systolicPressure+"/" +diastolicPressure+" ");
}
for(int i=0;i<score;i++)
System.out.print("*");
}
System.out.println();
}
}
}
Explanation / Answer
Solution: See the updated code
-------------------------------------------------------------
import java.text.DecimalFormat;
import java.text.Format;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Name Heart Rate Resp Rate Height Weight BMI BP Score");
while (scanner.hasNext()) {
String name = scanner.next();
if (name.equalsIgnoreCase("exit"))
break;
int heartRate = scanner.nextInt();
int respiratoryRate = scanner.nextInt();
int height = scanner.nextInt();
int weight = scanner.nextInt();
int systolicPressure = scanner.nextInt();
int diastolicPressure = scanner.nextInt();
double BMI = calculateBMI(height, weight);
if (isInputDataValid(heartRate, respiratoryRate, height, weight, systolicPressure, diastolicPressure)) {
System.out.println("valid");
System.out.print(name + " ");
int score = 1;
if (heartRate >= 60 && heartRate <= 100) {
score++;
System.out.print(heartRate + " ");
} else {
System.out.print("!!" + heartRate + " ");
}
if (respiratoryRate >= 12 && respiratoryRate <= 18) {
score++;
System.out.print(respiratoryRate + " ");
} else {
System.out.print("!!" + respiratoryRate + " ");
}
System.out.print(height + " ");
System.out.print(weight + " ");
System.out.print((BMI) + " ");
if ((systolicPressure >= 90 && systolicPressure <= 120)
&& (diastolicPressure >= 60 && diastolicPressure <= 80)) {
score++;
System.out.print(systolicPressure + "/" + diastolicPressure + " ");
} else {
System.out.print("!!" + systolicPressure + "/" + diastolicPressure + " ");
}
for (int i = 0; i < score; i++)
System.out.print("*");
}
System.out.println();
}
scanner.close();
}
/**
* @param heartRate
* @param respiratoryRate
* @param height
* @param weight
* @param systolicPressure
* @param diastolicPressure
* @return
*/
static boolean isInputDataValid(int heartRate, int respiratoryRate, int height, int weight, int systolicPressure,
int diastolicPressure) {
if (heartRate == 0 || respiratoryRate == 0 || height == 0 || weight == 0 || systolicPressure == 0
|| diastolicPressure == 0)
return false;
else
return true;
}
/**
* @param height
* @param weight
* @return
*/
static double calculateBMI(int height, int weight) {
double BMI = (((double) weight) * 0.453592d) / ((((double) height) * 0.0254) * (((double) height) * 0.0254));
Format f = new DecimalFormat("##.######");
return Double.parseDouble(f.format(BMI));
}
}
------------------------------------------------
Note: Output is already formatted using tabs.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.