Sie können in einer komplexen Anwendung selbständig
Es ist eine einfache Schulverwaltung gemäss folgendem Klassendiagramm zu implementieren.
Dabei nutzen Sie Ihr Wissen zu ein- und zweiseitiger Beziehung sowie den 4 gezeigten Fällen der Referenzzuweisung. Ebenso verwenden Sie Mehrfachbeziehungen.
Die Beschreibung der Klassen und Methoden erfolgt von links nach rechts und von oben nach unten. Erstellen Sie selbständig einen Plan, in welcher Reihenfolge Sie die Klassen erstellt wollen. Ein paar Tipps:
property
und setter
.show_…
liefern immer einen String als Returnwert. Der print
-Befehl wird nur im main()
genutzt.students[] : Student
im Klassendiagramm zeigt an, dass es sich um eine Liste (Array) handelt. OverflowError
werfen.IndexError
ausgelöst werden.Max Pia Cem
Zeugnis für: Cem Mathe : 4.25 Deutsch : 5.50 Turnen : 5.50
Die Methode erzeugt selber keine Liste, sie ruft lediglich eine Methode in einem anderen Objekt auf.
Gibt die Referenz auf das report
-Objekt aus dem Attribut zurück.
subjects[] : Subject
im Klassendiagramm zeigt an, dass es sich um eine Liste (Array) handelt. Subject
) einzufügen, soll die Methode einen OverflowError
werfen.Subject
) beim angegebenen Index.IndexError
ausgelöst werden.Zeugnis für: Cem Mathe : 4.25 Deutsch : 5.50 Turnen : 5.50
Fach: Mathe mit 2 Noten - 1: 5.00 am 01.01.2011 - 2: 3.50 am 02.02.2022 Schnitt: 4.25 Fach: Deutsch mit 3 Noten - 1: 5.50 am 03.03.2033 - 2: 6.00 am 04.04.2044 - 3: 5.00 am 05.05.2055 Schnitt: 5.50
Die Schreibweise grades[] : Grade
im Klassendiagramm zeigt an, dass es sich um eine Liste (Array) handelt.
Initialisieren Sie das Attribut als leere Liste.
Grade
-Objekte) umsetzen. OverflowError
werfen.Grade
) beim angegebenen Index.IndexError
ausgelöst werden.Grade
) zurück.Grade
-Objekten in der Liste.Grade
-Objekte in der Liste vorhanden sind, wird der Wert 0.00
zurück gegeben.Subject
mit den Testfällen in test_subject.py
Die Klasse Grade
wird als @dataclass
realisiert.
value
und date
gemäss Klassendiagramm.value
. Diese nehmen Sie im post_init
vor. ValueError
aus.Diese Methode ist bereits vorgegeben.
self._date
.DateTime
⇒ direkt speichernString
⇒ Umwandeln in DateTime
In der main
-Methode erzeugen Sie die verschiedenen Objekte und zeigen die Zeugnisse an.
Moritz Pia Cem ---- Zeugnis für: Moritz Mathe : 4.25 Deutsch : 5.00 Turnen : 5.00 ---- Zeugnis für: Pia Mathe : 5.50 Deutsch : 5.33 Turnen : 5.25 ---- Zeugnis für: Cem Mathe : 4.25 Deutsch : 5.50 Turnen : 5.50 ---- Student Theo nicht gefunden Fach: Mathe mit 2 Noten - 1: 5.00 am 01.01.2011 - 2: 3.50 am 02.02.2022 Schnitt: 4.25 Fach: Deutsch mit 3 Noten - 1: 5.50 am 03.03.2033 - 2: 6.00 am 04.04.2044 - 3: 5.00 am 05.05.2055 Schnitt: 5.50 Fach: Turnen mit 4 Noten - 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 Schnitt: 5.50
4 - 6 Stunden
Mittels Push ins GitHub Repository
GitHub Repository https://github.com/templates-python/m320-lu09-a01-school
Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden