Ziel dieser Aufgabe ist, ein Programm zu schreiben, mit dessen Hilfe die Nährwerte1 verschiedener Lebensmittel, sowie die durch eine Person aufgenommene Energie (in kcal), mitsamt der Nährwerte Fett, Zucker, Salz nachverfolgt werden kann.
Gehen Sie wie folgt vor:
Klasse Nahrungsmittel:
Schreiben Sie eine Klasse Nahrungsmittel, die neben dem Namen folgende Eigenschaften eines Nahrungsmittels
speichern kann (jeweils pro 100g): Energie (in kcal), sowie die Nährstoffe Fett (in g), Zucker (in g)
und Salz (in g).
Die Werte der Eigenschaften sollen bei der Erstellung über einen geeigneten Konstruktor übergeben werden.
Für jedes Nahrungsmittel soll es möglich sein, einige Werte der Lebensmittelampel2 zu bestimmen. Schreiben Sie
für die Eigenschaften Fett, Zucker und Salz jeweils eine Methode, die den zum Lebensmittel passenden Wert
("rot", "gelb" oder "grün") als Zeichenkette zurückgibt.
Die Kriterien finden Sie in folgender Abbildung3:

Schreiben Sie eine Methode, welche die gesamten Eigenschaften des Lebensmittels als Text zurückgibt und sowohl Zahlenwerte als auch Ampelangaben enthält.
Beispiel: Nutella - Energie: 533,0 kcal, Fett: 31,0g (rot), Zucker: 55,9g (rot), Salz: 0,1016g (grün)
Schreiben Sie eine Klasse NaehrwertrechnerTest mit einer main-Methode, die verschiedene Nahrungsmittel erzeugt
und deren Eigenschaften mit Hilfe der Methoden von Nahrungsmittel ausgibt.
Nutzen Sie dazu Informationen im Netz, z.B. die Seite http://fddb.info um Nährwerte für einige Nahrungsmittel zu bestimmen (mindestens 3, z.B. Nutella, Stangensellerie,...).
Klasse Person:
Schreiben Sie eine Klasse Person, die über die aufgenommenen Nährwerte einer Person Buch führen kann, also Eigenschaften
für die aufgenommene Energie (in kcal), sowie die Nährstoffe Fett (in g), Zucker (in g)
und Salz (in g) besitzt.
Der Name der Person soll bei der Erstellung über einen Konstruktor übergeben werden.
Die Klasse soll eine Methode void konsumiere(Nahrungsmittel nahrung, double mengeInGramm) mit deren Hilfe die Person
das übergebene Nahrungsmittel nahrung in der ebenfalls übergebenen Menge mengeInGramm zu sich nehmen kann.
Die Werte der von der Person bisher aufgenommenen Nährwerte sollen entsprechend aktualisiert werden.
Hinweis: Neu ist hier eventuell, dass ein Objekt als Parameter übergeben wird. Sie können auf dieses Objekt
innerhalb der Methode einfach über den Parameternamen zugreifen, z.B. nahrung.energie. Beim Aufruf der Methode
übergeben Sie einfach das entsprechende Nahrungsmittel-Objekt.
Fügen Sie auch hier eine Methode hinzu, welche die aufgenommenen Nährwerte der Person als Text zurückgibt.
Beispiel: Mirjam Muster - Aufgenommene Nährwerte - Energie: 1321,3 kcal, Fett: 56g, Zucker: 34g, Salz: 1g
Ergänzen Sie die Klasse NaehrwertrechnerTest: Erzeugen Sie zwei Personen und lassen Sie diese verschiedene
Nahrungsmittel in unterschiedlichen Mengen zu sich nehmen. Geben Sie jeweils die Summe der bisher konsumierten
Nährwerte aus.
Java besitzt keinen eingebauten Datentyp für komplexe Zahlen4. Deshalb soll in dieser Aufgabe eine Klasse Complex
entstehen, die das Rechnen mit komplexen Zahlen ermöglicht.
Die Klasse sollte folgende Methoden besitzen:
Zwei Konstruktoren:
a und b für Real- und ImaginärteilJe eine überladene Methode, welche eine reelle Zahl oder eine komplexe Zahl addiert und das Ergebnis als neues Objekt der Klasse Complex zurückgibt:
Complex add(double wert)Complex add(Complex wert)Entsprechende Methoden zur Subtraktion (sub), Multiplikation (mul) und Division(div)
Eine Methode public String toString(), die die Zahl in der Form "a + b*i" zurückgibt.
double z = Math.sqrt(a*a+b*b) der Zahl berechnet und zurückgibt.Testen Sie Ihre Klasse!
Als Mitarbeiter der Firma KrösusTools AG haben Sie die Aufgabe, einen Geldausgabeautomaten zu programmieren, der Euro-Beträge in 5-, 20- und 50-Euro-Scheinen auszahlt.
Erstellen Sie dazu eine Klasse Geldautomat, die die Anzahl der im Automat vorhandenen Geldscheine verwaltet
und folgende öffentliche Methoden zur Verfügung stellt:
public void nachfüllen(int neu5er, int neu20er, int neu50er): Der Vorrat an 5er-, 20er- und 50er-Scheinen wird
um die angegebene Anzahl erhöht.
public boolean auszahlen(int betrag): Falls möglich, wird der angegebene Betrag ausgezahlt. Es sind nur
Beträge erlaubt, die positiv und Vielfache von 5€ sind.
Der Automat versucht immer, möglichst große Scheine auszugeben. Kann der Betrag ausbezahlt werden, wird durch
System.out.println() die Anzahl der jeweiligen Scheine angezeigt. Kann der Betrag nicht ausbezahlt werden,
da ein unzulässiger Betrag eingegeben wurde oder die Scheine im Automat nicht reichen, wird eine Fehlermeldung
ausgegeben. Es werden keine Teilbeträge ausgezahlt!
Der Rückgabewert der Methode zeigt an, ob der Betrag erfolgreich ausgezahlt werden konnte.
Fabrikneu enthält der Geldautomat keine Geldscheine.
Testen Sie Ihre Klasse, indem Sie eine Testklasse GeldautomatTest entwickeln, die z.B. folgende Tests durchführt:
Überlegen Sie sich weitere sinnvolle Testfälle!
Weitere Informationen zur Nährwertkennzeichnung unter https://de.wikipedia.org/wiki/Nährwertkennzeichnung. ↩
Weitere Informationen zur Nährwertampel unter https://de.wikipedia.org/wiki/Ampel_(Lebensmittelkennzeichnung). ↩
Also Zahlen vom Typ a + b * i mit i2 = -1. Siehe auch http://de.wikipedia.org/wiki/Komplexe_Zahl. ↩