Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
modul:archiv:m320:learningunits:lu06:aufgaben:lu07-aufgabe_6 [2026/08/30 14:06] – ↷ Seite von modul:m320:learningunits:lu06:aufgaben:lu07-aufgabe_6 nach modul:archiv:m320:learningunits:lu06:aufgaben:lu07-aufgabe_6 verschoben msutermodul:archiv:m320:learningunits:lu06:aufgaben:lu07-aufgabe_6 [2026/08/30 14:06] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden msuter
Zeile 4: Zeile 4:
 === Auftrag === === Auftrag ===
 **Ausgangslage**\\ **Ausgangslage**\\
-In Kapitel 4 der LU06 wird in [[modul:m320:learningunits:lu06:theorie:lu07-kapitel_4|Beispiel 6.4]] gezeigt, was Überschreiben (overwriting) bewirken soll. Setzen Sie nun dieses Beispiel um. Dazu basieren Sie auf dem Klassendiagramm gemäss [[modul:m320:learningunits:lu06:theorie:lu07-kapitel_1|Abb 6.2]] sowie der [[modul:m320:learningunits:lu06:aufgaben:lu07-aufgabe_5|Aufgabe 5]].\\+In Kapitel 4 der LU06 wird in [[modul:archiv:m320:learningunits:lu06:theorie:lu07-kapitel_4|Beispiel 6.4]] gezeigt, was Überschreiben (overwriting) bewirken soll. Setzen Sie nun dieses Beispiel um. Dazu basieren Sie auf dem Klassendiagramm gemäss [[modul:archiv:m320:learningunits:lu06:theorie:lu07-kapitel_1|Abb 6.2]] sowie der [[modul:archiv:m320:learningunits:lu06:aufgaben:lu07-aufgabe_5|Aufgabe 5]].\\
 //Hinweis://\\ //Hinweis://\\
 //Diese Aufgabe umfasst viel Wissen und Können, das Sie bisher angewendet haben. Schauen Sie sich notfalls die entsprechenden Ausführungen der Theorie und Übungen an!//\\ //Diese Aufgabe umfasst viel Wissen und Können, das Sie bisher angewendet haben. Schauen Sie sich notfalls die entsprechenden Ausführungen der Theorie und Übungen an!//\\
 \\ \\
 Gegeben ist dazu das folgende Klassendiagramm.\\ Gegeben ist dazu das folgende Klassendiagramm.\\
-{{:modul:m320:learningunits:lu06:aufgaben:lu06-aufg6_ueberschreiben-1.png?900|}}\\+{{modul:archiv:m320:learningunits:lu06:aufgaben:lu06-aufg6_ueberschreiben-1.png?900|}}\\
 Die Methoden der Klasse ''BankAccount'' sollen folgende Funktionen ausführen: Die Methoden der Klasse ''BankAccount'' sollen folgende Funktionen ausführen:
   * ''is_withdraw_money'' liefert einen angeforderten Geldbetrag, sofern der Saldo (''balance'') nicht negativ wird. Ist das der Fall, liefert die Methoden False (Geldbezug nicht möglich), sonst True.   * ''is_withdraw_money'' liefert einen angeforderten Geldbetrag, sofern der Saldo (''balance'') nicht negativ wird. Ist das der Fall, liefert die Methoden False (Geldbezug nicht möglich), sonst True.
Zeile 39: Zeile 39:
   - Erstellen Sie nun die Klasse ''Customer''. Implementieren Sie die Methoden gemäss der obigen Beschreibung. \\ //Hinweis: Sie können diese Klasse noch nicht testen, da die Klasse ''BankAccount'' fehlt. Das werden Sie später aber nachholen.// \\    - Erstellen Sie nun die Klasse ''Customer''. Implementieren Sie die Methoden gemäss der obigen Beschreibung. \\ //Hinweis: Sie können diese Klasse noch nicht testen, da die Klasse ''BankAccount'' fehlt. Das werden Sie später aber nachholen.// \\ 
   - Erstellen Sie nun die Klasse ''BankAccount'' gemäss der Beschreibung oben, aber ohne ''main''-Methode.   - Erstellen Sie nun die Klasse ''BankAccount'' gemäss der Beschreibung oben, aber ohne ''main''-Methode.
-  - Fügen Sie der Klasse ''BankAccount'' nun noch die ''main''-Methode zu. Die Ausgabe muss wie folgt aussehen\\ {{:modul:m320:learningunits:lu06:aufgaben:lu06-aufg4_-_output_bankaccount.png?300|}} \\+  - Fügen Sie der Klasse ''BankAccount'' nun noch die ''main''-Methode zu. Die Ausgabe muss wie folgt aussehen\\ {{modul:archiv:m320:learningunits:lu06:aufgaben:lu06-aufg4_-_output_bankaccount.png?300|}} \\
   - Testen Sie die Klasse ''BankAccount'', bevor Sie diese für die weitere Arbeit nutzen. Dazu verwenden Sie die Klasse ''TestBankAccount'' in ''test_bank_account.py''.   - Testen Sie die Klasse ''BankAccount'', bevor Sie diese für die weitere Arbeit nutzen. Dazu verwenden Sie die Klasse ''TestBankAccount'' in ''test_bank_account.py''.
   - Testen Sie nun die Klasse ''Customer''. Dazu verwenden Sie die Testklasse ''TestCustomer'' in der Datei ''test_customer.py''.   - Testen Sie nun die Klasse ''Customer''. Dazu verwenden Sie die Testklasse ''TestCustomer'' in der Datei ''test_customer.py''.
Zeile 52: Zeile 52:
   - Ergänzen Sie wenn nötig den Konstruktoren von ''BancAccount'' für die Übergabe der Referenz an die Klasse ''Customer''.   - Ergänzen Sie wenn nötig den Konstruktoren von ''BancAccount'' für die Übergabe der Referenz an die Klasse ''Customer''.
   - Den Teil "money draw" im Diagramm führen Sie zwei Mal aus. Einmal mit einem Bezug von 700 und einmal mit einem Bezug von 400. Hier liefert Ihnen die Methode ''withdraw_money()'' den Wert ''True'', wenn ein Bezug von Geld möglich ist. Wenn nicht - weil Saldo zu klein - liefert sie ''False''. Dem entsprechend soll die Ausgabe am Bildschirm sein. Vergleichen Sie dazu unten den Printscreen.    - Den Teil "money draw" im Diagramm führen Sie zwei Mal aus. Einmal mit einem Bezug von 700 und einmal mit einem Bezug von 400. Hier liefert Ihnen die Methode ''withdraw_money()'' den Wert ''True'', wenn ein Bezug von Geld möglich ist. Wenn nicht - weil Saldo zu klein - liefert sie ''False''. Dem entsprechend soll die Ausgabe am Bildschirm sein. Vergleichen Sie dazu unten den Printscreen. 
-{{:modul:m320:learningunits:lu06:aufgaben:lu06-aufg6_sequenzdiagramm.png?650|}}+{{modul:archiv:m320:learningunits:lu06:aufgaben:lu06-aufg6_sequenzdiagramm.png?650|}}
  
 **Erwartetes Ergebnis**\\ **Erwartetes Ergebnis**\\
 Wenn Sie die Klassen gemäss Klassendiagramm und den Ablauf gemäss Sequenzdiagramm implementiert haben, sollten Sie - unter Berücksichtigung einiger erklärender ''print()''-Befehle in ''main'' - ein vergleichbares Ergebis erhalten.\\ Wenn Sie die Klassen gemäss Klassendiagramm und den Ablauf gemäss Sequenzdiagramm implementiert haben, sollten Sie - unter Berücksichtigung einiger erklärender ''print()''-Befehle in ''main'' - ein vergleichbares Ergebis erhalten.\\
 Alle gelb markierten stellen werden durch Attribute geliefert bzw. sind im print-Befehl der jeweiligen Klasse zu finden.\\ Alle gelb markierten stellen werden durch Attribute geliefert bzw. sind im print-Befehl der jeweiligen Klasse zu finden.\\
-{{:modul:m320:learningunits:lu06:aufgaben:lu06-aufg6_ueberschreiben-3.png?500|}}\\+{{modul:archiv:m320:learningunits:lu06:aufgaben:lu06-aufg6_ueberschreiben-3.png?500|}}\\
 ===Dauer=== ===Dauer===
 3-5 Stunden (als Hausaufgabe) 3-5 Stunden (als Hausaufgabe)
  • modul/archiv/m320/learningunits/lu06/aufgaben/lu07-aufgabe_6.txt
  • Zuletzt geändert: 2026/08/30 14:06
  • von msuter