BMI Rechner erstellen für W/M

Animal-Mother

Mitglied
Hallo, bin blutiger Anfänger und versuche gerade einen BMI Rechner zu programmieren.
Bei der Aufgabenstellung, muss ich jedoch den BMI für Mann und Frau berechnen können.
Problem: Ich weiss nicht wie ich hier die Werte der Frauen mit rein implementieren kann.
Kann jemand Helfen?
Gruss Toni.
eclipse-workspace - HelloWorld_src_ch_santis_programmierenlernen_kapitel2_Aufgabe_3_7_c.java -...png
 

Anhänge

  • eclipse-workspace - HelloWorld_src_ch_santis_programmierenlernen_kapitel2_Aufgabe_3_7_c.java -...png
    eclipse-workspace - HelloWorld_src_ch_santis_programmierenlernen_kapitel2_Aufgabe_3_7_c.java -...png
    86 KB · Aufrufe: 53
K

kneitzel

Gast
Code bitte immer als Code (</> Symbol nutzen) posten und nicht als Bildschirmfoto.

Was genau ist denn das Problem? Die Berechnung ist ja erst einmal soweit korrekt.
Lediglich bei der Auswertung sind die Grenzen anders. Somit musst Du nur abfragen, ob es sich um einen Mann oder eine Frau handelt um dann die entsprechenden Werte zu nutzen.
 

Animal-Mother

Mitglied
ich müsste folgende Werte für Weiblich eintragen :
Java:
if  (bmi < 19) {
System.out.println("Sie sind untergewichtig!");

   } else if (bmi > 19-24) {
System.out.println("Sie haben Übergewicht!");      

   } else  {
System.out.println("Sie haben Normalgewicht!");

Nun weiss ich aber nicht wohin mit dem code und wie ich das Geschlecht deklariere.


Java:
package ch.santis.programmierenlernen.kapitel2;

import java.util.Scanner;
public class Aufgabe_3_7_c {

    public static void main(String[] args) {
        Scanner scanner = new Scanner (System.in);
       
       
        double gewicht;
        double groesse;
        double bmi;
       
        System.out.println("Geben sie Ihr Gewicht an:");
gewicht = scanner.nextDouble();

System.out.println("Geben sie Ihre Grösse  an:");
groesse = scanner.nextDouble();

bmi = gewicht / (groesse * groesse);

System.out.println("Ihr BMI ist:" + bmi);


if  (bmi < 20) {
System.out.println("Sie sind untergewichtig!");

   } else if (bmi > 25) {
System.out.println("Sie haben Übergewicht!");      

   } else  {
System.out.println("Sie haben Normalgewicht!");      

    }

}
}
 
K

kneitzel

Gast
Du musst den Anwender Fragen, ob er männlich (m) oder weiblich (w) ist. Das fragst du dann ab (z.B. mit next) um dann in n einem if dies zu prüfen und entweder das Eine oder das Andere zu machen.
 

MoxxiManagarm

Top Contributor
Ein Hinweis von meinem inneren Monk :cool:
Java:
// mache bitte aus:
System.out.println("Sie sind untergewichtig!");
// das hier:
System.out.println("Sie haben Untergewicht!");
// weil:
System.out.println("Sie haben Übergewicht!");    
System.out.println("Sie haben Normalgewicht!");
 

Animal-Mother

Mitglied
da ich wirklich erst seit letzte Woche angefangen habe zu programmieren, konnte ich mit euren gutgemeinten Antworten, nichts anfangen.
Deshalb habe ich die Aufgabe etwas umschrieben:
Java:
import java.util.Scanner;
public class Aufg_3_7_def {

    public static void main(String[] args) {
          new Aufg_3_7_def().top();
      }
      
      public void top() {
       int    gewicht          = readInt       ("Gewicht");
       double groesse          = readDouble    ("Grösse in Meter");
       char   geschlecht       = readChar1     ("Geschlecht");
       int    untergrenze = 19;
       int    uebergrenze = 24;
       double bmi = gewicht / (groesse * groesse);
       String ausgabe;
        
        
         if (geschlecht   ==  'm' ) {
             untergrenze = 20;
             uebergrenze = 25;
         }
        
         if(bmi < untergrenze) {
           ausgabe = "Untergewichtig";
         }
        
         if(bmi > uebergrenze) {
             ausgabe = "Übergewicht";
            
         } else {
             ausgabe = "Normalgewicht";
         }
        
         System.out.println(ausgabe); 
        
      }
      
    
      Scanner bmi = new Scanner(System.in);
      
      int readInt(String wert) {
          meldung(wert);
          return bmi.nextInt();
      }
      
      char readChar1(String wert) {
          meldung(wert);
          return bmi.next().charAt(0);
      }
      double readDouble(String wert) {
          meldung(wert);
          return bmi.nextDouble();
      }
      public void ausgabe(String wert) {
            System.out.println("Bitte " + wert + " eingeben:");
      }
      
      char readChar(String wert, Scanner sc) {
            meldung(wert);
            return sc.next().toLowerCase().charAt(0);
      }
      void meldung(String wert) {
        System.out.println("Bitte " + wert + " eingeben:" );
      }
}
Gäbe es eine Möglichkeit das ganze etwas knackiger zu schreiben?
Gruss
 
K

kneitzel

Gast
Also das gefällt mir so schon recht gut. Vor allem die Unterteilung in viele kleine Methoden ist super. Nur bei der Auswertung hast Du einen Fehler, denn Untergewichtig wirst Du nie bekommen können....

Das könnte man noch weiter treiben, in dem Du die Ausgabe in eine Methode packst, die die Grenzen entgegen nimmt:
Java:
public void bmiAuswerten(final double bmi, final double untergrenze, final double uebergrenze) {
         if(bmi < untergrenze) {
           ausgabe = "Untergewichtig";
         } else if(bmi > uebergrenze) {
             ausgabe = "Übergewicht";
         } else {
             ausgabe = "Normalgewicht";
         }
        
         System.out.println(ausgabe);
}

Der Aufruf wird dann zu etwas wie:
Java:
         if (geschlecht   ==  'm' ) {
             bmiAuswerten(bmi, UNTERGRENZE_MANN, UEBERGRENZE_MANN);
         } else {
             bmiAuswerten(bmi, UNTERGRENZE_FRAU, UEBERGRENZE_FRAU);
         }

Und die Konstanten werden dann natürlich noch klar definiert als public static final double ....

Das wäre eine weitere Untergliederung. Das wäre dann nur noch zu toppen von einem Objektorientierten Ansatz. Da hast Du bisher noch nicht wirklich viel. Da könnte man dann einiges mehr machen, aber das könnte hier jetzt etwas zu weit führen...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Erste Schritte Java GUI - Rechner erstellen Java Basics - Anfänger-Themen 4
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
T BMI Rechner fehlerhaft Java Basics - Anfänger-Themen 18
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
Alan6 Java Editor BMI Rechner Java Basics - Anfänger-Themen 7
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
M Rechner programmieren Java Basics - Anfänger-Themen 3
Z BMI-Rechner Java Basics - Anfänger-Themen 1
F Trinkgeld Rechner und Promillenrechener Hilfe Java Basics - Anfänger-Themen 3
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
$ Multiplikations-Rechner mit while Schleife Java Basics - Anfänger-Themen 8
J double_Problem im ZinsesZins Rechner Java Basics - Anfänger-Themen 33
K (Taschen)Rechner Java Basics - Anfänger-Themen 8
M Abitur-Noten-Rechner Java Basics - Anfänger-Themen 2
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
B Strategy Pattern - Rechner Java Basics - Anfänger-Themen 6
N Einfacher Rechner (für mich nicht so einfach) Java Basics - Anfänger-Themen 5
thet1983 rechner anfaengerfehler? Java Basics - Anfänger-Themen 10
B BMI Rechner Java Basics - Anfänger-Themen 2
H DriveByZero Exception - BMI-Rechner Java Basics - Anfänger-Themen 12
B Co2 rechner hilfe beim programmieren Java Basics - Anfänger-Themen 10
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
C Rechner Java Basics - Anfänger-Themen 19
B Verbindung zu einen anderen Rechner Java Basics - Anfänger-Themen 2
N Datenaustausch zweier rechner Java Basics - Anfänger-Themen 4
M BMI-Rechner NumberFormatException Java Basics - Anfänger-Themen 30
Jats Kosinussatz-Rechner Java Basics - Anfänger-Themen 9
Haave Postfix-Rechner: mehrere math. Operationen nacheinander ausführen Java Basics - Anfänger-Themen 8
C Bmi rechner programmieren Java Basics - Anfänger-Themen 72
B JavaWebStart - Anwendung läuft nur auf einem Rechner Java Basics - Anfänger-Themen 6
P Einfacher Rechner Java Basics - Anfänger-Themen 2
P UPN Rechner Java Basics - Anfänger-Themen 1
F Upn-Rechner Java Basics - Anfänger-Themen 15
B mit Wecker den Rechner aus Standby/Ruhemodus holen Java Basics - Anfänger-Themen 19
R Jar Datei läuft auf neuem Rechner nicht mehr Java Basics - Anfänger-Themen 15
Developer_X Applet auf lokalem Rechner mit der EingabeAufforderung Starten Java Basics - Anfänger-Themen 44
S Was ist falsch an meinem Rechner? Java Basics - Anfänger-Themen 7
M externes Programm auf anderen Rechner ausführen lassen Java Basics - Anfänger-Themen 2
kulturfenster Wie implementiert man einen Rechner in Java? Java Basics - Anfänger-Themen 5
kulturfenster Rechner und ActionListener Java Basics - Anfänger-Themen 11
C DM -> Euro Rechner aber nur mit Operanden des Typs intege Java Basics - Anfänger-Themen 12
G Java Rechner Java Basics - Anfänger-Themen 10
G frage bluej für bmi rechner programmieren Java Basics - Anfänger-Themen 5
T Rechner-Name abfragen Java Basics - Anfänger-Themen 6
C Problem mit dem Rechner Java Basics - Anfänger-Themen 4
G Rechner aus ! Java Basics - Anfänger-Themen 5
M Exel-Rechner in Java ausgeben Java Basics - Anfänger-Themen 13
N Java Rechner Java Basics - Anfänger-Themen 3
D Java Rechner und Einlesen Problem (mit hasNext) Java Basics - Anfänger-Themen 2
W Rechner von quadratzahlen ! fehler Java Basics - Anfänger-Themen 4
P Rechner ^^ Java Basics - Anfänger-Themen 10
K BMI Rechner - wo ist der Fehler? Java Basics - Anfänger-Themen 4
D Rechner programmieren Java Basics - Anfänger-Themen 5
P Mediacenter Userinterface auf langsamem Rechner Java Basics - Anfänger-Themen 5
M Windows Projekt auf Linux Rechner Java Basics - Anfänger-Themen 2
B komische NumberFormatException beim DezimalToBinär-Rechner Java Basics - Anfänger-Themen 4
lan2711 Class Dateien auf anderen Rechner zum Laufen kriegen. Java Basics - Anfänger-Themen 5
P Program funktioniert nur bei Rechner die jdk haben Java Basics - Anfänger-Themen 4
rambozola jar-datei von cd auf rechner ohne jvm starten Java Basics - Anfänger-Themen 2
N SSH-Verbindung zu entferntem Rechner aufbauen Java Basics - Anfänger-Themen 5
L Class-Datei auf anderem Rechner Java Basics - Anfänger-Themen 9
H JDK 1.4.2 UND 1.1.8 auf gleichem Rechner Java Basics - Anfänger-Themen 15
X Programmstart auf anderem Rechner... Java Basics - Anfänger-Themen 15
C Java soll Datei auf rechner Finden Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben