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.
Grade als @dataclass. value. Diese nehmen Sie im Konstruktor vor, d.h. dass Sie keine setter-Methode schreiben (ist gemäss Klassendiagramm nicht vorgesehen). value und date gemäss Klassendiagramm. Grade. (test_grade.py) Subject. Grade-Objekte) umsetzen. grades[] : Grade im Klassendiagramm deutet auf die Nutzung eines Array hin. get_value(idx) bzw. take_value(idx)) soll im Fehlerfall der Wert 0 zurückgegeben werden. Beim Datum (get_date(idx) bzw. take_date(idx)) wird None geliefert. get_average liefert bei fehlendem Noteneintrag (size = 0) den Wert 0 zurück. Dieser Test ist zwingend nötig, da sonst eine Division durch 0 zu einem Laufzeitfehler führt. Subject. (test_subject.py) ClassReport. set_student und get_student vorerst weg. Um diese Methode zu testen, benötigen Sie zuerst ein Student-Objekt. Die entsprechende Klasse Student existiert aber noch nicht.None zurück. to_string() liefert ein Zeugnis mit allen Fächern und dem entsprechenden Notenschnitt. Eine mögliche Ausgabe kann wie folgt aussehen:
print_details() liefert alle Fächern mit den einzelnen Noten. Eine mögliche Ausgabe kann wie folgt aussehen:
ClassReport. (test_classreport.py) main-Methode in classreport.py und geben Sie die to_string-Methode sowie print_details auf dem Bildschirm aus. Student. Jetzt ist der Moment gekommen, um in der Klasse ClassReport die set_student und get_student-Methode zu ergänzen. (mit der Annotation @property bzw. @student.setter) ClassReport-Objekt mitgeteilt. Student. (test_student.py) main-Methode in student.py und führen Sie die to_string-Methode des ClassReport-Objektes aus. Dazu müssen natürlich auch 3 Subject-Objekte und dazu ein paar Grade-Objekte erzeugt werden. Ebenso ein Student-Objekt, das den print dann auslöst. SchoolClass. SchoolClass. (test_school_class.py) main-Methode inder Datei main.py.Das Programm liefert
4 - 6 Stunden