C# :: Aufgabe #317
2 Lösungen
WHtR (Waist to Height Ratio) berechnen
Anfänger - C#
von JKooP
- 10.05.2020 um 09:17 Uhr
Schreibe ein Programm zur Ermittlung des WHtR- Wertes aus Taillenumfang + Körpergröße und der daraus resultierenden Bewertung.
Es sollen sowohl das Geschlecht (m/w) als auch das Kindesalter bzw. der Altersfaktor für Erwachsene berücksichtigt werden.
Viel Spaß
Es sollen sowohl das Geschlecht (m/w) als auch das Kindesalter bzw. der Altersfaktor für Erwachsene berücksichtigt werden.
Viel Spaß
Lösungen:
C#-Code
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Testneu { public partial class Form1 : Form { string Geschlecht = null; public Form1() { InitializeComponent(); } private void BauchEin_ValueChanged(object sender, EventArgs e) { } private void GrößeEin_ValueChanged(object sender, EventArgs e) { } private void Männlich_CheckedChanged(object sender, EventArgs e) { if (Männlich.Checked) { Geschlecht = "Männlich"; } } private void Weiblich_CheckedChanged(object sender, EventArgs e) { if (Weiblich.Checked) { Geschlecht = "Weiblich"; } } private void Alter_ValueChanged(object sender, EventArgs e) { } private void BerechneBtn_Click(object sender, EventArgs e) { if(Convert.ToInt32(BauchEin.Value) == 0) { MessageBox.Show("Bitte gib dein Gewicht an."); return; } if(Convert.ToInt32(GrößeEin.Value) == 0) { MessageBox.Show("Bitte gib deine Größe an."); return; } if(Geschlecht == null) { MessageBox.Show("Bitte gib dein Geschlecht an."); return; } if (Convert.ToInt32(Alter.Value) == 0) { MessageBox.Show("Bitte gib dein Alter an "); return; } double WHtR = Berechnung(Convert.ToInt32(BauchEin.Value), Convert.ToInt32(GrößeEin.Value)); string Klasse = Klassifikation(WHtR, Geschlecht, Convert.ToInt32(Alter.Value)); MessageBox.Show($"Dein WHtR liegt {WHtR}\n" + $"Du hast {Klasse}"); } public double Berechnung(double Bauch, double Größe) { double Ergebnis = Bauch / Größe; return Ergebnis; } public string Klassifikation(double WHtR, string Geschlecht, double Alter) { string Klassifikation = null; if (Geschlecht == "Männlich") { if (WHtR < 0.34) { Klassifikation = "Starkes Untergewicht"; } else if (WHtR >= 0.34 && WHtR <= 0.42) { Klassifikation = "Untergewicht"; } else if (WHtR >= 0.43 && WHtR <= 0.52) { Klassifikation = "Normalgewicht"; } else if (WHtR >= 0.53 && WHtR <= 0.57) { Klassifikation = "Übergewicht"; } else if (WHtR >= 0.58 && WHtR <= 0.62) { Klassifikation = "Adipositas"; } else { Klassifikation = "Massive Adipositas"; } } if (Geschlecht == "Weiblich") { if (WHtR < 0.34) { Klassifikation = "Starkes Untergewicht"; } else if (WHtR >= 0.34 && WHtR <= 0.41) { Klassifikation = "Untergewicht"; } else if (WHtR >= 0.42 && WHtR <= 0.48) { Klassifikation = "Normalgewicht"; } else if (WHtR >= 0.49 && WHtR <= 0.53) { Klassifikation = "Übergewicht"; } else if (WHtR >= 0.54 && WHtR <= 0.57) { Klassifikation = "Adipositas"; } else { Klassifikation = "Massive Adipositas"; } } if (Alter >= 15) { if (WHtR < 0.34) { Klassifikation = "Starkes Untergewicht"; } else if (WHtR >= 0.34 && WHtR <= 0.45) { Klassifikation = "Untergewicht"; } else if (WHtR >= 0.46 && WHtR <= 0.51) { Klassifikation = "Normalgewicht"; } else if (WHtR >= 0.52 && WHtR <= 0.63) { Klassifikation = "Übergewicht"; } else { Klassifikation = "Massive Adipositas"; } } return Klassifikation; } } }
// NET Core 3.x
C#-Code
using System; namespace CS_Aufgabe_317_WHtR { class Program { static void Main(string[] args) { var whtr = new WHtR(45, Geschlecht.maennlich, 100, 185); Console.WriteLine(whtr); } } public enum Gewichtskategorie { Unbekannt, Untergewicht, Normalgewicht, Uebergewicht, Adipositas, Adipositas_schwer } public enum Geschlecht { divers, maennlich, weiblich } class WHtR { private const int ZuschlagAlterVon = 40; private const int ZuschlagAlterBis = 49; private const double ZuschlagAlterWert = 0.01; public WHtR(int alter, Geschlecht geschlecht, double umfang, double groesse) { Alter = alter; Geschl = geschlecht; Umfang = umfang; Groesse = groesse; } private double Umfang { get; } private double Groesse { get; } private int Alter { get; } private Geschlecht Geschl { get; } private double WHtR_Index { get { var index = Math.Round(Umfang / Groesse, 2); var korrekturWeibl = index switch { var i when i < 0.34 => 0, var i when i >= 0.34 && i <= 0.45 => 0.01, var i when i >= 0.46 && i <= 0.51 => 0.03, var i when i >= 0.52 && i <= 0.63 => 0.04, var i when i > 0.63 => 0.05, _ => 0 }; var korrekturAlter = Alter >= ZuschlagAlterVon && Alter <= ZuschlagAlterBis ? Alterszuschlag : 0; return index - Math.Round((Geschl == Geschlecht.weiblich ? korrekturWeibl : 0) + korrekturAlter, 2); } } private double Alterszuschlag => (Alter - ZuschlagAlterVon) * ZuschlagAlterWert; private Gewichtskategorie WHtR_Gewichtskategorie { get { return Alter switch { int a when a < 15 => _ = WHtR_Index switch { var i when i < 0.34 => Gewichtskategorie.Untergewicht, var i when i >= 0.34 && i <= 0.45 => Gewichtskategorie.Normalgewicht, var i when i >= 0.46 && i <= 0.51 => Gewichtskategorie.Uebergewicht, var i when i >= 0.52 && i <= 0.63 => Gewichtskategorie.Adipositas, var i when i > 0.63 => Gewichtskategorie.Adipositas_schwer, _ => Gewichtskategorie.Unbekannt }, int a when a >= 15 && a <= 49 => _ = WHtR_Index switch { var i when i < 0.4 => Gewichtskategorie.Untergewicht, var i when i >= 0.4 && i <= 0.5 => Gewichtskategorie.Normalgewicht, var i when i >= 0.51 && i <= 0.56 => Gewichtskategorie.Uebergewicht, var i when i >= 0.57 && i <= 0.68 => Gewichtskategorie.Adipositas, var i when i > 0.68 => Gewichtskategorie.Adipositas_schwer, _ => Gewichtskategorie.Unbekannt }, int a when a >= 50 => _ = WHtR_Index switch { var i when i < 0.4 => Gewichtskategorie.Untergewicht, var i when i >= 0.4 && i <= 0.6 => Gewichtskategorie.Normalgewicht, var i when i >= 0.61 && i <= 0.66 => Gewichtskategorie.Uebergewicht, var i when i >= 0.67 && i <= 0.78 => Gewichtskategorie.Adipositas, var i when i > 0.78 => Gewichtskategorie.Adipositas_schwer, _ => Gewichtskategorie.Unbekannt }, _ => Gewichtskategorie.Unbekannt }; } } public override string ToString() => $"WHtR-Index: {WHtR_Index:F2}; Kategorie: {WHtR_Gewichtskategorie}"; } }