Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m320_2024:learningunits:lu09:aufgaben:schulverwaltung [2024/09/17 09:16] – [SchoolClass] msutermodul:m320_2024:learningunits:lu09:aufgaben:schulverwaltung [2024/09/26 10:04] (aktuell) msuter
Zeile 1: Zeile 1:
 ====== LU09.A01 - Schulverwaltung ====== ====== LU09.A01 - Schulverwaltung ======
 +<nodisp>TODO: ''show_report'' in ''Student'' entfernen. Die Methode macht das gleiche wie das ''property''</nodisp>
 <WRAP center round todo 60%> <WRAP center round todo 60%>
  
Zeile 23: Zeile 23:
 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://ritholtz.com/wp-content/uploads/2020/03/dontpanic.jpg?400}}+{{https://ritholtz.com/wp-content/uploads/2020/03/dontpanic.jpg?300|}}
  
 ===== Vorgehen ===== ===== Vorgehen =====
Zeile 49: Zeile 49:
   * Beim Versuch mehr als 20 Studenten einzufügen, soll die Methode einen ''OverflowError'' werfen.   * Beim Versuch mehr als 20 Studenten einzufügen, soll die Methode einen ''OverflowError'' werfen.
  
-=== count_student ===+=== count_students ===
   * Gibt die Anzahl Studenten zurück.   * Gibt die Anzahl Studenten zurück.
  
Zeile 82: Zeile 82:
 === Konstruktor === === Konstruktor ===
   * Beachten Sie die Parameter und Defaultwerte.   * Beachten Sie die Parameter und Defaultwerte.
 +=== show_report === 
 +Gibt die Referenz auf das ''report''-Objekt aus dem Attribut zurück.
  
 ==== StudentReport ==== ==== StudentReport ====
Zeile 137: Zeile 138:
   * Bei einem ungültigen Index soll ein ''IndexError'' ausgelöst werden.   * Bei einem ungültigen Index soll ein ''IndexError'' ausgelöst werden.
  
-=== calc_average ===+=== count_grades === 
 +  * Gibt die Anzahl Noten (''Grade'') zurück. 
 + 
 +=== average ===
   * Die Methode berechnet den Notendurchschnitt aus allen ''Grade''-Objekten in der Liste.   * Die Methode berechnet den Notendurchschnitt aus allen ''Grade''-Objekten in der Liste.
   * Falls keine ''Grade''-Objekte in der Liste vorhanden sind, wird der Wert ''0.00'' zurück gegeben.   * Falls keine ''Grade''-Objekte in der Liste vorhanden sind, wird der Wert ''0.00'' zurück gegeben.
Zeile 150: Zeile 154:
 === Konstruktor === === Konstruktor ===
   * Initialisieren Sie die Werte ''value'' und ''date'' gemäss Klassendiagramm.   * Initialisieren Sie die Werte ''value'' und ''date'' gemäss Klassendiagramm.
-  * Achten Sie auf die Zusicherung für den Wert von ''value''. Diese nehmen Sie im ''__post_init__'' vor.+  * Achten Sie auf die Zusicherung für den Wert von ''value''. Diese nehmen Sie im ''__post_init__'' vor. \\ Falls der Wert ungültig ist (keine Zahl, zu gross, zu klein) lösen Sie einen ''ValueError'' aus.
  
 === date.setter === === date.setter ===
Zeile 166: Zeile 170:
 ==== main ==== ==== main ====
 In der ''main''-Methode erzeugen Sie die verschiedenen Objekte und zeigen die Zeugnisse an. In der ''main''-Methode erzeugen Sie die verschiedenen Objekte und zeigen die Zeugnisse an.
- 
-  * Erzeugen Sie die Objekte in der Reihenfolge, wie sie auch für die Zuweisung in den Konstruktoren nötig sind. Wenn Sie unsicher sind, skizzieren Sie sich den Ablauf des Programms als Sequenzdiagramm auf.  
  
 === 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:\\ +<code> 
-{{:modul:m320:learningunits:lu05:aufgaben:lu03-aufg8-schulverwaltung-2.png?200|}}+Moritz 
 +Pia 
 +Cem 
 + 
 +---- 
 +Zeugnis fürMoritz 
 +   Mathe      4.25 
 +   Deutsch    5.00 
 +   Turnen     5.00 
 +---- 
 +Zeugnis fürPia 
 +   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 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 
 +</code>
  
 === Dauer === === Dauer ===
Zeile 187: Zeile 221:
 <details> <details>
 <summary>//=> GitHub Repo für externe Besucher//</summary> <summary>//=> GitHub Repo für externe Besucher//</summary>
-GitHub Repository https://github.com/templates-python/m319-lu10-a02-reader-module+GitHub Repository https://github.com/templates-python/m320-lu09-a01-school
  
 //Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden// //Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden//
  • modul/m320_2024/learningunits/lu09/aufgaben/schulverwaltung.1726557379.txt.gz
  • Zuletzt geändert: 2024/09/17 09:16
  • von msuter