Hallo Leute,
ich habe folgende Aufgabe gelöst und wollte mal euer Feedback zu meiner Lösung haben, da ich nun das erste Mal mit enum und LinkedList programmiert habe.
Die Aufgabe:
a.)Implementieren Sie zur Repräsentation von Euro-Münzen einen Aufzählungstyp (Enum) Muenze! Der Aufzählungstyp enthält für jede Euro-Münze genau ein Element:
EinCent, ZweiCent, FuenfCent, ZehnCent ZwanzigCent, FuenfzigCent, EinEuro, ZweiEuro
Implementieren Sie außerdem eine Methode int getValue(), die den Wert einer
Euro-Münze (in Cent) liefert!
b) Implementieren Sie folgende statische Methode: public static LinkedList<Muenze> getMuenzen(int wertInCent) Diese liefert eine Liste von Euro-Münzen,sodass der Wert aller Münzen zusammen dem übergebenen nicht negativen Betrag (in Cent) entspricht! Beachten Sie dabei, dass die Liste nur eine minimale Anzahl an Münzen enthalten darf! Für negative Werte soll eine IllegalArgumentException geworfen werden!
Meine Lösung:
Habe ich die Aufgabe richtig gelöst?
ich habe folgende Aufgabe gelöst und wollte mal euer Feedback zu meiner Lösung haben, da ich nun das erste Mal mit enum und LinkedList programmiert habe.
Die Aufgabe:
a.)Implementieren Sie zur Repräsentation von Euro-Münzen einen Aufzählungstyp (Enum) Muenze! Der Aufzählungstyp enthält für jede Euro-Münze genau ein Element:
EinCent, ZweiCent, FuenfCent, ZehnCent ZwanzigCent, FuenfzigCent, EinEuro, ZweiEuro
Implementieren Sie außerdem eine Methode int getValue(), die den Wert einer
Euro-Münze (in Cent) liefert!
b) Implementieren Sie folgende statische Methode: public static LinkedList<Muenze> getMuenzen(int wertInCent) Diese liefert eine Liste von Euro-Münzen,sodass der Wert aller Münzen zusammen dem übergebenen nicht negativen Betrag (in Cent) entspricht! Beachten Sie dabei, dass die Liste nur eine minimale Anzahl an Münzen enthalten darf! Für negative Werte soll eine IllegalArgumentException geworfen werden!
Meine Lösung:
Java:
import java.util.LinkedList ;
import java.lang.IllegalArgumentException;
//a.)
public enum Muenze {
//Aufzählen der Elemente von Muenze
EinCent, ZweiCent, FuenfCent, ZehnCent,
ZwanzigCent, FuenfzigCent, EinEuro, ZweiEuro;
/** Methode gibt den Wert in Cent einer Münze zurück
* @param
* @return Wert der Münze in Cent
*/
int getValue(){
switch(this){
case EinCent: return 1;
case ZweiCent: return 2;
case FuenfCent: return 5;
case ZehnCent: return 10;
case ZwanzigCent: return 20;
case FuenfzigCent: return 50;
case EinEuro: return 100;
case ZweiEuro: return 200;
default: return 0;
}
}
// b.)
/**
* Methode erstellt eine Liste von Münzen, die zusammen addiert Parameter wertInCent ergeben.
* @param wertInCent
* @return Es wird eine Liste zurückgegeben, die die Münzen enthält, die addiert den wertInCent
* ergeben.
*/
public static LinkedList<Muenze> getMuenzen(int wertInCent){
//Exception, falls wertInCent negativ
if(wertInCent < 0){
throw new IllegalArgumentException();
}
//Erstellen einer neuen LinkedList
LinkedList<Muenze> list = new LinkedList<Muenze>();
/*während der wertInCent größer als 200 Cent ist, wird eine Zwei-Euro-Münze zur
Liste hinzugefügt. Analog bei den weiteren Münzen
*/
while(wertInCent>=200){
list.add(ZweiEuro);
wertInCent -= 200;
}
while(wertInCent>=100){
list.add(EinEuro);
wertInCent -= 100;
}
while(wertInCent>=50){
list.add(FuenfzigCent);
wertInCent -= 50;
}
while(wertInCent>=20){
list.add(ZwanzigCent);
wertInCent -=20;
}
while(wertInCent>=10){
list.add(ZehnCent);
wertInCent -=10;
}
while(wertInCent>=5){
list.add(FuenfCent);
wertInCent -= 5;
}
while(wertInCent>=2){
list.add(ZweiCent);
wertInCent -=2;
}
while(wertInCent>=1){
list.add(EinCent);
wertInCent -=1;
}
//Ausgeben der Liste
if(wertInCent == 0){
return list;
}
return list;
}
}