EPROG-LU - Aufgabe 1132 (Geldberechnung)
1132 |
Money2 |
Geldberechnung |
Kategorie: | String |
Klasse: | schwer |
Eingabe: | String |
Ausgabe: | siehe Spez |
|
Abzugebende Files: Money2.txt, Money2.java |
Kurzbeschreibung:
Eine Geldbetrag soll eingelesen werden und auf Scheine und Münzen aufgeteilt werden.
Allgemeine Hinweise:
-
Ihr Programm darf nur genau jene Ausgabedaten liefern, die in der Spezifikation
verlangt werden. Die Ausgaben Ihres Programmes werden automatisch mit
Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
-
Testen Sie Ihr Programm vor der Abgabe mit der mitgelieferten Eingabedatei.
Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihres Programmes mit der
ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihr
Programm auch mit anderen Eingabedaten.
-
Verwenden Sie nur das von uns mitgelieferten Package eprog
für Ihre Ein/Ausgaben. Programme, die Packages oder Klassen ausserhalb der verwendeten Übungsumgebung (Java2, Standard Edition, Version 1.5.0) verwenden, können von uns
nicht getestet werden und werden mit 0 Punkten bewertet!
-
Schreiben Sie Ihr Programm möglichst allgemein und kommentieren Sie es gut.
Erstellen Sie weiters eine übersichtliche und verständliche Dokumentation.
Damit erhöhen Sie Ihre Chancen, daß andere Studenten in den nächsten Runden
Ihr Programm wählen und Ihnen damit zu Zusatzpunkten verhelfen!
Aufgabenstellung:
Lesen Sie einen String ein, der einen Geldbetrag sowie eines der (fiktiven)
Währungskennzeichen C und D enthält.
In diesen fiktiven Währungen gibt es folgende Scheine und Münzen:
C = Scheine (2,10,50,100,500,800) Münzen (1,5)
D = Scheine (4,20,50,100,400) Münzen (1,2,5,10)
Der Geldbetrag soll nun auf möglichst wenige (->große) Scheine aufgeteilt
werden; Münzen dürfen erst dann genommen werden, wenn man mit Scheinen nicht
mehr weiterkommt. Auch hier sollen es möglichst wenige Münzen sein.
Eingabedaten:
Lesen Sie einen String ein, der einen Geldbetrag und am Ende einen der Buchstaben "C" oder "D" enthält. Es dürfen nur Ziffern sowie die Großbuchstaben
C und D im String vorkommen.
Der Geldbetrag muß größer als 0 sein und darf 10000000 (10 Millionen) nicht
übersteigen.
Ausgabedaten:
Bei korrekten Eingabesätzen soll Ihr Programm die Aufteilung des Betrages in
Scheine und Münzen liefern. Geben Sie dazu ein "S" aus, danach in nach Betrag
absteigender Reihenfolge den Nennwert des Scheines und die Anzahl der notwendigen Scheine dieser Größe.
Ebenso verfahren Sie mit den Münzen: Geben Sie ein "M" aus und danach Nennwert
und Anzahl der benötigten Münzen.
Wenn überhaupt keine Scheine bzw. Münzen notwendig sind, so geben Sie auch
kein "S" bzw. "M" aus.
Trennen Sie die einzelnen Teile der Ausgabe durch Leerzeichen und geben Sie am
Ende einen Zeilenvorschub aus.
Fehlerbehandlung:
Bei fehlerhaften Eingabestrings geben Sie die Meldung "FALSCHE EINGABE",
gefolgt von einem Zeilenvorschub, aus.
Beispiele:
Eingabedaten
|
1253D
31402C
|
Ausgabedaten
|
S 400 3 50 1 M 2 1 1 1
S 800 39 100 2 2 1
|
Testen:
Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und
müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie
bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung
können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei
erzeugen:
java Money2 < Money2.i1 > Money2.out1
Das erzeugte File Money2.out1 können Sie dann mit dem mitgelieferten Outputfile Money2.o1 vergleichen.