Skip to content

Commit

Permalink
format
Browse files Browse the repository at this point in the history
  • Loading branch information
= committed Oct 8, 2023
1 parent 9ca3e92 commit 7d47c12
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 32 deletions.
14 changes: 9 additions & 5 deletions docs/additional-material/daniel-java1/sample-exam.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@ tags: []

## Hinweise zur Klausur

- Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern nicht anders kenntlich gemacht – auf alle Geschlechter
- Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende Implementierungen
der Object-Methoden besitzen
- Der Stereotyp `<<enumeration>>` impliziert, dass die Aufzählung einen passenden, privaten Konstruktor sowie gegebenenfalls passende Getter für alle Attribute besitzt
- Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern
nicht anders kenntlich gemacht – auf alle Geschlechter
- Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende
Implementierungen der Object-Methoden besitzen
- Der Stereotyp `<<enumeration>>` impliziert, dass die Aufzählung einen
passenden, privaten Konstruktor sowie gegebenenfalls passende Getter für alle
Attribute besitzt
- Pakete und Klassenimporte müssen nicht angegeben werden
- Für die Konsolenausgabe kann das Kürzel _sysout_ verwendet werden
- Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden (Beispiel _getLWMCP()_ statt _getLectureWithMostCreditPoints()_)
- Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden
(Beispiel _getLWMCP()_ statt _getLectureWithMostCreditPoints()_)

## Aufgabe 1 (20 Punkte)

Expand Down
97 changes: 70 additions & 27 deletions docs/additional-material/daniel-java2/sample-exam.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,25 @@ tags: []

## Hinweise zur Klausur

- Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern nicht anders kenntlich gemacht – auf alle Geschlechter
- Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende Implementierungen
der Object-Methoden besitzen
- Der Stereotyp `<<record>>` impliziert, dass die Datenklasse einen entsprechenden Konstruktor, Getter zu allen Attributen sowie entsprechende Implementierungen der Object-Methoden besitzt
- Der Stereotyp `<<enumeration>>` impliziert, dass die Aufzählung einen passenden, privaten Konstruktor sowie gegebenenfalls passende Getter für alle Attribute besitzt
- Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern
nicht anders kenntlich gemacht – auf alle Geschlechter
- Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende
Implementierungen der Object-Methoden besitzen
- Der Stereotyp `<<record>>` impliziert, dass die Datenklasse einen
entsprechenden Konstruktor, Getter zu allen Attributen sowie entsprechende
Implementierungen der Object-Methoden besitzt
- Der Stereotyp `<<enumeration>>` impliziert, dass die Aufzählung einen
passenden, privaten Konstruktor sowie gegebenenfalls passende Getter für alle
Attribute besitzt
- Pakete und Klassenimporte müssen nicht angegeben werden
- Für die Konsolenausgabe kann das Kürzel _sysout_ verwendet werden
- Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden (Beispiel _testGMPSH()_ statt _testGetMostPowerfulSuperHuman()_)
- Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden
(Beispiel _testGMPSH()_ statt _testGetMostPowerfulSuperHuman()_)

## Aufgabe 1 (14 Punkte)

Erstelle die JUnit-5-Testklasse `SuperLeagueTest` anhand des abgebildeten Klassendiagramms.
Erstelle die JUnit-5-Testklasse `SuperLeagueTest` anhand des abgebildeten
Klassendiagramms.

### Klassendiagramm

Expand Down Expand Up @@ -81,18 +88,31 @@ classDiagram

### Hinweise zur Klasse SuperLeagueTest

- Die Lebenszyklus-Methode `void setUp()` soll das nachfolgende Testszenario aufbauen:
- Es sollen die Superhelden Superman (DC, Stärke 10), Iron Man (MARVEL, 7) und Spider-Man (MARVEL, 8) erstellt und den entsprechenden Attributen zugewiesen werden
- Es soll eine MARVEL-Superheldenliga mit dem Namen _Avengers_ erstellt und dem entsprechenden Attribut zugewiesen werden
- Die Superhelden Iron Man und Spider-Man sollen den Avengers als verfügbaren Superhelden hinzugefügt werden
- Der Superheld mit dem Namen Spider-Man soll auf eine Mission geschickt werden
- Die Testmethode `void testAddSuperHuman()` soll prüfen, ob beim Aufruf der Methode `void addSuperHuman(t: T)` auf das Attribut `avengers` mit dem Wert `superman` die Ausnahme `WrongUniverseException` ausgelöst wird
- Die Testmethode `void testGetAllAvailableSuperHumans()` soll prüfen, ob beim Aufruf der Methode `List<T> getAllAvailableSuperHumans()` auf das Attribut `avengers` eine Liste der Größe 1 zurückgegeben wird
- Die Testmethode `void testGetMostPowerfulSuperHuman()` soll prüfen, ob beim Aufruf der Methode `Optional<T> getMostPowerfulSuperHuman()` auf das Attribut `avengers` der Superheld Spider-Man als Optional zurückgegeben wird
- Die Lebenszyklus-Methode `void setUp()` soll das nachfolgende Testszenario
aufbauen:
- Es sollen die Superhelden Superman (DC, Stärke 10), Iron Man (MARVEL, 7) und
Spider-Man (MARVEL, 8) erstellt und den entsprechenden Attributen zugewiesen
werden
- Es soll eine MARVEL-Superheldenliga mit dem Namen _Avengers_ erstellt und
dem entsprechenden Attribut zugewiesen werden
- Die Superhelden Iron Man und Spider-Man sollen den Avengers als verfügbaren
Superhelden hinzugefügt werden
- Der Superheld mit dem Namen Spider-Man soll auf eine Mission geschickt
werden
- Die Testmethode `void testAddSuperHuman()` soll prüfen, ob beim Aufruf der
Methode `void addSuperHuman(t: T)` auf das Attribut `avengers` mit dem Wert
`superman` die Ausnahme `WrongUniverseException` ausgelöst wird
- Die Testmethode `void testGetAllAvailableSuperHumans()` soll prüfen, ob beim
Aufruf der Methode `List<T> getAllAvailableSuperHumans()` auf das Attribut
`avengers` eine Liste der Größe 1 zurückgegeben wird
- Die Testmethode `void testGetMostPowerfulSuperHuman()` soll prüfen, ob beim
Aufruf der Methode `Optional<T> getMostPowerfulSuperHuman()` auf das Attribut
`avengers` der Superheld Spider-Man als Optional zurückgegeben wird

### Hinweis zur Klasse SuperLeague

Die Methode `void addSuperHuman(t: T)` kann die Ausnahme `WrongUniverseException` auslösen.
Die Methode `void addSuperHuman(t: T)` kann die Ausnahme
`WrongUniverseException` auslösen.

### Musterlösung

Expand Down Expand Up @@ -135,7 +155,8 @@ public class SuperLeagueTest { // 0,5

## Aufgabe 2 (16 Punkte)

Erstelle die Klasse `SuperLeague<T extends SuperHuman>` anhand des abgebildeten Klassendiagrams.
Erstelle die Klasse `SuperLeague<T extends SuperHuman>` anhand des abgebildeten
Klassendiagrams.

### Klassendiagramm

Expand Down Expand Up @@ -185,11 +206,19 @@ classDiagram

### Hinweise zur Klasse SuperLeague<T extends SuperHuman\>

- Der Assoziativspeicher `members` beinhaltet als Schlüssel alle Übermenschen der Liga sowie als Wert deren Verfügbarkeit (verfügbar: `true`, nicht verfügbar: `false`)
- Die Methode `Optional<T> getMostPowerfulSuperHuman()` soll den stärksten Übermenschen der Liga als Optional zurückgeben
- Die Methode `void addSuperHuman(t: T)` soll der Liga den eingehenden Übermenschen als verfügbares Mitglied hinzufügen. Für den Fall, dass das Universum des eingehenden Übermenschen nicht dem Universum der Liga entspricht, soll die Ausnahme `WrongUniverseException` ausgelöst werden
- Die Methode `List<T> getAllAvailableSuperHumans()` soll alle verfügbaren Übermenschen der Liga als Liste zurückgeben
- Die Methode `void sendSuperHumanOnMission(t: T)` soll die Verfügbarkeit des eingehenden Übermenschen auf nicht verfügbar setzen
- Der Assoziativspeicher `members` beinhaltet als Schlüssel alle Übermenschen
der Liga sowie als Wert deren Verfügbarkeit (verfügbar: `true`, nicht
verfügbar: `false`)
- Die Methode `Optional<T> getMostPowerfulSuperHuman()` soll den stärksten
Übermenschen der Liga als Optional zurückgeben
- Die Methode `void addSuperHuman(t: T)` soll der Liga den eingehenden
Übermenschen als verfügbares Mitglied hinzufügen. Für den Fall, dass das
Universum des eingehenden Übermenschen nicht dem Universum der Liga
entspricht, soll die Ausnahme `WrongUniverseException` ausgelöst werden
- Die Methode `List<T> getAllAvailableSuperHumans()` soll alle verfügbaren
Übermenschen der Liga als Liste zurückgeben
- Die Methode `void sendSuperHumanOnMission(t: T)` soll die Verfügbarkeit des
eingehenden Übermenschen auf nicht verfügbar setzen

### Musterlösung

Expand Down Expand Up @@ -286,11 +315,25 @@ classDiagram

### Hinweise zur Klasse SingleQueries

- Die Methode `void printAllSinglesWithMoreThan25MillionSalesPerCountry()` soll alle Singles, die sich mehr als 25 Millionen mal verkauft haben, gruppiert nach dem Land in der Form _[Land\]: [[Single\], [Single\],...\]_ ausgeben
- Die Methode `void printAverageBirthYearOfAllDeceasedArtists()` soll das durchschnittliche Geburtsjahr aller verstorbenen Künstler bzw. aller verstorbenen Künstlerinnen ausgeben. Für den Fall, dass es keinen verstorbenen Künstler bzw. keine verstorbene Künstlerin gibt, soll der Wert -1 ausgegeben werden
- Die Methode `boolean isAnySingleFromChinaWithMoreThan10MillionSales()` soll zurückgeben, ob es eine Single eines Künstlers bzw. einer Künstlerin aus China gibt, welches sich mehr als 10 Millionen Mal verkauft hat
- Die Methode `List<String> getTop3SinglesOfThisCenturyBySalesInMillions()` soll die 3 am häufigsten verkauften Singles des jetzigen Jahrtausends sortiert nach der Anzahl Verkäufe in Millionen in der Form _[Name der Single\]: [Name des Künstlers bzw. Name der Künstlerin\], [Verkäufe in Millionen\] Millionen_ zurückgeben
- Die Methode `List<Single> getAllSinglesFromEdSheeran()` soll alle Singles des Künstlers Ed Sheeran (Land: Großbritannien, Geburtstag: 17.02.1991, Status: lebendig) zurückgeben
- Die Methode `void printAllSinglesWithMoreThan25MillionSalesPerCountry()` soll
alle Singles, die sich mehr als 25 Millionen mal verkauft haben, gruppiert
nach dem Land in der Form _[Land\]: [[Single\], [Single\],...\]_ ausgeben
- Die Methode `void printAverageBirthYearOfAllDeceasedArtists()` soll das
durchschnittliche Geburtsjahr aller verstorbenen Künstler bzw. aller
verstorbenen Künstlerinnen ausgeben. Für den Fall, dass es keinen verstorbenen
Künstler bzw. keine verstorbene Künstlerin gibt, soll der Wert -1 ausgegeben
werden
- Die Methode `boolean isAnySingleFromChinaWithMoreThan10MillionSales()` soll
zurückgeben, ob es eine Single eines Künstlers bzw. einer Künstlerin aus China
gibt, welches sich mehr als 10 Millionen Mal verkauft hat
- Die Methode `List<String> getTop3SinglesOfThisCenturyBySalesInMillions()` soll
die 3 am häufigsten verkauften Singles des jetzigen Jahrtausends sortiert nach
der Anzahl Verkäufe in Millionen in der Form _[Name der Single\]: [Name des
Künstlers bzw. Name der Künstlerin\], [Verkäufe in Millionen\] Millionen_
zurückgeben
- Die Methode `List<Single> getAllSinglesFromEdSheeran()` soll alle Singles des
Künstlers Ed Sheeran (Land: Großbritannien, Geburtstag: 17.02.1991, Status:
lebendig) zurückgeben

### Musterlösung

Expand Down

0 comments on commit 7d47c12

Please sign in to comment.