Java :: Aufgabe #212

5 Lösungen Lösungen öffentlich

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ß!

Lösungen:

vote_ok
von Bufkin (1410 Punkte) - 26.11.2018 um 14:12 Uhr
Quellcode ausblenden Java-Code
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();
	}
}
vote_ok
von guandi (230 Punkte) - 28.11.2018 um 15:40 Uhr
Quellcode ausblenden Java-Code
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;
	}
}
vote_ok
von Luukas (40 Punkte) - 03.12.2018 um 13:00 Uhr
Quellcode ausblenden Java-Code
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");
		}
	
	}

}
vote_ok
von Steve (300 Punkte) - 12.01.2019 um 23:28 Uhr
Quellcode ausblenden Java-Code
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");
		}
	}
}

vote_ok
von nOrdan (100 Punkte) - 11.02.2019 um 21:13 Uhr
Möchte vorher anmerken, dass ich noch wirklich ein Anfänger im Programmieren bin.

Quellcode ausblenden 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.");
        }
    }
}