/* Autor: Bernhard PREIS MatrNr: 0200328 Beschreibung: Eine Geldbetrag soll eingelesen werden und auf Scheine und Münzen aufgeteilt werden. */ Ich habe die Aufgabenstellung mit Hilfe von 3 Klassen gelöst. Die Klasse Money2 beinhaltet Variablen wie die Ober- und Untergrenze des Eingabebereichs um das Verhalten möglichst einfach an wechselnde Anforderungen anpassen zu können. Außerdem befindet sich hier die main-Funktion, welche den allgemeinen Programmablauf steuert. Die Klasse CurrencyInput wird von Money2 verwendet, um den Eingabestring auf seine Gültigkeit zu prüfen. Ein String wird dann als gültig gekennzeichnet, wenn jedes Zeichen des Strings eine Ziffer ist, mit Ausnahme des letzten Zeichens, dass ein Buchstabe sein muss. CurrencyInput definiert auch einige "Hilfsfunktionen", um die Struktur der Überprüfungsfunktion möglichst einfach zu halten. Nach erfolgreicher Überprüfung wird der "Geldvorrat", also die verschiedenen Nennwerte der Scheine und Münzen ausgewählt. Dies geschieht mit Hilfe von Referenzen, die auf die entsprechenden (Integer-)Arrays verweisen. Die Zuweisung erfolgt abhängig von der Eingabe. Als letze Klasse wird noch CurrencyConverter verwendet, um den Betrag der einzelnen Währungen auf Scheine und Münzen aufzuteilen. Die Klasse wurde so dimensioniert, das die zu verwendenden "Geldvorräte" übergeben werden müssen. Dadurch wird die Klasse weitgehend "währungsunabhängig". Die einzige Bedingung dabei ist, dass diese "Geldvorräte" als ABSTEIGEND SORTIERTE Arrays vorliegen müssen. Des weiteren wurde eine Funktion definiert, um die errechneten Werte gemäß Spezifikation auszugeben. Die Klassen wurden so allgemein wie möglich gehalten, um eine eventuelle Erweiterung bzw. Wiederverwendung einfach zu gestalten.