aboutsummaryrefslogtreecommitdiff
path: root/Info/10/2/Aufgaben/Referenzvariablen_Schuelerakte.tex
blob: aece0f49ac5c53cbe7be7552e1787027fca7d08d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
\renewcommand{\Verteilung}{4 + 3 BE} %%Anzahl der Punkte festlegen

\begin{Aufg}
Die Verwaltung der Schule soll digitalisiert werden.
Bei der Modellierung der Schülerakten soll die Klasse \texttt{SCHUELER} ein Kind des HSG sowie dessen Namen erfassen. Eine Klasse \texttt{SCHUELERAKTE} soll die wichtigen Informationen wie Notenschnitt, Hinweise sowie Verweise pro Schüler*in speichern.

\textbf{a)} Zeichne das Klassendiagramm der Klasse \texttt{SCHUELER} und \texttt{SCHUELERAKTE} mit ihren Attributen sowie deren Beziehung.
Ergänze das Modell um zwei \textit{passende} Methoden deiner Wahl.

\textbf{b)} Ergänze die Klasse \texttt{SCHUELER} um eine Referenz auf eine \texttt{SCHUELERAKTE}, erzeuge ein neues \texttt{SCHUELERAKTE} Objekt und ergänze die Methode \texttt{AkteAusgeben} um eine Ausgaben des Attribute \texttt{notenschnitt} aus der Schülerakte.

\begin{minted}[baselinestretch=1.2, fontsize=\small]{java}
public class SCHUELER {
  private String name;
  // TODO: Deklariere eine Referenzvariable für die Schülerakte


  public SCHUELER(String neuerName, double neuerSchnitt) {
    name = neuerName;
    // TODO: Erzeuge ein neues Schülerakte Objekt

  }

  public void AkteAusgeben() {
    System.out.println(name);
    // TODO: Gib mit Hilfe der Methode System.out.println() das Attribut
    //       notenschnitt der Akte der Schüler*in aus

  }
}
\end{minted}
\end{Aufg}

\begin{Lsg}

\begin{itemize}
  \item 1 BE für korrektes UML
  \item 1 BE wenn alle Attribute und Methoden vorhanden
  \item 1 BE für richtigen Typ des Attributes Akte
  \item 1 BE für 1 zu 1 Beziehung
  \item (Hinweise und Verweise können als String oder String[] modelliert werden)
  \item Halber Punkt Abzug für falsche Datentypen
\end{itemize}

\begin{tikzpicture}
\begin{class}[text width=5cm]{SCHUELER}{0,0}
\attribute{name : String}
\attribute{akte : SCHUELERAKTE}
\operation{NamenGeben()}
\end{class}

\begin{class}[text width=5cm]{SCHUELERAKTE}{7,0}
\attribute{notenschnitt : double}
\attribute{hinweise : String[]}
\attribute{verweise : String[]}
\end{class}

\association{SCHUELER}{}{1}{SCHUELERAKTE}{1}{}
\end{tikzpicture}

\begin{itemize}
  \item 1 BE für korrekte Variabel-Deklaration
  \item 1 BE für korrekte Initialisierung
  \item 1 BE für richtigen Verwendung der Punktnotation
\end{itemize}


\begin{minted}[baselinestretch=1.2, fontsize=\small]{java}
public class SCHUELER {
  private String name;
  // TODO: Deklariere eine Referenzvariable für die Schülerakte
  private SCHUELERAKTE akte;

  public SCHUELER(String neuerName, double neuerSchnitt) {
    name = neuerName;
    // TODO: Erzeuge ein neues Schülerakte Objekt
    akte = new SCHUELERAKTE();
  }

  public void AkteAusgeben() {
    System.out.println(name);
    // TODO: Gib mit Hilfe der Methode System.out.println() das Attribut notenschnitt der
    //       Akte der Schüler*in aus
    System.out.println(akte.notenschnitt);
  }
}
\end{minted}
\end{Lsg}