Java :: Aufgabe #212
8 Lösungen
Body-Mass-Index (BMI)
Anfänger - Java
von hollst
- 20.11.2018 um 18:23 Uhr
Der BMI ist eine (umstrittene) Kenngröße zur Ermittlung des eigenen Über-/Untergewichtszustandes:
BMI = Körpermasse (kg) / Körpergröße zum Quadrat (m**2).
Er wird wie folgt interpretiert:
Starkes Untergewicht < 16
Mäßiges Untergewicht 16 – < 17
Leichtes Untergewicht 17 – < 18,5
Normalgewicht 18,5 – < 25
Präadipositas 25 – < 30
Adipositas Grad I 30 – < 35
Adipositas Grad II 35 – < 40
Adipositas Grad III ≥ 40
Man schreibe ein Programm, das die zwei Basisdaten (Körpermasse und Körpergröße) entgegennimmt und den
Zustand (Starkes Untergewicht, Mäßiges Untergewicht ... Adipositas Grad III) als Ergebnis mitteilt.
Viel Spaß!
BMI = Körpermasse (kg) / Körpergröße zum Quadrat (m**2).
Er wird wie folgt interpretiert:
Starkes Untergewicht < 16
Mäßiges Untergewicht 16 – < 17
Leichtes Untergewicht 17 – < 18,5
Normalgewicht 18,5 – < 25
Präadipositas 25 – < 30
Adipositas Grad I 30 – < 35
Adipositas Grad II 35 – < 40
Adipositas Grad III ≥ 40
Man schreibe ein Programm, das die zwei Basisdaten (Körpermasse und Körpergröße) entgegennimmt und den
Zustand (Starkes Untergewicht, Mäßiges Untergewicht ... Adipositas Grad III) als Ergebnis mitteilt.
Viel Spaß!
Lösungen:
package bmi;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class BMI {
public static double calculation(double gewicht, double groesse) {
return gewicht / Math.pow(groesse / 100, 2);
}
public static String valuation(double input) {
String output = null;
if (input < 16 && input > 0) {
output = "Starkes Untergewicht";
} else if (input >= 16 && input < 17) {
output = "Mäßiges Untergewicht";
} else if (input >= 17 && input < 18.5) {
output = "Leichtes Untergewicht";
} else if (input >= 18.5 && input < 25) {
output = "Normalgewicht";
} else if (input >= 25 && input < 30) {
output = "Präadipositas";
} else if (input >= 30 && input < 35) {
output = "Adipositas Grad I";
} else if (input >= 35 && input < 40) {
output = "Adipositas Grad II";
} else if (input >= 40) {
output = "Adipositas Grad III";
} else if (input < 0) {
output = "ERROR";
}
return output;
}
public static void showUI() {
JFrame frame = new JFrame();
BoxLayout layout = new BoxLayout(frame.getContentPane(), BoxLayout.PAGE_AXIS);
JButton okButton = new JButton();
JTextField inputFieldGewicht = new JTextField();
JTextField inputFieldGroesse = new JTextField();
JTextField outputField = new JTextField();
JLabel gewicht = new JLabel("Gewicht:");
JLabel groesse = new JLabel("Größe:");
frame.setSize(300, 180);
frame.setLayout(layout);
frame.add(groesse);
frame.add(inputFieldGroesse);
frame.add(gewicht);
frame.add(inputFieldGewicht);
frame.add(okButton);
frame.add(outputField);
outputField.setEditable(false);
okButton.setText("Bestätigen");
okButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double output = calculation(Integer.parseInt(inputFieldGewicht.getText()),
Integer.parseInt(inputFieldGroesse.getText()));
outputField.setText(valuation(output));
}
});
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
showUI();
}
}
import java.util.Scanner;
public class MainApp {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println("Willkommen beim BMI Rechner");
System.out.println("Bitte gib dein Gewicht in KG ein:");
double gewicht = myScanner.nextDouble();
System.out.println("Bitte gib deine Größe in Meter an (Bsp 1,80):");
double groesse = myScanner.nextDouble();
double bmi = bmiRechner(groesse, gewicht);
ausgabe(bmi);
}
//Ausgabe des BMI und Auswahl des passenden Namen.
private static void ausgabe(double bmi) {
System.out.print("Dein BMI beträgt: " + bmi + " ");
if(bmi <16) {
System.out.println("Starkes Untergewicht!");
}else if(bmi>=16 && bmi<17) {
System.out.println("Mäßiges Untergewicht.");
}else if(bmi>=17 && bmi<18.5) {
System.out.println("Leichtes Untergewicht.");
}else if(bmi>=18.5 && bmi<25) {
System.out.println("Normalgewicht!");
}else if(bmi>=25 && bmi<30) {
System.out.println("Präadipositas.");
}else if(bmi>=30 && bmi<35) {
System.out.println("Adipositas Grad I.");
}else if(bmi>=35 && bmi<40) {
System.out.println("Adipositas Grad II");
}else if(bmi>= 40) {
System.out.println("Adipositas Grad III");
}else {
System.out.println("Bitte überprüfe deine Eingabe!");
}
}
private static double bmiRechner(double groesse, double gewicht) {
//BMI ausrechnen kg/m**2
double bmi = gewicht / (groesse*groesse);
//BMI auf 2 Nachkommastellen runden.
double d = Math.pow(10, 2);
return Math.round(bmi * d) / d;
}
}
package Übungen;
import java.util.Scanner;
public class BMI {
public static void main(String[] args) {
Scanner eingabe = new Scanner (System.in);
System.out.println("Bitte Körpergröße in Metern eingeben: ");
double körpergröße = eingabe.nextDouble();
Scanner eingabe2 = new Scanner (System.in);
System.out.println("Bitte Körpermasse in kg eingeben: ");
double körpermasse = eingabe2.nextDouble();
double bmi = körpermasse/ (körpergröße * körpergröße);
if (bmi >= 18.5 && bmi <25) {
System.out.println("Dein BMI ist " +bmi+ " du bist Normalgewichtig");
}
if (bmi < 18.5 && bmi >= 17) {
System.out.println("Dein BMI ist " +bmi+ " du bist leicht untergewichtig");
}
if (bmi < 17 && bmi >= 16) {
System.out.println("Dein BMI ist " +bmi+ " du bist mäßig untergewichtig");
}
if (bmi < 16) {
System.out.println("Dein BMI ist " +bmi+ " du bist stark untergewichtig");
}
if (bmi >= 25 && bmi < 30) {
System.out.println("Dein BMI ist " +bmi+ " du hast präadipositas");
}
if (bmi >=30 && bmi < 35) {
System.out.println("Dein BMI ist " +bmi+ " du hast Adipositas Grad 1");
}
if (bmi >= 35 && bmi < 40) {
System.out.println("Dein BMI ist " +bmi+ " du hast Adipositas Grad 2");
}
if (bmi >= 40) {
System.out.println("Dein BMI ist " +bmi+ " du hast Adipositas Grad 3");
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan1 = new Scanner(System.in);
System.out.println("Geben Sie Ihr Gewicht ein:");
double gewicht = scan1.nextDouble();
Scanner scan2 = new Scanner(System.in);
System.out.println("Wie groß sind Sie ? (Bsp.: 1,98)");
double groesse = scan2.nextDouble();
double bmi = gewicht / (groesse * groesse);
if (bmi < 16) {
System.out.println("Starkes Untergewicht");
} else if (bmi >= 16.0 && bmi < 17.0) {
System.out.println("Mäßiges Untergewicht");
} else if (bmi >= 17.0 && bmi < 18.5) {
System.out.println("Leichtes Untergeweicht");
} else if (bmi >= 18.5 && bmi < 25.0) {
System.out.println("Normalgewicht");
} else if (bmi >= 25.0 && bmi < 30.0) {
System.out.println("Präadipositas");
} else if (bmi >= 30.0 && bmi < 35.0) {
System.out.println("Adipositas Grad I");
} else if (bmi >= 35.0 && bmi < 40.0) {
System.out.println("Adipositas Grad II");
} else if (bmi >= 40.0) {
System.out.println("Adipositas Grad III");
}
}
}
Möchte vorher anmerken, dass ich noch wirklich ein Anfänger im Programmieren bin.
Java-Code
/**
* Die Klasse kann mithilfe von Parametern ihren BMI berechnen und ihnen sagen wie ihr momentaner Gewichtszustand ist.
*
* @author (nOrdan (Nils Jordan))
* @version (11.02.2019)
*/
public class BMIRechner
{
/**
* Konstruktor für Objekte der Klasse BMIRechner
*/
public BMIRechner()
{
}
/**
* Mit dieser Methode kann man seinen BMI ausrechnen und man bekommt seinen Gewichtszustand mitgeteilt. Geben sie bitte ihre Körpermasse (in kg) und ihre Körpergröße (in m) an.
*/
public void bmiRechner(double koerpermasse, double koerpergroesse)
{
System.out.print('\u000C');
// BMI ausrechnen und auf zwei Nachkommastellen runden.
double bmi = koerpermasse / (koerpergroesse * koerpergroesse);
bmi = (Math.round(100.0 * bmi)) / 100;
//BMI Ausgabe und den zum BMI passenden Gewichtszustand
if (bmi < 16)
{
System.out.println("Ihr BMI beträgt " + bmi + ". Ihr Gewichtszustand entspricht starkem Untergewicht.");
}
else if (bmi >= 16 && bmi < 17)
{
System.out.println("Ihr BMI beträgt " + bmi + ". Ihr Gewichtszustand entspricht mäßigem Untergewicht.");
}
else if (bmi >= 17 && bmi < 18.5)
{
System.out.println("Ihr BMI beträgt " + bmi + ". Ihr Gewichtszustand entspricht leichtem Untergewicht.");
}
else if (bmi >= 18.5 && bmi < 25)
{
System.out.println("Ihr BMI beträgt " + bmi + ". Ihr Gewichtszustand entspricht dem Normalgewicht.");
}
else if (bmi >= 25 && bmi < 30)
{
System.out.println("Ihr BMI beträgt " + bmi + ". Ihr Gewichtszustand entspricht Präadipositas.");
}
else if (bmi >= 30 && bmi < 35)
{
System.out.println("Ihr BMI beträgt " + bmi + ". Ihr Gewichtszustand entspricht Adipositas Grad I.");
}
else if (bmi >= 35 && bmi < 40)
{
System.out.println("Ihr BMI beträgt " + bmi + ". Ihr Gewichtszustand entspricht Adipositas Grad II.");
}
else if (bmi >= 40)
{
System.out.println("Ihr BMI beträgt " + bmi + ". Ihr Gewichtszustand entspricht Adipositas Grad III.");
}
else
{
System.out.println ("Ihre Werte sind nicht sinvoll und ergeben einen ungültigen BMI-Wert.");
}
}
}
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
System.out.print("Größe in m: ");
double height= scn.nextDouble();
System.out.print("Gewicht in kg: ");
double weight= scn.nextDouble();
double bmi= weight / (height*height);
System.out.print(bmi + " ");
if(bmi <16) {
System.out.println("Starkes Untergewicht!");
}else if(bmi>=16 && bmi<17) {
System.out.println("Mäßiges Untergewicht.");
}else if(bmi>=17 && bmi<18.5) {
System.out.println("Leichtes Untergewicht.");
}else if(bmi>=18.5 && bmi<25) {
System.out.println("Normalgewicht!");
}else if(bmi>=25 && bmi<30) {
System.out.println("Präadipositas.");
}else if(bmi>=30 && bmi<35) {
System.out.println("Adipositas Grad I.");
}else if(bmi>=35 && bmi<40) {
System.out.println("Adipositas Grad II");
}else if(bmi>= 40) {
System.out.println("Adipositas Grad III");
}else {
System.out.println("Fehler! Bitte überprüfen Sie ihre Eingaben noch einmal");
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
double koerpermasse; // in kg
double koerpergroesse; // in m zum quadat
double bmi;
Scanner scan = new Scanner(System.in);
System.out.println("Gewicht eingeben: ");
koerpermasse = scan.nextDouble();
System.out.println("Größe eingeben: ");
koerpergroesse = scan.nextDouble();
bmi = Math.round((koerpermasse / (koerpergroesse * koerpergroesse)) * 10d) / 10d;
if (bmi < 16) {
System.out.println("BMI ist " + bmi + " (starkes Untergewicht).");
} else if (bmi == 16 || bmi < 17) {
System.out.println("BMI ist " + bmi + " (mäßiges Untergewicht).");
} else if (bmi == 17 || bmi < 18.5) {
System.out.println("BMI ist " + bmi + " (leichted Untergewicht).");
} else if (bmi == 18.5 || bmi < 25) {
System.out.println("BMI ist " + bmi + " (Normalgewicht).");
} else if (bmi == 25 || bmi < 30) {
System.out.println("BMI ist " + bmi + " (Präadipositas).");
} else if (bmi == 30 || bmi < 35) {
System.out.println("BMI ist " + bmi + " (Adipositas Grad I).");
} else if (bmi == 35 || bmi < 40) {
System.out.println("BMI ist " + bmi + " (Adipositas Grad II).");
} else {
System.out.println("BMI ist " + bmi + " (Adipositas Grad III).");
}
scan.close();
}
}
import java.util.Scanner;
class Scratch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Gib dein Gewicht an:");
double gewicht = scanner.nextDouble();
System.out.println("Gib deine Größe (in Meter) ein: ");
double groeße = scanner.nextDouble();
double bmi = gewicht / Math.pow(groeße, 2)*100;
bmi = Math.round(bmi );
bmi = bmi /100;
String[] bmiArray = {"Starkes Untergewicht", "Mäßiges Untergewicht", "Leichtes Untergewicht ", "Normalgewicht", "Präadipositas", "Adipositas Grad I", "Adipositas Grad II", "Adipositas Grad III"};
if (bmi <= 16) {
System.out.println("Dein BMI liegt bei: " + bmi + " " + bmiArray[0]);
} else if (bmi > 16 && bmi <= 17) {
System.out.println("Dein BMI liegt bei: " + bmi + " " + bmiArray[1]);
} else if (bmi > 17 && bmi < 18.5) {
System.out.println("Dein BMI liegt bei: " + bmi + " " + bmiArray[2]);
} else if (bmi >= 18.5 && bmi < 25) {
System.out.println("Dein BMI liegt bei: " + bmi + " " + bmiArray[3]);
} else if (bmi >= 25 && bmi < 30) {
System.out.println("Dein BMI liegt bei: " + bmi + " " + bmiArray[4]);
} else if (bmi >= 30 && bmi < 35) {
System.out.println("Dein BMI liegt bei: " + bmi + " " + bmiArray[5]);
} else if (bmi >= 35 && bmi < 40) {
System.out.println("Dein BMI liegt bei: " + bmi + " " + bmiArray[6]);
} else if (bmi >= 40) {
System.out.println("Dein BMI liegt bei: " + bmi + " " + bmiArray[7]);
}
}
}
