diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-04-24 17:40:03 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2023-04-24 17:40:03 +0200 |
| commit | 59d23621f97fba7e0ddbbb3838cb98f7d3492619 (patch) | |
| tree | 958500564dcd3bb2042a06e25925c7a9526e6894 /Info | |
| parent | 007f784f6b5958436e90aa17d8f819bd5656cd7e (diff) | |
| download | unterricht-59d23621f97fba7e0ddbbb3838cb98f7d3492619.tar.gz unterricht-59d23621f97fba7e0ddbbb3838cb98f7d3492619.zip | |
improve the exercises with FIF
Diffstat (limited to 'Info')
| -rw-r--r-- | Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex | 2 | ||||
| -rw-r--r-- | Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex | 62 | ||||
| -rw-r--r-- | Info/2023/10D/2_Kurzarbeit/_test.tex | 8 |
3 files changed, 45 insertions, 27 deletions
diff --git a/Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex b/Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex index 5f4bb004..b82f14ed 100644 --- a/Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex +++ b/Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex @@ -40,6 +40,6 @@ b) Halber BE für richtige Zeile; Halber BE für Begründung \begin{itemize} \setlength\itemsep{0.1em} \item Zeile 2: benutzername ist public -> Uneingeschränkter Zugriff - \item Zeile 12: gibPosts ist private -> Keine Möglichkeit an die Posts zu kommen + \item Zeile 9: gibPosts ist private -> Keine Möglichkeit an die Posts zu kommen \end{itemize} \end{Lsg} diff --git a/Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex b/Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex index b8696043..e1535d0a 100644 --- a/Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex +++ b/Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex @@ -1,21 +1,27 @@ -\renewcommand{\AnzahlPunkte}{TODO} %%Anzahl der Punkte festlegen -\renewcommand{\Verteilung}{3 + 4 + ? + 4 BE} %%Anzahl der Punkte festlegen +\renewcommand{\AnzahlPunkte}{15} %%Anzahl der Punkte festlegen +\renewcommand{\Verteilung}{3 + 4 + 4 + 4 BE} %%Anzahl der Punkte festlegen \begin{Aufg} Du wurdest beauftragt die Gehaltsabrechnung eines Unternehmens in Java zu implementieren. -Das Unternehmen beschäftigt externe Freiberufler die nach Stunden bezahlt werden, Festangestellte die einen individuell vereinbarten Festbetrag erhalten, sowie Manager die mit einem Pauschalbetrag von 10 tausend Euro vergütet werden. +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. -\textbf{a)} Zusätzlich sollen Festangestellte einen Jahresbonus erhalten, der prozentual mit dem Monatsgehalt ausbezahlt wird. -Dafür wurde bereits die folgende Klasse \texttt{Angestellter} implementiert. Erweitere auf dieser Basis das noch unvollständige Klassendiagramm um die Klasse \texttt{Angestellter}. +\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: +\vspace{-0.5cm} \begin{center} \begin{minipage}{0.7\textwidth} \begin{minted}[]{java} class Angestellter extends Mitarbeiter { + double gehalt; + double jahresbonus; + public Angestellter(String n, double g, double j) { - super(n); gehalt = g; jahresbonus = j; + super(n); + gehalt = g; + jahresbonus = j; } public double berechneGehalt() { @@ -26,6 +32,10 @@ class Angestellter extends Mitarbeiter { \end{minipage} \end{center} +Erweitere auf dieser Basis das untere Klassendiagramm um die Klasse \texttt{Angestellter}. + +\vspace{0.5cm} + \resizebox{0.6\textwidth}{!}{ \begin{tikzpicture} \begin{class}[text width=6cm]{Unternehmen}{0,4} @@ -55,11 +65,17 @@ class Angestellter extends Mitarbeiter { \end{tikzpicture} } -\textbf{b)} Implementiere die Klassen \texttt{Externer}, sowie \texttt{Manager} mit geeigneten Konstruktoren, sowie der entsprechenden Methode \texttt{berechneGehalt}. -Die Konstruktoren sollen zu allen Attributen Werte als Parameter übergeben bekommen und diese zuweisen. +\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}. +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 - ~\\[5cm] + \liniert[8mm]{6} } \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. @@ -87,7 +103,8 @@ class Unternehmen { double gesamtGehalt; for (int i = 0; i < anzahlMitarbeiter; i++) { double gehalt = mitarbeiter[i].berechneGehalt(); - System.out.printlndenen ("Name: " + mitarbeiter[i].denen gibName() + " Gehalt: " + gehalt); + System.out.println("Name: " + mitarbeiter[i].gibName() + + ", Gehalt: " + gehalt + " Euro"); gesamtGehalt = gesamtGehalt + gehalt; } return gesamtGehalt; @@ -96,12 +113,10 @@ class Unternehmen { \end{minted} \iftoggle{lehrerversion}{}{ - \newpage - ~\\[3cm] + \liniert[8mm]{9} } -\textbf{d)} Das Programm wurde mit Code für eine konkrete Firma erweitert. -Gebe die Ausgaben des Programms in der richtigen Reihenfolge an. +\textbf{d)} Das Programm wurde für eine konkrete Firma erweitert: % \vspace{-1.25cm} \begin{minipage}{0.9\textwidth} @@ -112,15 +127,18 @@ meineFirma.mitarbeiterEinstellen(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.mitarbeiterEinstellen(new Externer("Ingo Frei", 40, 20)); int gehaltsKosten = meineFirma.berechneGehaltsKosten(); -System.out.println("Gesamte Gehaltskosten: " + gehaltsKosten); +System.out.println("Gesamte Gehaltskosten: " + gehaltsKosten + " Euro"); \end{minted} \end{minipage} \end{Aufg} +Gebe 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) \\ +Halbes BE Abzug pro Fehler. \begin{tikzpicture} \begin{class}[text width=7cm]{Unternehmen}{5,8} @@ -182,12 +200,12 @@ class Manager extends Mitarbeiter { } \end{minted} -c) Zeile: 2 Mitarbeiter Array mit Datentyp der Oberklasse \\ -Zeile: 18 berechneGehalt wird von der Klasse des konkreten Objekts aufgerufen +c) Zeile: 2 Mitarbeiter Array mit Datentyp der Oberklasse (2BE) \\ +Zeile: 18 berechneGehalt wird von der Klasse des konkreten Objekts aufgerufen (2BE) d) 1 BE pro korrekter Zeile; halber BE Abzug wenn korrekte Zeile an falscher Stelle -\texttt{Name: Gabi Neu Gehalt 2600 \\ -Name: Vanessa Boss Gehalt: 10000 \\ -Name: Ingo Frei Gehalt: 800 \\ -Gesamte Gehaltskosten: 13400} +\texttt{Name: Gabi Neu, Gehalt 2600 Euro\\ +Name: Vanessa Boss, Gehalt: 10000 Euro\\ +Name: Ingo Frei, Gehalt: 800 Euro\\ +Gesamte Gehaltskosten: 13400 Euro} \end{Lsg} diff --git a/Info/2023/10D/2_Kurzarbeit/_test.tex b/Info/2023/10D/2_Kurzarbeit/_test.tex index ef5b6a63..ff25f818 100644 --- a/Info/2023/10D/2_Kurzarbeit/_test.tex +++ b/Info/2023/10D/2_Kurzarbeit/_test.tex @@ -3,8 +3,8 @@ \renewcommand{\HeaderText}{\TestArt{} aus der \Fach{}} \renewcommand{\TestNummer}{2} \renewcommand{\Klasse}{10D} -\renewcommand{\AnzahlInsgesamtPunkte}{21} -\renewcommand{\Datum}{3. May 2023} +\renewcommand{\AnzahlInsgesamtPunkte}{20} +\renewcommand{\Datum}{3. Mai 2023} \renewcommand{\baselinestretch}{1.2} @@ -17,12 +17,12 @@ \input{Aufgaben/Datenkapselung_Microblogging} \begin{Bearbeitung} -~\\[5cm] +\liniert[8mm]{6} \end{Bearbeitung} \input{Aufgaben/Polymorphismus_Beschaeftigte} \begin{Bearbeitung} -~\\[5cm] +\liniert[8mm]{4} \end{Bearbeitung} %%%Hier die Darstellung am Ende |
