C++ :: Aufgabe #290 :: Lösung #2

3 Lösungen Lösungen öffentlich
#290

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ß
#2
vote_ok
von basic (1310 Punkte) - 27.09.2020 um 22:30 Uhr
Quellcode ausblenden C-Code
#include <iostream>

using namespace std;

void classifybysex(double whtr) {
	char c;

	cout << "\nGeschlecht eingeben:\n";
	cout << "Männlich > 15 Jahre (m)\n";
	cout << "Weiblich > 15 Jahre (w)\n";
	cout << "Kind < 15 Jahre (k)\n";
	cout << "Eingabe: ";
	cin >> c;
	cout << "\n";

	switch(c) {
	case 'm':
		if(whtr <= 0.34) {
			cout << "Starkes Untergewicht\n";
		} else if(whtr >= 0.35 && whtr <= 0.42) {
			cout << "Untergewicht\n";
		} else if(whtr >= 0.43 && whtr <= 0.52) {
			cout << "Normalgewicht\n";
		} else if(whtr >= 0.53 && whtr <= 0.57) {
			cout << "Übergewicht\n";
		} else if(whtr >= 0.58 && whtr <= 0.62) {
			cout << "Adipositas\n";
		} else {
			cout << "Extreme Adipositas\n";
		}

		break;
	case 'w':
		if(whtr <= 0.34) {
			cout << "Starkes Untergewicht\n";
		} else if(whtr >= 0.36 && whtr <= 0.41) {
			cout << "Untergewicht\n";
		} else if(whtr >= 0.42 && whtr <= 0.48) {
			cout << "Normalgewicht\n";
		} else if(whtr >= 0.49 && whtr <= 0.53) {
			cout << "Übergewicht\n";
		} else if(whtr >= 0.54 && whtr <= 0.57) {
			cout << "Adipositas\n";
		} else {
			cout << "Extreme Adipositas\n";
		}

		break;
	case 'k':
		if(whtr <= 0.34) {
			cout << "Starkes Untergewicht\n";
		} else if(whtr >= 0.35 && whtr <= 0.45) {
			cout << "Untergewicht\n";
		} else if(whtr >= 0.46 && whtr <= 0.51) {
			cout << "Normalgewicht\n";
		} else if(whtr >= 0.52 && whtr <= 0.63) {
			cout << "Übergewicht\n";
		} else {
			cout << "Extreme Adipositas\n";
		}

		break;
	default:
		cout << "Falsche Eingabe\n";
	}
}

void classifybyage(double whtr) {
	int age;

	cout << "\nAlter eingeben: ";
	cin >> age;
	cout << "\n";

	if(age < 15) {
		if(whtr <= 0.34) {
			cout << "Untergewicht\n";
		} else if(whtr >= 0.35 && whtr <= 0.45) {
			cout << "Normalgewicht\n";
		} else if(whtr >= 0.46 && whtr <= 0.51) {
			cout << "Übergewicht\n";
		} else if(whtr >= 0.52 && whtr <= 0.63) {
			cout << "Adipositas\n";
		} else {
			cout << "Extreme Adipositas\n";
		}
	} else if(age >= 15 && age <= 39) {
		if(whtr < 0.4) {
			cout << "Untergewicht\n";
		} else if(whtr >= 0.4 && whtr <= 0.5) {
			cout << "Normalgewicht\n";
		} else if(whtr >= 0.51 && whtr <= 0.56) {
			cout << "Übergewicht\n";
		} else if(whtr >= 0.57 && whtr <= 0.68) {
			cout << "Adipositas\n";
		} else {
			cout << "Extreme Adipositas\n";
		}
	} else if(age >= 40 && age <= 50) {
		int a = age;

		while(a <= 50) {
			whtr += 0.01;
			a++;
		}

		if(whtr < 0.4) {
			cout << "Untergewicht\n";
		} else if(whtr >= 0.4 && whtr <= 0.5) {
			cout << "Normalgewicht\n";
		} else if(whtr >= 0.51 && whtr <= 0.56) {
			cout << "Übergewicht\n";
		} else if(whtr >= 0.57 && whtr <= 0.68) {
			cout << "Adipositas\n";
		} else {
			cout << "Extreme Adipositas\n";
		}
	} else if(age > 50) {
		if(whtr < 0.4) {
			cout << "Untergewicht\n";
		} else if(whtr >= 0.5 && whtr <= 0.6) {
			cout << "Normalgewicht\n";
		} else if(whtr >= 0.61 && whtr <= 0.66) {
			cout << "Übergewicht\n";
		} else if(whtr >= 0.67 && whtr <= 0.78) {
			cout << "Adipositas\n";
		} else {
			cout << "Extreme Adipositas\n";
		}
	}
}

double calcwhtr(double ws, double h) {
	return ws / h;
}

int main() {
	char query, c;
	double waistsize, height, whtr;

	do {
		cout << "Klassifikation nach Geschlecht (g)\n";
		cout << "Klassifikation nach Alter (a)\n";
		cout << "Auswahl: ";
		cin >> query;
		cout << "\n";

		switch(query) {
		case 'g':
			cout << "Tailienumfang (in cm): ";
			cin >> waistsize;
			cout << "Körpergröße (in cm): ";
			cin >> height;

			whtr = calcwhtr(waistsize, height);

			classifybysex(whtr);
			break;
		case 'a':
			cout << "Tailienumfang (in cm): ";
			cin >> waistsize;
			cout << "Körpergröße (in cm): ";
			cin >> height;

			whtr = calcwhtr(waistsize, height);

			classifybyage(whtr);
			break;
		default:
			cout << "Falsche Eingabe\n\n";
			break;
		}

		cout << "\nNächste Eingabe? (j/n): ";
		cin >> c;
		cout << "\n";
	} while((query != 'a' || query != 'g') && c != 'n');
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben