3176 Euro Euro
Kategorie:String
Klasse:leicht
Eingabe:siehe Spezifikation
Ausgabe:siehe Spezifikation
Abzugebende Files: Euro.txt, Euro.java, *.java , 1225.txt, 984.txt

Kurzbeschreibung:

Eine Rechnung, die Geldbeträge in verschiedenen Währungen addiert und/oder subtrahiert, wird eingelesen. Das Ergebnis dieser Berechnung wird unter Benutzung des Euroumrechnungskurses in einer vorgegebenen Währung ausgegeben.

Allgemeine Hinweise:

Aufgabenstellung:

Lesen Sie einen String ein, der aus Ziffern und den Zeichen "A", "I", "E", "D", "+", "-" und "=" bestehen darf.

Die Zeichen "A" bis "D" sind die Währungsbezeichnungen; diese sollen immer den Geldbeträgen nachgestellt sein. Zwischen zwei Geldbeträgen muß immer ein Operator ("+" oder "-") stehen; die Rechnung wird mit "=" und der Währungsbezeichnung, in der das Ergebnis geliefert werden soll, abgeschlossen.

Als Ausgabe sollen Sie liefern, wie der Betrag in der Zielwährung aus den jeweiligen Scheinen und Münzen zusammengestellt werden kann, wobei immer möglichst große Scheine und Münzen gewählt werden müssen; Münzen dürfen erst genommen werden, wenn man mit Scheinen nicht mehr weiterkommt.

Bei den 3 nationalen Währungen (Schilling, Mark, Lire) sowie beim Euro gibt es folgende Scheine und Münzen:

E = Scheine (5,10,20,50,100,200,500) Münzen (1,2)
A = Scheine (20,50,100,200,500,1000,5000) Münzen (1,2,5,10)
D = Scheine (10,20,50,100,200,500,1000) Münzen (1,2,5)
I = Scheine (2000,5000,10000,50000,100000,500000) Münzen (100,200,500,1000)

Es gelten folgende Wechselkurse:

1E = 13.7603A
1E = 1936.27I
1E = 1.95583D

Bei Umrechnungen zwischen verschiedenen nationalen Währungseinheiten ist zunächst in Euro und bei Bedarf anschließend in die gewünschte nationale Währungseinheit umzurechnen.

Beispiel der Umrechnung:
von 100 DM in Schilling: 100 DM : 1,95583 DM/Euro = 51,1291881196... Euro.
Daraufhin wird der Euro-Betrag auf nicht weniger als drei Nachkommastellen gerundet und mit dem Umrechnungskurs Schilling/Euro multipliziert: 51,129 Euro x 13,7603 A/Euro = 703,5503787.
Die Additionen/Subtraktionen von Beträgen erfolgt in Euro, der Gesamtbetrag darf nicht negativ sein.

Der Endbetrag in der Zielwährung ist auf den nächstliegenden Pfennig, Groschen oder Cent, d. h. auf zwei Stellen hinter dem Komma auf- oder abzurunden. Dabei wird nach der sog. kaufmännischen Rundung vorgegangen: bis 4 wird abgerundet, ab 5 wird aufgerundet.

Lirebeträge werden auf 100 Lire auf- bzw. abgerundet.

Eingabedaten:

Lesen Sie den String ein, der die Rechnung enthält. Dieser darf nur aus den oben genannten Zeichen (Grossbuchstaben) bestehen und muß eine gültigen Rechnung (z.B. keine zwei Operatoren hintereinander) enthalten.

Es muß mindestens ein Betrag und maximal 5 Beträge in der Rechnung vorkommen, die jeweils nicht größer als 50000 (in der jeweiligen Währung) sein dürfen.

Ausgabedaten:

Bei korrekten Eingabesätzen soll Ihr Programm die Aufteilung des Betrages in Scheine, Münzen und einen Restanteil liefern. Geben Sie dazu ein "S" aus, danach in nach Betrag absteigender Reihefolge 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. Euro,Schilling und Markbeträge kleiner als 1 bzw. Lirebeträg kleiner als 100 werden nicht mehr weiter aufgeteilt. Geben Sie zuerst ein "R"und dann diesen Restbetrag aus.

Wenn überhaupt keine Scheine bzw. Münzen notwendig sind, so geben Sie auch kein "S" bzw. "M" aus. Wenn kein Restbetrag vorhanden ist geben Sie auch kein "R" aus.

Trennen Sie die einzelnen Teile der Ausgabe durch Leerzeichen und geben Sie am Ende einen Zeilenvorschub aus.

Fehlerbehandlung:

Wenn der Eingabestring nicht den Bedingungen genügt, so soll Ihr Programm die Fehlermeldung "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.

Beispiele:

Eingabedaten
3543A=A

5A+40000I+370D=D

Ausgabedaten
S 1000 3 500 1 20 2 M 1 3

S 200 2 10 1 M 1 1 R 11


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 Euro < Euro.i1 > Euro.out1

Das erzeugte File Euro.out1 können Sie dann mit dem mitgelieferten Outputfile Euro.o1 vergleichen.