OOP Aufzählungstypen! enum Currency!!!

kulle009

Mitglied
Hallo wir sollen einen Währungsrechner schreiben als enum Currency!

Hier mal mein Code!
Java:
public enum Currency {
	
	USD (1.00),
	EUR (1.39),
	CAD (0.90),
	AUD (0.90),
	GBP (1.66);
	
	private final double kurs;   
	
	Currency(double kurs) {
		this.kurs = kurs;
		
	}
	
	double converteur(double amount, double EUR){
		
		amount = 10.00;
		EUR = this.kurs;
		
		EUR = amount * this.kurs;
		
		return EUR;
		
	}
	double convertcad(double amount, double CAD){
		
		amount = 10.00;
		CAD = this.kurs;
		
		CAD = amount * this.kurs;
		
		return CAD;
		
	}
	double convertaud(double amount, double AUD){
		
		amount = 10.00;
		AUD = this.kurs;
		
		AUD = amount * this.kurs;
		
		return AUD;
		
	}
	double convertgbp(double amount, double GBP){
		
		amount = 10.00;
		GBP = this.kurs;
		
		GBP = amount * this.kurs;
		
		return GBP;
		
	}
}

Und hier die aufgabenstellung dazu!

Implementieren Sie einen Aufzählungsdatentyp CurrencyEnum für Währungen (EUR, USD, CAD, GBP, AUD,…).
• Jede Währung soll dabei als Attribut den Wechselkurs zum USD enthalten. Implementieren Sie das mit einem entsprechenden Attribut des Typs.
• Implementieren in dem enum eine Methode zur Währungsumrechnung: double convert(double amount, Currency to)
• Implementieren sie eine Testklasse CurrencyTest für Currency in der Sie die korrekte Umrechnung von Beträgen in andere Währungen überprüfen


Is denn das so Richtig oder nicht? Außerdem habe ich kein Plan wie ich mit der Testklasse anfangen soll! Über Tips wäre ich sehr dankbar!

LG Kulle
 
Is denn das so Richtig oder nicht?
Nein, so wie ich das sehe, ist das nicht ganz richtig.

Implementieren Sie einen Aufzählungsdatentyp CurrencyEnumfür Währungen (EUR, USD, CAD, GBP, AUD,…).
Dein Aufzählungsdatentyp heisst Currency und nicht CurrencyEnum.

• Jede Währung soll dabei als Attribut den Wechselkurs zum USD enthalten. Implementieren Sie das mit einem entsprechenden Attribut des Typs.
Ist wahrscheinlich richtig, kenne die Wechselkurse jetzt nicht. Aber mit drei Nachkommastellen wäre wahrscheinlich besser.

• Implementieren in dem enum eine Methode zur Währungsumrechnung: double convert(double amount, Currency to)
Eine Methode! Ihr wird die Menge und die Währung übergeben, in welche umgewandelt werden soll. Daher du sollst wahrscheinlich immer davon ausgehen, dass amount in USD ist.


Außerdem habe ich kein Plan wie ich mit der Testklasse anfangen soll! Über Tips wäre ich sehr dankbar!
Da hattet ihr noch gar nichts gemacht in dem Bereich, oder wieso ist es völlig unklar? Google am Besten "JUnit Tutorial".
 
Zuletzt bearbeitet:
Vielen Dank für die Antwort!

Also habe es jetz mal so abgeändert! Compilieren tut es aber weiss nocht ob es so sinn macht!

Java:
public enum CurrencyEnum {
	
	USD (1.00),
	EUR (1.39),
	CAD (0.90),
	AUD (0.90),
	GBP (1.66);
	
	private final double kurs;   
	
	CurrencyEnum(double kurs) {
		this.kurs = kurs;
		
	}
	
	double convert(double amount, double EUR){
		
		amount = 10.00;
				
		EUR = amount * this.kurs;
		
		return EUR;
		
	}
	
}
 
Zuletzt bearbeitet:
Edit:
Also der amount-Variablen einen neuen Wert zuzuweisen, macht keine Sinn, mach das weg. 😉
Negative Werte solltest du vielleicht nicht zulassen, macht bei Währungen imho keinen Sinn.
Die Variable EUR vielleicht auch umbenennen, wie es in der Aufgabenstellung steht 😉




Jetzt musst du das ganze Testen, lies dir am Besten das hier durch, sollte nur ein paar Minuten benötigen und das wichtigste ist dabei, wenn auch die JUnit Version nicht aktuell ist, aber das ist egal.

http://www.inf.fu-berlin.de/lehre/SS02/swp/swp2/vorbereitung/junit.pdf

Erstelle dir also eine TestCurrencyEnum-Klasse, lass sie von TestCase erben und schreibe dir Test-Methoden, bei welcher du die Umwandlung in die einzelnen Währungen prüfst.

Ich glaube bei der Aufgabe reicht es aus, ein paar Testwerte zu nehmen.
 
Zuletzt bearbeitet:
Eine Methode! Ihr wird die Menge und die Währung übergeben, in welche umgewandelt werden soll. Daher du sollst wahrscheinlich immer davon ausgehen, dass amount in USD ist.

Nein, es sollte natürlich immer von der Währung aus umgerechnet werden, auf der die Methode aufgerufen wird. Also
Code:
CurrencyEnum.EUR.convert(125.0, CurrencyEnum.GBP)
rechnet z.B. 125€ in Pfund um.
 

Zurück
Oben