<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://mletkin.net/index.php?action=history&amp;feed=atom&amp;title=Aufgabe%3A_W%C3%A4hrung_und_Konten</id>
	<title>Aufgabe: Währung und Konten - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://mletkin.net/index.php?action=history&amp;feed=atom&amp;title=Aufgabe%3A_W%C3%A4hrung_und_Konten"/>
	<link rel="alternate" type="text/html" href="https://mletkin.net/index.php?title=Aufgabe:_W%C3%A4hrung_und_Konten&amp;action=history"/>
	<updated>2026-05-06T16:38:41Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in MimiPedia</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://mletkin.net/index.php?title=Aufgabe:_W%C3%A4hrung_und_Konten&amp;diff=75&amp;oldid=prev</id>
		<title>Ullrich: Die Seite wurde neu angelegt: „Category:Java Category:Ausbildung  __NOTOC__  Ziel der Aufgabe ist der Umgang mit Objekten, Klassen und Beziehungen zwischen Objekten. Es geht vornehml…“</title>
		<link rel="alternate" type="text/html" href="https://mletkin.net/index.php?title=Aufgabe:_W%C3%A4hrung_und_Konten&amp;diff=75&amp;oldid=prev"/>
		<updated>2021-08-01T11:51:13Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „&lt;a href=&quot;/index.php?title=Kategorie:Java&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Kategorie:Java (Seite nicht vorhanden)&quot;&gt;Category:Java&lt;/a&gt; &lt;a href=&quot;/index.php?title=Kategorie:Ausbildung&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Kategorie:Ausbildung (Seite nicht vorhanden)&quot;&gt;Category:Ausbildung&lt;/a&gt;  __NOTOC__  Ziel der Aufgabe ist der Umgang mit Objekten, Klassen und Beziehungen zwischen Objekten. Es geht vornehml…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Java]]&lt;br /&gt;
[[Category:Ausbildung]]&lt;br /&gt;
 __NOTOC__ &lt;br /&gt;
Ziel der Aufgabe ist der Umgang mit Objekten, Klassen und Beziehungen zwischen Objekten.&lt;br /&gt;
Es geht vornehmlich darum, die Anforderungen in eine geeignete Objekt-Struktur zu überführen&lt;br /&gt;
und durch Tests sicherstellen, daß alles jederzeit so funktioniert wie gefordert.&lt;br /&gt;
&lt;br /&gt;
= Einführung =&lt;br /&gt;
Bis zur Umstellung auf das Dezimal-System im Jahre 1971 kannten die Briten drei verschiedene Währungseinheiten&lt;br /&gt;
*    Den Penny (Mehrzahl Pence)&lt;br /&gt;
*    Den Shilling (1 Shilling = 12 Pence)&lt;br /&gt;
*    Das Pfund Sterling (1 Pfund = 20 Shilling = 240 Pence)&lt;br /&gt;
Beträge wurden also mit drei Zahlen angegeben, zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
:Ein Pfund, sieben Shilling und sechs Pence oder kürzer 1₤ 7s 6p  entsprechen 330 Pence.&lt;br /&gt;
&lt;br /&gt;
Das macht das Rechnen mit Beträgen recht umständlich:&lt;br /&gt;
&lt;br /&gt;
:    5 Stück zum Preis von  7s 3p kosten zusammen 35s 15p oder 1₤ 16s 3p&lt;br /&gt;
:    1₤ 7s 6p und 10s 8p macht zusammen 1₤ 18s 2p&lt;br /&gt;
&lt;br /&gt;
Ziel ist es mit Java geeignete Hilfsmittel – in Form von Klassen und Methoden – bereitzustellen, die den&lt;br /&gt;
Umgang mit Beträgen erleichtern. Zunächst nur mit englischer, später auch mit anderen Währungen.&lt;br /&gt;
&lt;br /&gt;
Es kommt dabei auf den Umgang mit dem Java-Code an, Ein- und Ausgabe spielen dabei zunächst&lt;br /&gt;
keine Rolle und die Ausführung des Codes soll über Unit-Tests erfolgen.&lt;br /&gt;
Es ist wichtig, jede Aufgabe mit der richtigen Menge an Unit-Tests abzusichern.&lt;br /&gt;
&lt;br /&gt;
In der Regel gibt es verschiedene Möglichkeiten, eine Klasse zu entwerfen oder eine Funktionalität hinzuzufügen.&lt;br /&gt;
Wenn Du mehrere Möglichkeiten siehst, entscheide Dich für eine und versuche Deine Entscheidung zu begründen.&lt;br /&gt;
&lt;br /&gt;
Versuche die einzelnen Aufgaben der Reihenfolge nach zu bearbeiten und nicht vorauszugreifen.&lt;br /&gt;
Es ist aber gut, wenn Du Dir Gedanken machst, was sich ändern könnte und was nicht.&lt;br /&gt;
&lt;br /&gt;
Es geht auch darum, dass im Lauf der Zeit weitere Funktionalitäten dazukommen, die es erforderlich machen&lt;br /&gt;
den bestehenden Code anzupassen und zu verallgemeinern. In realen Projekten kann man oft nicht voraussehen,&lt;br /&gt;
in welche Richtung sich die Software verändern wird, deshalb muss man lernen mit Veränderungen so umzugehen,&lt;br /&gt;
dass der Code seine Qualität nicht verliert.&lt;br /&gt;
= Aufgaben =&lt;br /&gt;
== Rechnen, Formatieren ==&lt;br /&gt;
Ziel ist es, beliebige Beträge in Pfund, Shilling und Pence durch eine Daten-Struktur in Java abzubilden.&lt;br /&gt;
Schaffe dafür eine Klasse, die einen Betrag kapselt und mit der man&lt;br /&gt;
&lt;br /&gt;
*    Beträge addieren und subtrahieren kann&lt;br /&gt;
*    Beträge mit einer ganzen Zahl multiplizieren kann (2 * 1₤ 7s 6p)&lt;br /&gt;
*    Beträge als String formatieren kann&lt;br /&gt;
*    entweder wie in den Beispielen oben (1₤ 7s 6p oder auch 1 Pfund, 7 Shilling, 6 Pence).&lt;br /&gt;
&lt;br /&gt;
Eine Ein-/Ausgabe-Möglichkeit ist nicht erforderlich, es sollen aber ausreichend Unit-Tests vorhanden sein.&lt;br /&gt;
== weitere Währungen ==&lt;br /&gt;
Zusätzlich zur britischen Währung sollen noch (mindestens) zwei weitere Währungen abgebildet werden&lt;br /&gt;
&lt;br /&gt;
* Der US-Dollar (ein Dollar zu 100 Cent)&lt;br /&gt;
* Eine Währung Deiner Wahl&lt;br /&gt;
&lt;br /&gt;
Definiere dafür zwei neue Klassen und verbinde sie mit der Klasse aus der vorangegangenen Übung so, dass eine Vererbungs-Hierarchie entsteht.&lt;br /&gt;
Schreibe Unit-Tests und denke daran, Deine Design-Entscheidungen zu begründen.&lt;br /&gt;
&lt;br /&gt;
== Umrechnung ==&lt;br /&gt;
Erstelle einen Währungs-Rechner, der den Betrag einer beliebigen Währung in eine andere Währung umrechnen kann.&lt;br /&gt;
Die Wechsel-Kurse können im ersten Schritt im Code fest verdrahtet sein. Die Kurse müssen nicht realistisch sein,&lt;br /&gt;
für den Test ist es anfangs besser einfache, leicht nachzuprüfende Werte zu verwenden.&lt;br /&gt;
&lt;br /&gt;
== Wechselnde Wechselkurse ==&lt;br /&gt;
Die Wechsel-Kurse sollen nun dynamisch verändert werden können.&lt;br /&gt;
Es genügt dazu eine Möglichkeit einen einzelnen Wechelkurs per Methoden-Aufruf ändern zu können.&lt;br /&gt;
&lt;br /&gt;
== viele Währungen ==&lt;br /&gt;
Es sollen nun beliebige weitere Währungen hinzugefügt werden.&lt;br /&gt;
Schaffe zunächst eine Möglichkeit, dass der Währungs-Rechner mit einer beliebigen Zahl von Währungen arbeiten kann&lt;br /&gt;
und füge dann – sozusagen als Test – eine weitere Währung hinzu. &lt;br /&gt;
&lt;br /&gt;
= Konten =&lt;br /&gt;
Ein Kunde (die Kunden werden nicht modelliert) soll ein Portfolio haben, das für mehrere Währungen Konten enthalten kann, je Währung maximal ein Konto.&lt;br /&gt;
Jedes Konto besteht aus einem Saldo der entsprechenden Währung.&lt;br /&gt;
Der Kunde soll positive und negative Beträge hinzufügen können (Gut- und Lastschriften),&lt;br /&gt;
es soll aber keine Historie der Zahlungs-Anweisungen geben.&lt;br /&gt;
Der Gesamtwert des Portfolios muss in einer vom Kunden gewählten Währung abgerufen werden können.&lt;br /&gt;
&lt;br /&gt;
== Zusatz-Aufgabe ==&lt;br /&gt;
Früher gab es unterhalb des Penny noch die Unterteilung in &lt;br /&gt;
*    1 Half-Penny = 1/2 Penny&lt;br /&gt;
*    1 Farthing = 1/2 Half-Penny = 1/4 Penny&lt;br /&gt;
&lt;br /&gt;
Erweitere die Anwendung, damit sie auch mit Penny-Bruchteilen umgehen kann.&lt;/div&gt;</summary>
		<author><name>Ullrich</name></author>
	</entry>
</feed>