Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m320_2024:learningunits:lu09:aufgaben:schulverwaltung [2024/09/16 10:49] – msuter | modul:m320_2024:learningunits:lu09:aufgaben:schulverwaltung [2024/09/26 10:04] (aktuell) – msuter | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== LU09.A01 - Schulverwaltung ====== | ====== LU09.A01 - Schulverwaltung ====== | ||
+ | < | ||
+ | <WRAP center round todo 60%> | ||
- | === Ziel === | ||
Sie können in einer komplexen Anwendung selbständig | Sie können in einer komplexen Anwendung selbständig | ||
* die Klassen erstellen | * die Klassen erstellen | ||
Zeile 7: | Zeile 8: | ||
* den nötigen Ablauf selbst festlegen | * den nötigen Ablauf selbst festlegen | ||
* die gefordeten Ausgaben erzeugen | * die gefordeten Ausgaben erzeugen | ||
+ | |||
+ | </ | ||
=== Vorgehen === | === Vorgehen === | ||
Zeile 19: | Zeile 22: | ||
Dabei nutzen Sie Ihr Wissen zu ein- und zweiseitiger Beziehung sowie den 4 gezeigten Fällen der Referenzzuweisung. Ebenso verwenden Sie Mehrfachbeziehungen. | Dabei nutzen Sie Ihr Wissen zu ein- und zweiseitiger Beziehung sowie den 4 gezeigten Fällen der Referenzzuweisung. Ebenso verwenden Sie Mehrfachbeziehungen. | ||
+ | |||
+ | {{https:// | ||
===== Vorgehen ===== | ===== Vorgehen ===== | ||
Zeile 42: | Zeile 47: | ||
* Fügt einen Studenten in die Liste ein. | * Fügt einen Studenten in die Liste ein. | ||
* Beachten Sie, dass gemäss Klassendiagramm max. 20 Studenten möglich sind. Das müssen Sie beim Zufügen von Studenten umsetzen. | * Beachten Sie, dass gemäss Klassendiagramm max. 20 Studenten möglich sind. Das müssen Sie beim Zufügen von Studenten umsetzen. | ||
+ | * Beim Versuch mehr als 20 Studenten einzufügen, | ||
- | === count_student | + | === count_students |
* Gibt die Anzahl Studenten zurück. | * Gibt die Anzahl Studenten zurück. | ||
=== take_student(index) === | === take_student(index) === | ||
* Liefert den Studenten beim angegebenen Index. | * Liefert den Studenten beim angegebenen Index. | ||
- | * Stellen Sie sicher, dass ein ungültiger Index zu keinem Laufzeitfehler führt. Stattdessen soll bei einem ungültigen Index der Wert '' | + | * Bei einem ungültigen Index soll ein '' |
=== show_student_list === | === show_student_list === | ||
- | * Diese Methode liefert eine Liste aller Studenten | + | * Diese Methode liefert eine Liste aller Studenten. Die Ausgabe könnte wie folgt aussehen: |
< | < | ||
Zeile 60: | Zeile 66: | ||
=== show_student_report(name) === | === show_student_report(name) === | ||
- | * Diese Methode liefert das Zeugnis für einen Studenten mit allen Fächern und dem Notenschnitt | + | * Diese Methode liefert das Zeugnis für einen Studenten mit allen Fächern und dem Notenschnitt. Die Ausgabe könnte wie folgt aussehen: |
< | < | ||
- | ... | + | Zeugnis für: Cem |
+ | Mathe : | ||
+ | Deutsch | ||
+ | Turnen | ||
</ | </ | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Die Methode erzeugt selber keine Liste, sie ruft lediglich eine Methode in einem anderen Objekt auf. | ||
+ | </ | ||
==== Student ==== | ==== Student ==== | ||
=== Konstruktor === | === Konstruktor === | ||
* Beachten Sie die Parameter und Defaultwerte. | * Beachten Sie die Parameter und Defaultwerte. | ||
- | |||
=== show_report === | === show_report === | ||
- | * Diese Methode liefert | + | Gibt die Referenz auf das '' |
- | + | ||
- | Die Ausgabe könnte wie folgt aussehen: | + | |
- | + | ||
- | < | + | |
- | ... | + | |
- | </ | + | |
==== StudentReport ==== | ==== StudentReport ==== | ||
Zeile 86: | Zeile 92: | ||
=== add_subject === | === add_subject === | ||
* Beachten Sie, dass gemäss Klassendiagramm max. 3 Fächer möglich sind. | * Beachten Sie, dass gemäss Klassendiagramm max. 3 Fächer möglich sind. | ||
- | * Beim Versuch mehr als 3 Fächer ('' | + | * Beim Versuch mehr als 3 Fächer ('' |
=== take_subject === | === take_subject === | ||
- | * Stellen Sie sicher, dass ein ungültiger | + | * Liefert das Fach ('' |
+ | * Bei einem ungültigen Index soll ein '' | ||
=== show_overview === | === show_overview === | ||
Zeile 95: | Zeile 102: | ||
< | < | ||
- | ... | + | Zeugnis für: Cem |
+ | Mathe : | ||
+ | Deutsch | ||
+ | Turnen | ||
</ | </ | ||
Zeile 102: | Zeile 112: | ||
< | < | ||
- | ... | + | Fach: Mathe mit 2 Noten |
+ | - 1: 5.00 am 01.01.2011 | ||
+ | - 2: 3.50 am 02.02.2022 | ||
+ | | ||
+ | Fach: Deutsch | ||
+ | - 1: 5.50 am 03.03.2033 | ||
+ | - 2: 6.00 am 04.04.2044 | ||
+ | - 3: 5.00 am 05.05.2055 | ||
+ | | ||
</ | </ | ||
Zeile 113: | Zeile 131: | ||
=== add_grade === | === add_grade === | ||
* Beachten Sie, dass gemäss Klassendiagramm max. 4 Noten möglich sind. Das müssen Sie beim Zufügen von Noten ('' | * Beachten Sie, dass gemäss Klassendiagramm max. 4 Noten möglich sind. Das müssen Sie beim Zufügen von Noten ('' | ||
+ | * Beim Versuch mehr als 4 Noten einzufügen, | ||
* Die untere Grenze von 2 Noten müssen Sie (noch) nicht beachten. | * Die untere Grenze von 2 Noten müssen Sie (noch) nicht beachten. | ||
=== take_grade === | === take_grade === | ||
- | * Stellen Sie sicher, dass ein ungültiger | + | * Liefert die Note ('' |
+ | * Bei einem ungültigen Index soll ein '' | ||
- | === calc_average | + | === count_grades === |
+ | * Gibt die Anzahl Noten ('' | ||
+ | |||
+ | === average | ||
* Die Methode berechnet den Notendurchschnitt aus allen '' | * Die Methode berechnet den Notendurchschnitt aus allen '' | ||
* Falls keine '' | * Falls keine '' | ||
Zeile 131: | Zeile 154: | ||
=== Konstruktor === | === Konstruktor === | ||
* Initialisieren Sie die Werte '' | * Initialisieren Sie die Werte '' | ||
- | * Achten Sie auf die Zusicherung für den Wert von '' | + | * Achten Sie auf die Zusicherung für den Wert von '' |
+ | |||
+ | === date.setter | ||
+ | <WRAP center round tip 60%> | ||
+ | Diese Methode ist bereits vorgegeben. | ||
+ | </ | ||
+ | |||
+ | * Diese Methode schreibt das Attribut '' | ||
+ | * Je nach Art des Inputs wird dieser unterschiedlich verarbeitet: | ||
+ | * '' | ||
+ | * '' | ||
+ | * Alles andere => Der aktuelle Zeitstempel wird gespeichert. | ||
==== main ==== | ==== main ==== | ||
In der '' | In der '' | ||
- | |||
- | * Erzeugen Sie die Objekte in der Reihenfolge, | ||
=== Ausgabe === | === Ausgabe === | ||
- | Das Programm liefert | ||
- | * eine Liste der Studenten | ||
- | * pro Student das Zeugnis (Report) mit dem Notenschnitt | ||
- | * für einen Studenten alle Einzelnoten. Sie können hier frei wählen, für wen die Noten ausgegeben werden. | ||
- | Die Ausgabe soll in etwa wie folgt aussehen:\\ | + | < |
- | {{:modul:m320:learningunits:lu05:aufgaben:lu03-aufg8-schulverwaltung-2.png?200|}} | + | Moritz |
+ | Pia | ||
+ | Cem | ||
+ | |||
+ | ---- | ||
+ | Zeugnis für: Moritz | ||
+ | Mathe : | ||
+ | Deutsch | ||
+ | Turnen | ||
+ | ---- | ||
+ | Zeugnis für: Pia | ||
+ | Mathe : | ||
+ | Deutsch | ||
+ | Turnen | ||
+ | ---- | ||
+ | Zeugnis für: Cem | ||
+ | Mathe : | ||
+ | Deutsch | ||
+ | Turnen | ||
+ | ---- | ||
+ | Student Theo nicht gefunden | ||
+ | Fach: Mathe mit 2 Noten | ||
+ | - 1: 5.00 am 01.01.2011 | ||
+ | - 2: 3.50 am 02.02.2022 | ||
+ | | ||
+ | Fach: Deutsch | ||
+ | - 1: 5.50 am 03.03.2033 | ||
+ | - 2: 6.00 am 04.04.2044 | ||
+ | - 3: 5.00 am 05.05.2055 | ||
+ | | ||
+ | Fach: Turnen | ||
+ | - 1: 4.50 am 06.06.2066 | ||
+ | - 2: 6.00 am 07.07.1977 | ||
+ | - 3: 6.00 am 08.08.1988 | ||
+ | - 4: 5.50 am 09.09.1999 | ||
+ | | ||
+ | </ | ||
=== Dauer === | === Dauer === | ||
Zeile 157: | Zeile 221: | ||
< | < | ||
< | < | ||
- | GitHub Repository https:// | + | GitHub Repository https:// |
//Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden// | //Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden// |