Program not giving right output
I am having trouble with my program. It doesn't display the DoB when you
enter it or give the age. Also it doesn't give the Max heart rate or
targeted heart rate. Anyone know what I did wrong?
Here is the coding:
import java.util.*;
public class HealthProfile {
String firstName;
String lastName;
char gender;
int BirthMonth;
int BirthDay;
int BirthYear;
int height;
int weight;
public HealthProfile(String fName, String lName, char Genderr, int
birthMonth, int birthDay, int birthYear, int heightt, int weightt){
firstName = fName;
lastName = lName;
gender = Genderr;
BirthMonth = birthMonth;
BirthDay = birthDay;
BirthYear = birthYear;
height = heightt;
weight = weightt;
}
HealthProfile() {
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getFirstName() {
return firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getLastName() {
return lastName;
}
public void setGender(char gender) {
this.gender = gender;
}
public char getGender() {
return gender;
}
public void setBirthMonth(int BirthMonth) {
this.BirthMonth = BirthMonth;
}
public int getBirthMonth() {
return BirthMonth;
}
public void setBirthDay(int BirthDay) {
this.BirthDay = BirthDay;
}
public int getBirthDay() {
return BirthDay;
}
public void setBirthYear(int BirthYear) {
this.BirthYear = BirthYear;
}
public int getBirthYear() {
return BirthYear;
}
public void setHeight(int height) {
this.height = height;
}
public double getHeight() {
return height;
}
public void setWeight(int weight) {
this.weight = weight;
}
public double getWeight() {
return weight;
}
public int Age(){
Calendar now = Calendar.getInstance();
int nowYear = now.get(Calendar.YEAR);
int nowMonth = now.get(Calendar.MONTH);
int nowDay = now.get(Calendar.DATE);
int day = now.get(Calendar.DATE);
int month = now.get(Calendar.MONTH);
int year = now.get(Calendar.YEAR);
if (nowMonth > BirthMonth);
int Age = (nowYear-BirthYear);
return Age;
}
public double getBMI(){
return (weight * 703)/(height * height);
}
public int getMaxHeartRate(){
return 220-Age();
}
public double getTargetHeartRate(){
return getMaxHeartRate() * 0.85 + getMaxHeartRate() * 0.5;
}
}
Here is the test part:
import java.util.Scanner;
public class HealthProfileTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String firstName;
String lastName;
String DoB;
String theMonth;
String theDay;
String theYear;
char gender;
int month = 0;
int day = 0;
int year = 0;
double height;
double weight;
HealthProfile personalInfo = new HealthProfile();
System.out.println("Enter your first name: ");
personalInfo.setFirstName(input.nextLine());
System.out.println("Enter your last name: ");
personalInfo.setLastName(input.nextLine());
System.out.println("Male or female: ");
personalInfo.setGender(input.nextLine().charAt(0));
System.out.println("Enter your date of birth in mm/dd/yyyy format: ");
DoB = input.nextLine();
personalInfo.setBirthMonth(month);
personalInfo.setBirthDay(day);
personalInfo.setBirthYear(year);
theMonth = DoB.substring(0,2);
theDay = DoB.substring(3,5);
theYear = DoB.substring(6,10);
month = Integer.parseInt(theMonth);
day = Integer.parseInt(theDay);
year = Integer.parseInt(theYear);
System.out.println("Enter your height in inches: ");
height = input.nextInt();
personalInfo.setHeight((int)height);
System.out.println("Enter your weight in pounds: ");
weight = input.nextInt();
personalInfo.setWeight((int)weight);
System.out.println("Name: " + personalInfo.getFirstName() +" "+
personalInfo.getLastName());
System.out.println("Gender: " + personalInfo.getGender());
System.out.println("DoB: " + personalInfo.getBirthMonth() + "/" +
personalInfo.getBirthDay() + "/" + personalInfo.getBirthYear());
System.out.println("Height: " + personalInfo.getHeight());
System.out.println("Weight: " + personalInfo.getWeight());
System.out.println("Age: " + personalInfo.Age());
System.out.println("BMI: " + personalInfo.getBMI());
System.out.printf("Max heart rate: ", personalInfo.getMaxHeartRate());
System.out.print(" ");
System.out.printf("Target heart rate: ",
personalInfo.getTargetHeartRate());
System.out.println(" ");
System.out.println( "BMI VALUES" );
System.out.println("Underweight: Under 18.5");
System.out.println("Normal: 18.5-24.9 ");
System.out.println("Overweight: 25-29.9");
System.out.println("Obese: 30 or over");
}
}
Output (I am only showing the results that are not working):
DoB: 0/0/0
Age: 2013
Max heart rate:
Target heart rate:
No comments:
Post a Comment