aboutsummaryrefslogtreecommitdiff
path: root/Info
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-04-24 17:40:03 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2023-04-24 17:40:03 +0200
commit59d23621f97fba7e0ddbbb3838cb98f7d3492619 (patch)
tree958500564dcd3bb2042a06e25925c7a9526e6894 /Info
parent007f784f6b5958436e90aa17d8f819bd5656cd7e (diff)
downloadunterricht-59d23621f97fba7e0ddbbb3838cb98f7d3492619.tar.gz
unterricht-59d23621f97fba7e0ddbbb3838cb98f7d3492619.zip
improve the exercises with FIF
Diffstat (limited to 'Info')
-rw-r--r--Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex2
-rw-r--r--Info/10/2/Aufgaben/Polymorphismus_Beschaeftigte.tex62
-rw-r--r--Info/2023/10D/2_Kurzarbeit/_test.tex8
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