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.
report an (ruft den setter für student im studet_report auf) und initialisiert dadurch die zweiseitige Beziehung
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