diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-04-26 15:20:43 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2023-04-26 15:20:43 +0200 |
| commit | e81c04b0a3813ed837ca1831a408a32c7d01a696 (patch) | |
| tree | 3414b5ff06bbe2abe0fd1a10de98842d21719c2e /Info | |
| parent | 0518b74a3b67929c197a2464338a563e92ead2ce (diff) | |
| download | unterricht-e81c04b0a3813ed837ca1831a408a32c7d01a696.tar.gz unterricht-e81c04b0a3813ed837ca1831a408a32c7d01a696.zip | |
add feedback from ECK and fix lot of small mistakes
Diffstat (limited to 'Info')
| -rw-r--r-- | Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex | 10 | ||||
| -rw-r--r-- | Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex | 92 | ||||
| -rw-r--r-- | Info/2023/10D/2_Kurzarbeit/_test.tex | 13 |
3 files changed, 75 insertions, 40 deletions
diff --git a/Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex b/Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex index b82f14ed..f3f97028 100644 --- a/Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex +++ b/Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex @@ -3,11 +3,11 @@ \begin{Aufg} -\textbf{a)} Beschreibe in eigenen Worten die zwei Aspekte des Grundsatzes der Datenkapselung und wie er in der Programmiersprache Java umgesetzt wird. +\textbf{a)} Beschreibe in eigenen Worten die beiden Aspekte des Grundsatzes der Datenkapselung und wie dies in der Programmiersprache Java umgesetzt wird. -\noindent \textbf{b)} Markiere in folgendem Programmcode die Stellen an denen der Grundsatz der Datenkapselung nicht umgesetzt wurde und begründe kurz warum. +\noindent \textbf{b)} Markiere in folgendem Programmcode die Stellen, an denen der Grundsatz der Datenkapselung nicht umgesetzt wurde und begründe kurz warum. -\begin{minted}[linenos, xleftmargin=1.5em]{java} +\begin{minted}[linenos, xleftmargin=1.6em]{java} public class Benutzeraccount { public String benutzername; private String[] posts; @@ -16,8 +16,8 @@ public class Benutzeraccount { benutzername = neuerNutzer; } - private String gibPosts() { - return post; + private String[] gibPosts() { + return posts; } } \end{minted} diff --git a/Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex b/Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex index e1535d0a..585219d5 100644 --- a/Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex +++ b/Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex @@ -5,18 +5,18 @@ Du wurdest beauftragt die Gehaltsabrechnung eines Unternehmens in Java zu implementieren. Das Unternehmen beschäftigt externe Freiberufler, Festangestellte, sowie Manager. -Für jede Art von Mitarbeiter soll das Monatsgehalt mit der Methode \texttt{berechneGehalt} errechnet und als Rückgabewert zurück gegeben werden. +Für jede Art von Mitarbeiter soll das Monatsgehalt mit der Methode \textit{berechneGehalt()} errechnet und als Rückgabewert zurückgegeben werden. \textbf{a)} Zusätzlich sollen Festangestellte einen individuellen Jahresbonus erhalten, der prozentual mit dem Monatsgehalt ausbezahlt wird. -Dafür wurde bereits die folgende Klasse \texttt{Angestellter} implementiert: +Dafür wurde bereits die folgende Klasse \textit{Angestellter} implementiert: \vspace{-0.5cm} \begin{center} \begin{minipage}{0.7\textwidth} \begin{minted}[]{java} class Angestellter extends Mitarbeiter { - double gehalt; - double jahresbonus; + private double gehalt; + private double jahresbonus; public Angestellter(String n, double g, double j) { super(n); @@ -32,58 +32,85 @@ class Angestellter extends Mitarbeiter { \end{minipage} \end{center} -Erweitere auf dieser Basis das untere Klassendiagramm um die Klasse \texttt{Angestellter}. +Erweitere auf dieser Basis das untenstehende Klassendiagramm um die Klasse \textit{Angestellter}, inklusive aller zugehöriger Attribute und Methoden. +Auf die Angabe von Datentypen kann verzichtet werden. \vspace{0.5cm} -\resizebox{0.6\textwidth}{!}{ +% \hspace{-0.25} \begin{tikzpicture} -\begin{class}[text width=6cm]{Unternehmen}{0,4} +\begin{class}[text width=5.5cm]{Unternehmen}{-0.25,4} \attribute{mitarbeiter: Mitarbeiter[]} -\operation{mitarbeiterEinstellen(mitarbeiter)} +\operation{einstellen(mitarbeiter)} \operation{berechneGehaltsKosten()} \end{class} -\begin{class}[text width=4cm]{Mitarbeiter}{7, 3.4} +\begin{class}[text width=4cm]{Mitarbeiter}{7, 4} \attribute{name: String} \operation{gibName()} +\operation{berechneGehalt()} \end{class} -\association{Unternehmen}{}{1}{Mitarbeiter}{n}{} +\association{Unternehmen}{hat >}{1}{Mitarbeiter}{n}{} -\begin{class}[text width=3.5cm]{Manager}{2,0} +\begin{class}[text width=3.5cm]{Manager}{2,-1} \inherit{Mitarbeiter} \operation{berechneGehalt()} \end{class} -\begin{class}[text width=4.5cm]{Externer}{7,0} +\begin{class}[text width=4.5cm]{Externer}{11,-1} \inherit{Mitarbeiter} \attribute{stunden: double} \attribute{stundenlohn: double} \operation{berechneGehalt()} \end{class} \end{tikzpicture} -} + +\iftoggle{lehrerversion}{}{\newpage} \textbf{b)} Externe Freiberufler werden pro Stunde mit einem individuellen Stundenlohn bezahlt. Manager erhalten pauschal 10 tausend Euro. -Implementiere die Klassen \texttt{Externer} und \texttt{Manager} mit geeignete Konstruktoren, sowie entsprechenden Methoden \texttt{berechneGehalt}. +Implementiere die Klassen \textit{Externer} und \textit{Manager} mit geeignete Konstruktoren, sowie entsprechenden Methoden \textit{berechneGehalt()}. In die Konstruktoren sollen zu allen Attributen der Klasse Werte als Parameter übergeben und zuwiesen werden. % , die mit einem Pauschalbetrag von 10 tausend Euro vergütet werden % die nach Stunden bezahlt werden, -\iftoggle{lehrerversion}{}{ - \liniert[8mm]{7} - \newpage - \liniert[8mm]{6} +% \iftoggle{lehrerversion}{\iftrue}{\iffalse} +\iftoggle{lehrerversion}{\iffalse}{\iftrue} +\begin{minted}[fontsize=\small, bgcolor=white]{java} +class Externer extends Mitarbeiter { + + + + public Externer( ) { + + + + } + + public double berechneGehalt() { + + } } +class Manager extends Mitarbeiter { + public Manager( ) { + + } + + public double berechneGehalt() { + + } +} +\end{minted} +\fi + \textbf{c)} Folgender Programmcode wurde zusätzlich erstellt. Markiere die Stellen an denen das Konzept des Polymorphismus verwendet wird und erkläre kurz dessen konkrete Auswirkung in diesem Programmcode. \begin{minted}[ breaklines, linenos, - xleftmargin=1.5em, + xleftmargin=1.6em, ]{java} class Unternehmen { private Mitarbeiter[] mitarbeiter; @@ -94,9 +121,9 @@ class Unternehmen { anzahlMitarbeiter = 0; } - public void mitarbeiterEinstellen(Mitarbeiter neuer) { + public void einstellen(Mitarbeiter neuer) { mitarbeiter[anzahlMitarbeiter] = neuer; - anzahlMitarbeiter = 1; + anzahlMitarbeiter = anzahlMitarbeiter + 1; } public double berechneGehaltsKosten() { @@ -113,28 +140,27 @@ class Unternehmen { \end{minted} \iftoggle{lehrerversion}{}{ - \liniert[8mm]{9} + \vspace{-0.5cm} + \liniert[8mm]{4} } +\vspace{-0.35cm} \textbf{d)} Das Programm wurde für eine konkrete Firma erweitert: -% \vspace{-1.25cm} -\begin{minipage}{0.9\textwidth} \begin{minted}[]{java} Unternehmen meineFirma = new Unternehmen(); -// Angestelltin Gabi Neu mit Gehalt 2500€ und Jahresbonus 1200€ -meineFirma.mitarbeiterEinstellen(new Angestellter("Gabi Neu", 2500, 1200)); +// Angestellte Gabi Neu mit Gehalt 2500€ und Jahresbonus 1200€ +meineFirma.einstellen(new Angestellter("Gabi Neu", 2500, 1200)); // Managerin Vanessa Boss -meineFirma.mitarbeiterEinstellen(new Manager("Vanessa Boss")); -// Externen Ingo Frei mit 40 Stunden bei einem Stundenlohn von 20€ -meineFirma.mitarbeiterEinstellen(new Externer("Ingo Frei", 40, 20)); +meineFirma.einstellen(new Manager("Vanessa Boss")); +// Externer Ingo Frei mit 40 Stunden bei einem Stundenlohn von 20€ +meineFirma.einstellen(new Externer("Ingo Frei", 40, 20)); int gehaltsKosten = meineFirma.berechneGehaltsKosten(); System.out.println("Gesamte Gehaltskosten: " + gehaltsKosten + " Euro"); \end{minted} -\end{minipage} \end{Aufg} - -Gebe die Ausgaben des Programms in der richtigen Reihenfolge an. +\vspace{-0.5cm} +Gib die Ausgaben des Programms in der richtigen Reihenfolge an. \begin{Lsg} a) Angestellter Klasse mit (gehalt, jahresbonus, berechneGehalt) (1BE); Korrekte Vererbung (1BE); korrektes UML (1BE) \\ @@ -143,7 +169,7 @@ Halbes BE Abzug pro Fehler. \begin{tikzpicture} \begin{class}[text width=7cm]{Unternehmen}{5,8} \attribute{mitarbeiter: Mitarbeiter[]} -\operation{mitarbeiterEinstellen(mitarbeiter)} +\operation{einstellen(mitarbeiter)} \operation{berechneGehaltsKosten()} \end{class} diff --git a/Info/2023/10D/2_Kurzarbeit/_test.tex b/Info/2023/10D/2_Kurzarbeit/_test.tex index ff25f818..dc7dbb48 100644 --- a/Info/2023/10D/2_Kurzarbeit/_test.tex +++ b/Info/2023/10D/2_Kurzarbeit/_test.tex @@ -10,6 +10,11 @@ \setminted{baselinestretch=1.2, fontsize=\footnotesize, bgcolor=gray!30} +\fancypagestyle{last-page}{ + \fancyfoot[C]{\makebox[\dimexpr\linewidth-2\fboxsep-2\fboxrule]{Viel Erfolg! \Signatur}}% Centre footer +} +\AtEndDocument{\thispagestyle{last-page}} + \begin{document} \thispagestyle{ErsteSeite} @@ -27,12 +32,16 @@ %%%Hier die Darstellung am Ende %%Falls es das ganze auf eine andere Seite Schiebt und man alles komprimieren will -\newcommand{\PlatzKnapp}{} +% \newcommand{\PlatzKnapp}{} % \newcommand{\KeinKleeblatt}{} %%Optional neue Seite % \newpage +\begin{tikzpicture}[remember picture, overlay, black] + \node[left] at (current page marginpar area.south east) {\bfseries $\sum$ \ \ \ {/}\AnzahlInsgesamtPunkte \ BE}; +\end{tikzpicture} + %%Bindet Kleeblatt mit Viel Erfolg ein und erstellt Platz darunter -\Ende +% \Ende \end{document} |
