java blueJ BMI rechner

  • Themenstarter Themenstarter Unregistriert
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
U

Unregistriert

Gast
Java:
currentPost.edit();

/**
 * Write a description of class Bmi here.
 * 
 * @author (David ) 
 * @version (a version number or a date)
 */
public class Bmi
{

    int gewicht;
    double groesse;
    int BMI;
  
    
  

    
    void bmi(int größe, int gewicht)
{
      BMI =(gewicht/(größe*größe));
     
    }
        
    
    public void ausgeben()
    {
    System.out.println( "Sie wiegen " +gewicht+ "kg");
     System.out.println( " Ihre Größe betragt. " +groesse+ " cm");
      System.out.println( " ihr Bmi beträgt : " + BMI+ " punkte");
  
    
    if(BMI < 20)
    {
        System.out.println("Laut BMI haben Sie Untergewicht!");
    }   
        else
        {
         if(BMI > 25)
         {
       System.out.println("Laut BMI haben Sie Übergewicht!");
    }
    else
    {
        System.out.println("Laut BMI haben Sie Normalgewicht!");
    }   
}
}
}


warum rechnet er mir den Bmi nicht aus?
 
Solltest du nur diese Klasse haben und die ist so, wie sie da steht, vollständig, dann kann das garnicht funktionieren. Wie soll deine Applikation starten? Wo wird bmi() bzw ausgeben() überhaupt mal aufgerufen? Und woher kommen die Werte für Gewicht und Grösse? Ich hab mal ein kleines Beispiel gemacht (allerdings mit festen Werten für Gewicht und Größe, also ohne Eingabemöglichkeit). Zumal da noch einige Dinge überhaupt nicht gut aussahen. ^^

Java:
public class BMI_Calculator {

	static double weight = 70;
	static double height = 1.80;

	static double bmi(double height, double weight) {
		return (weight / (height * height));
	}

	public static void main(String[] args) {
		double BMI = bmi(height, weight);
		System.out.println("Sie wiegen " + weight + " kg.");
		System.out.println("Ihre Größe beträgt " + height * 100 + " cm.");
		System.out.println("Ihr Bmi beträgt : " + BMI + " Punkte");

		if (BMI < 20) {
			System.out.println("Laut BMI haben Sie Untergewicht!");
		} else {
			if (BMI > 25) {
				System.out.println("Laut BMI haben Sie Übergewicht!");
			} else {
				System.out.println("Laut BMI haben Sie Normalgewicht!");
			}
		}
	}
}
 
*SEUFZ* Immer diese super-dämlichen BMI-Rechner! Können Lehrer nicht mal was sinnvolles aufgeben?

Und diese Angabe von statischen Werte (>25 = Übergewicht) ist auch falsch. Das hängt nämlich vom Lebensalter ab. Ein Kleinkind mit diesem Wert wäre super-fett, wohingegen ein 60 Jähriger deutlich schwerer sein darf, ohne als übergewichtig zu gelten.
 
Der BMI ansich ist ja auch nicht wirklich aussagekräftig. Wenn jemand durchtrainiert und deswegen schwerer ist, dann kann es ja trotzdem sein, dass er gesund ist und kein Übergewicht hat, auch wenn der BMI das behaupten würde. 😉
 
Java:
public class Bmi



  {

   
      double groesse, gewicht;
     
 
      public void giveGroesse(double wert)
      {
         groesse=wert;
      }
     
      public void giveGewicht(double wert)
      {
          gewicht=wert;
      }
     
      public Bmi()
      {
          gewicht=70;
          groesse=180;
      }
   
       

    public double BMI()
    {
      double BMI;
      BMI =(gewicht/(groesse*groesse)*10000);
      return BMI;
    }
       
   
    public void ausgeben()
    {
    System.out.println( "Sie wiegen " +gewicht+ "kg");
     System.out.println( " Ihre Größe betragt. " +groesse+ " cm");
      System.out.println( " ihr Bmi beträgt : " + BMI() + " punkte");
 
   
    if(BMI() < 20)
    {
        System.out.println("Laut BMI haben Sie Untergewicht!");
    }  
        else
        {
         if(BMI() > 25)
         {
       System.out.println("Laut BMI haben Sie Übergewicht!");
    }
    else
    {
        System.out.println("Laut BMI haben Sie Normalgewicht!");
    }  
}
}
}

Das sollte so funzen.
Du kannst mit void giveGewicht und giveGroesse die Variablen festlegen, aus BMI habe ich eine Funktion mit return gemacht. Also einfach groesse gewicht eingeben(oder die voreingestellten Werte nehmen) dann ausgeben und es sollte funzen 😉.
 
Zuletzt bearbeitet von einem Moderator:
Mir faellt grad noch ein wenn du BMI schoener machen willst nimm das.
Java:
new CodeSnippet();
public  void giveBmiAuswertung()
     {
     
        if (BMI() < 16)
           {System.out.println("Sie haben starkes Untergewicht.");}
        else
          if (BMI() >=16 && BMI()<= 16.99)
              {System.out.println("Sie haben mäßiges Untergewicht");}
          else
            if (BMI() >=17 && BMI()<= 18.49)
               {System.out.println("Sie haben leichtes Untergewicht.");}
            else
              if (BMI() >=18.5 && BMI()<=24.99)
                  {System.out.println("Sie haben normales Gewicht");}
              else
                if (BMI() >=25 && BMI()<29.99)
                    {System.out.println("Sie sind Präadipositas");}
                else
                  if (BMI() >=30 && BMI()<34.99)
                      {System.out.println("Sie sind Adipositas Grad 1");}
                  else
                    if (BMI() >=35 && BMI()<39.99)
                        {System.out.println("Sie haben Adipositas Grad 2");}
                    else
                          {System.out.println("Sie haben Adipositas Grad 3");}
      }
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.

Zurück
Oben