03_RepetitionCollection

1. Fitnessstudio

Erweitern Sie die Implementierung:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃           Training           ┃━━━━━━┃              Fitnessstudio             ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - dauer: int                 ┃      ┃ - name: String                         ┃
┃ - bezeichnung: String        ┃      ┃ - trainings: ArrayList<Training>       ┃
┃ - trainer: String            ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Fitnessstudio(name: String)          ┃
┃ + Training(...)              ┃      ┃ + getTraining(index): Training         ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenGesamt(): float      ┃      ┃ + entfernen(...): boolean              ┃
┃ + kostenProEinheit(): double ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       PersonalTraining       ┃  ┃       GruppenTraining        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - preisProEinheit: float     ┃  ┃ - gesamtPreis: float         ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + PersonalTraining(...)      ┃  ┃ + GruppenTraining(...)       ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Fitnessstudio

Ein Fitnessstudio hat einen Namen und eine Liste von Trainings.

Fitnessstudio(name: String)
Es wird ein Fitnessstudio mit dem übergebenen Namen und einer leeren ArrayList<Training> erzeugt.

get- und set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen nicht leer sein. Geben Sie im Fehlerfall erklärende Meldungen auf der Systemkonsole aus.

getTraining(index: int): Training
Liefert das Training beim übergebenen Index zurück. Ist der Index ungültig, wird null zurückgeliefert.

hinzufuegen(training: Training): boolean
Fügt das Training hinzu und liefert true. Ist das Training bereits vorhanden, wird es nicht nochmals hinzugefügt. Es können maximal 15 Trainings gespeichert werden. Bei null oder einer vollen Liste wird false zurückgeliefert.

entfernen(training: Training): boolean
Entfernt das Training und liefert true. Bei null oder einem nicht vorhandenen Training wird false zurückgeliefert.

entfernen(trainer: String): int
Entfernt alle Trainings des angegebenen Trainers und liefert die Anzahl der entfernten Trainings. Bei null wird -99 zurückgeliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int
Liefert die Anzahl jener GruppenTraining-Objekte, deren gesamtPreis unter maxPreisGesamt liegt. Bei ungültigem Parameter oder wenn kein Gruppentraining vorhanden ist, wird -99 zurückgeliefert.

JUnit

Erstellen Sie die JUnit-Testklasse FitnessstudioTest mit Testmethoden für:

  • hinzufuegen(training: Training): boolean
  • entfernen(trainer: String): int
  • anzahlPreisGesamt(maxPreisGesamt: float): int

2. Sprachschule

Erweitern Sie die Implementierung:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          SprachKurs          ┃━━━━━━┃              Sprachschule              ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - sprache: String            ┃      ┃ - kurse: ArrayList<SprachKurs>         ┃
┃ - lehrkraft: String          ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Sprachschule(name: String)           ┃
┃ + SprachKurs(...)            ┃      ┃ + getKurs(index): SprachKurs           ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProStunde(): double   ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          EinzelKurs          ┃  ┃         IntensivKurs         ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stundenPreis: float        ┃  ┃ - paketPreis: float          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + EinzelKurs(...)            ┃  ┃ + IntensivKurs(...)          ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Sprachschule

Eine Sprachschule hat einen Namen und eine Liste von Sprachkursen.

Sprachschule(name: String)
Es wird eine Sprachschule mit dem übergebenen Namen und einer leeren ArrayList<SprachKurs> erzeugt.

get- und set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen nicht leer sein. Geben Sie im Fehlerfall erklärende Meldungen auf der Systemkonsole aus.

getKurs(index: int): SprachKurs
Liefert den Kurs beim übergebenen Index zurück. Bei einem ungültigen Index wird null zurückgeliefert.

hinzufuegen(kurs: SprachKurs): boolean
Fügt einen noch nicht vorhandenen Kurs hinzu. Maximal 15 Kurse sind erlaubt. Bei null, einem bereits vorhandenen Kurs oder einer vollen Liste wird false zurückgeliefert.

entfernen(kurs: SprachKurs): boolean
Entfernt einen vorhandenen Kurs. Bei null oder wenn der Kurs nicht vorhanden ist, wird false zurückgeliefert.

entfernen(lehrkraft: String): int
Entfernt alle Kurse der angegebenen Lehrkraft. Bei null wird -99 zurückgeliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt alle IntensivKurs-Objekte, deren paketPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder wenn kein Intensivkurs vorhanden ist, wird -99 zurückgeliefert.

JUnit

Erstellen Sie SprachschuleTest und testen Sie:

  • hinzufuegen(kurs: SprachKurs): boolean
  • entfernen(lehrkraft: String): int
  • anzahlPreisGesamt(maxPreisGesamt: float): int

3. Hotel

Erweitern Sie die Implementierung:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃           Buchung            ┃━━━━━━┃                 Hotel                  ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - naechte: int               ┃      ┃ - name: String                         ┃
┃ - gast: String               ┃      ┃ - buchungen: ArrayList<Buchung>        ┃
┃ - zimmer: String             ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Hotel(name: String)                  ┃
┃ + Buchung(...)               ┃      ┃ + getBuchung(index): Buchung           ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProNacht(): double    ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       StandardBuchung        ┃  ┃       PauschalBuchung        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - nachtPreis: float          ┃  ┃ - paketPreis: float          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + StandardBuchung(...)       ┃  ┃ + PauschalBuchung(...)       ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Hotel

Ein Hotel hat einen Namen und eine Liste von Buchungen.

Hotel(name: String) erzeugt ein Hotel mit einer leeren ArrayList<Buchung>.

getBuchung(index: int): Buchung liefert die Buchung beim Index oder bei einem ungültigen Index null.

hinzufuegen(buchung: Buchung): boolean fügt eine noch nicht vorhandene Buchung hinzu. Maximal 15 Buchungen sind erlaubt. Bei null, Duplikat oder voller Liste wird false geliefert.

entfernen(buchung: Buchung): boolean entfernt eine vorhandene Buchung. Bei null oder wenn die Buchung nicht vorhanden ist, wird false geliefert.

entfernen(gast: String): int entfernt alle Buchungen des angegebenen Gastes. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt alle PauschalBuchung-Objekte, deren paketPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Pauschalbuchung wird -99 geliefert.

JUnit

Erstellen Sie HotelTest und testen Sie:

  • hinzufuegen(buchung: Buchung): boolean
  • entfernen(gast: String): int
  • anzahlPreisGesamt(maxPreisGesamt: float): int

4. Autovermietung

Erweitern Sie die Implementierung:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃            Miete             ┃━━━━━━┃             Autovermietung             ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - tage: int                  ┃      ┃ - name: String                         ┃
┃ - fahrzeug: String           ┃      ┃ - mieten: ArrayList<Miete>             ┃
┃ - kunde: String              ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Autovermietung(name: String)         ┃
┃ + Miete(...)                 ┃      ┃ + getMiete(index): Miete               ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProTag(): double      ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          TagesMiete          ┃  ┃        PauschalMiete         ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - tagesPreis: float          ┃  ┃ - pauschale: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + TagesMiete(...)            ┃  ┃ + PauschalMiete(...)         ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Autovermietung

Eine Autovermietung hat einen Namen und eine Liste von Mieten.

Autovermietung(name: String) erzeugt eine Autovermietung mit leerer ArrayList<Miete>.

getMiete(index: int): Miete liefert die Miete beim Index oder null.

hinzufuegen(miete: Miete): boolean fügt eine noch nicht vorhandene Miete hinzu. Maximal 15 Mieten sind erlaubt.

entfernen(miete: Miete): boolean entfernt eine vorhandene Miete.

entfernen(kunde: String): int entfernt alle Mieten des angegebenen Kunden. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt alle PauschalMiete-Objekte, deren pauschale unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Pauschalmiete wird -99 geliefert.

JUnit

Erstellen Sie AutovermietungTest und testen Sie:

  • hinzufuegen(miete: Miete): boolean
  • entfernen(kunde: String): int
  • anzahlPreisGesamt(maxPreisGesamt: float): int

5. Musikschule

Erweitern Sie die Implementierung:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       MusikUnterricht        ┃━━━━━━┃              Musikschule               ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einheiten: int             ┃      ┃ - name: String                         ┃
┃ - instrument: String         ┃      ┃ - unterrichte:                         ┃
┃ - lehrkraft: String          ┃      ┃   ArrayList<MusikUnterricht>           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + MusikUnterricht(...)       ┃      ┃ + Musikschule(name: String)            ┃
┃ + get-/set-Methoden          ┃      ┃ + getUnterricht(index):                ┃
┃ + preisGesamt(): float       ┃      ┃   MusikUnterricht                      ┃
┃ + preisProEinheit(): double  ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + toString(): String         ┃      ┃ + entfernen(...): boolean              ┃
┃ + weitere laut Angabe        ┃      ┃ + entfernen(...): int                  ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┃ + anzahlPreisGesamt(...): int          ┃
               ┃                      ┃ + toString(): String                   ┃
            ┏━━^━━━━━━━━━━━━━━━━┓     ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      EinzelUnterricht       ┃  ┃      GruppenUnterricht       ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einzelPreis: float         ┃  ┃ - kursPreis: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + EinzelUnterricht(...)      ┃  ┃ + GruppenUnterricht(...)     ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Musikschule

Eine Musikschule hat einen Namen und eine Liste von Musikunterrichten.

Musikschule(name: String) erzeugt eine Musikschule mit leerer ArrayList<MusikUnterricht>.

getUnterricht(index: int): MusikUnterricht liefert den Unterricht beim Index oder null.

hinzufuegen(unterricht: MusikUnterricht): boolean fügt einen noch nicht vorhandenen Unterricht hinzu. Maximal 15 Einträge sind erlaubt.

entfernen(unterricht: MusikUnterricht): boolean entfernt einen vorhandenen Unterricht.

entfernen(lehrkraft: String): int entfernt alle Unterrichtseinheiten der angegebenen Lehrkraft. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt alle GruppenUnterricht-Objekte, deren kursPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Gruppenunterricht wird -99 geliefert.

JUnit

Erstellen Sie MusikschuleTest und testen Sie die drei Collection-Methoden.


6. Nachhilfeinstitut

Erweitern Sie die Implementierung:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          Nachhilfe           ┃━━━━━━┃            Nachhilfeinstitut           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - fach: String               ┃      ┃ - nachhilfen: ArrayList<Nachhilfe>     ┃
┃ - lehrer: String             ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Nachhilfeinstitut(name: String)      ┃
┃ + Nachhilfe(...)             ┃      ┃ + getNachhilfe(index): Nachhilfe       ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenGesamt(): float      ┃      ┃ + entfernen(...): boolean              ┃
┃ + kostenProStunde(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       EinzelNachhilfe       ┃  ┃      GruppenNachhilfe       ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - preis: float               ┃  ┃ - gesamt: float             ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + EinzelNachhilfe(...)       ┃  ┃ + GruppenNachhilfe(...)      ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Nachhilfeinstitut

Ein Nachhilfeinstitut hat einen Namen und eine Liste von Nachhilfen.

Nachhilfeinstitut(name: String) erzeugt ein Nachhilfeinstitut mit leerer ArrayList<Nachhilfe>.

getNachhilfe(index: int): Nachhilfe liefert die Nachhilfe beim Index oder null.

hinzufuegen(nachhilfe: Nachhilfe): boolean fügt eine noch nicht vorhandene Nachhilfe hinzu. Maximal 15 Einträge sind erlaubt.

entfernen(nachhilfe: Nachhilfe): boolean entfernt eine vorhandene Nachhilfe.

entfernen(lehrer: String): int entfernt alle Nachhilfen des angegebenen Lehrers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt GruppenNachhilfe-Objekte, deren gesamt unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Gruppennachhilfe wird -99 geliefert.

JUnit

Erstellen Sie NachhilfeinstitutTest und testen Sie die drei Collection-Methoden.


7. Parkplatz

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃         ParkVorgang          ┃━━━━━━┃               Parkplatz                ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - kennzeichen: String        ┃      ┃ - vorgaenge: ArrayList<ParkVorgang>    ┃
┃ - parkplatz: String          ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Parkplatz(name: String)              ┃
┃ + ParkVorgang(...)           ┃      ┃ + getVorgang(index): ParkVorgang       ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + gebuehrGesamt(): float     ┃      ┃ + entfernen(...): boolean              ┃
┃ + gebuehrProStunde(): double ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          KurzParker          ┃  ┃         TagesParker          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - tarif: float               ┃  ┃ - pauschale: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + KurzParker(...)            ┃  ┃ + TagesParker(...)           ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + gebuehrGesamt(): float     ┃  ┃ + gebuehrGesamt(): float     ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Parkplatz

Ein Parkplatz hat einen Namen und eine Liste von Parkvorgängen.

Parkplatz(name: String) erzeugt einen Parkplatz mit leerer ArrayList<ParkVorgang>.

getVorgang(index: int): ParkVorgang liefert den Parkvorgang beim Index oder null.

hinzufuegen(vorgang: ParkVorgang): boolean fügt einen noch nicht vorhandenen Parkvorgang hinzu. Maximal 15 Parkvorgänge sind erlaubt.

entfernen(vorgang: ParkVorgang): boolean entfernt einen vorhandenen Parkvorgang.

entfernen(kennzeichen: String): int entfernt alle Parkvorgänge des angegebenen Kennzeichens. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt TagesParker-Objekte, deren pauschale unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Tagesparker wird -99 geliefert.

JUnit

Erstellen Sie ParkplatzTest und testen Sie die drei Collection-Methoden.


8. Fahrradverleih

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃        FahrradMiete          ┃━━━━━━┃             Fahrradverleih             ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - fahrrad: String            ┃      ┃ - mieten: ArrayList<FahrradMiete>      ┃
┃ - kunde: String              ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Fahrradverleih(name: String)         ┃
┃ + FahrradMiete(...)          ┃      ┃ + getMiete(index): FahrradMiete        ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProStunde(): double   ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃        StundenMiete          ┃  ┃          PaketMiete          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - preis: float               ┃  ┃ - paket: float               ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + StundenMiete(...)          ┃  ┃ + PaketMiete(...)            ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Fahrradverleih

Ein Fahrradverleih hat einen Namen und eine Liste von Fahrradmieten.

Fahrradverleih(name: String) erzeugt einen Fahrradverleih mit leerer ArrayList<FahrradMiete>.

getMiete(index: int): FahrradMiete liefert die Miete beim Index oder null.

hinzufuegen(miete: FahrradMiete): boolean fügt eine noch nicht vorhandene Miete hinzu. Maximal 15 Mieten sind erlaubt.

entfernen(miete: FahrradMiete): boolean entfernt eine vorhandene Miete.

entfernen(kunde: String): int entfernt alle Mieten des angegebenen Kunden. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PaketMiete-Objekte, deren paket unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Paketmiete wird -99 geliefert.

JUnit

Erstellen Sie FahrradverleihTest und testen Sie die drei Collection-Methoden.


9. Kino

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃         Vorstellung          ┃━━━━━━┃                  Kino                  ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - tickets: int               ┃      ┃ - name: String                         ┃
┃ - film: String               ┃      ┃ - vorstellungen:                       ┃
┃ - saal: String               ┃      ┃   ArrayList<Vorstellung>               ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + Vorstellung(...)           ┃      ┃ + Kino(name: String)                   ┃
┃ + get-/set-Methoden          ┃      ┃ + getVorstellung(index): Vorstellung   ┃
┃ + preisGesamt(): float       ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisProTicket(): double   ┃      ┃ + entfernen(...): boolean              ┃
┃ + toString(): String         ┃      ┃ + entfernen(...): int                  ┃
┃ + weitere laut Angabe        ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┃ + toString(): String                   ┃
               ┃                      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      NormalVorstellung      ┃  ┃      SonderVorstellung      ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - ticketPreis: float         ┃  ┃ - gruppenPreis: float        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + NormalVorstellung(...)     ┃  ┃ + SonderVorstellung(...)     ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Kino

Ein Kino hat einen Namen und eine Liste von Vorstellungen.

Kino(name: String) erzeugt ein Kino mit leerer ArrayList<Vorstellung>.

getVorstellung(index: int): Vorstellung liefert die Vorstellung beim Index oder null.

hinzufuegen(vorstellung: Vorstellung): boolean fügt eine noch nicht vorhandene Vorstellung hinzu. Maximal 15 Vorstellungen sind erlaubt.

entfernen(vorstellung: Vorstellung): boolean entfernt eine vorhandene Vorstellung.

entfernen(film: String): int entfernt alle Vorstellungen des angegebenen Films. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt SonderVorstellung-Objekte, deren gruppenPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Sondervorstellung wird -99 geliefert.

JUnit

Erstellen Sie KinoTest und testen Sie die drei Collection-Methoden.


10. Museum

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          Fuehrung            ┃━━━━━━┃                Museum                  ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - teilnehmer: int            ┃      ┃ - name: String                         ┃
┃ - thema: String              ┃      ┃ - fuehrungen: ArrayList<Fuehrung>      ┃
┃ - guide: String              ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Museum(name: String)                 ┃
┃ + Fuehrung(...)              ┃      ┃ + getFuehrung(index): Fuehrung         ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProPerson(): double   ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       PersonenFuehrung       ┃  ┃       PrivatFuehrung        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - preis: float               ┃  ┃ - pauschale: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + PersonenFuehrung(...)      ┃  ┃ + PrivatFuehrung(...)        ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Museum

Ein Museum hat einen Namen und eine Liste von Führungen.

Museum(name: String) erzeugt ein Museum mit leerer ArrayList<Fuehrung>.

getFuehrung(index: int): Fuehrung liefert die Führung beim Index oder null.

hinzufuegen(fuehrung: Fuehrung): boolean fügt eine noch nicht vorhandene Führung hinzu. Maximal 15 Führungen sind erlaubt.

entfernen(fuehrung: Fuehrung): boolean entfernt eine vorhandene Führung.

entfernen(guide: String): int entfernt alle Führungen des angegebenen Guides. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PrivatFuehrung-Objekte, deren pauschale unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Privatführung wird -99 geliefert.

JUnit

Erstellen Sie MuseumTest und testen Sie die drei Collection-Methoden.


11. Schwimmschule

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃         SchwimmKurs          ┃━━━━━━┃             Schwimmschule              ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einheiten: int             ┃      ┃ - name: String                         ┃
┃ - niveau: String             ┃      ┃ - kurse: ArrayList<SchwimmKurs>        ┃
┃ - trainer: String            ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Schwimmschule(name: String)          ┃
┃ + SchwimmKurs(...)           ┃      ┃ + getKurs(index): SchwimmKurs          ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProEinheit(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃     EinzelSchwimmkurs       ┃  ┃     GruppenSchwimmkurs      ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einzelPreis: float         ┃  ┃ - kursPreis: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + EinzelSchwimmkurs(...)     ┃  ┃ + GruppenSchwimmkurs(...)    ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Schwimmschule

Eine Schwimmschule hat einen Namen und eine Liste von Schwimmkursen.

Schwimmschule(name: String) erzeugt eine Schwimmschule mit leerer ArrayList<SchwimmKurs>.

getKurs(index: int): SchwimmKurs liefert den Kurs beim Index oder null.

hinzufuegen(kurs: SchwimmKurs): boolean fügt einen noch nicht vorhandenen Kurs hinzu. Maximal 15 Kurse sind erlaubt.

entfernen(kurs: SchwimmKurs): boolean entfernt einen vorhandenen Kurs.

entfernen(trainer: String): int entfernt alle Kurse des angegebenen Trainers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt GruppenSchwimmkurs-Objekte, deren kursPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Gruppenschwimmkurs wird -99 geliefert.

JUnit

Erstellen Sie SchwimmschuleTest und testen Sie die drei Collection-Methoden.


12. Skischule

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃           SkiKurs            ┃━━━━━━┃               Skischule                ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - niveau: String             ┃      ┃ - kurse: ArrayList<SkiKurs>            ┃
┃ - skiLehrer: String          ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Skischule(name: String)              ┃
┃ + SkiKurs(...)               ┃      ┃ + getKurs(index): SkiKurs              ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenGesamt(): float      ┃      ┃ + entfernen(...): boolean              ┃
┃ + kostenProStunde(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       PrivatSkiKurs         ┃  ┃       GruppenSkiKurs        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stundenPreis: float        ┃  ┃ - kursPreis: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + PrivatSkiKurs(...)         ┃  ┃ + GruppenSkiKurs(...)        ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Skischule

Eine Skischule hat einen Namen und eine Liste von Skikursen.

Skischule(name: String) erzeugt eine Skischule mit leerer ArrayList<SkiKurs>.

getKurs(index: int): SkiKurs liefert den Kurs beim Index oder null.

hinzufuegen(kurs: SkiKurs): boolean fügt einen noch nicht vorhandenen Kurs hinzu. Maximal 15 Kurse sind erlaubt.

entfernen(kurs: SkiKurs): boolean entfernt einen vorhandenen Kurs.

entfernen(skiLehrer: String): int entfernt alle Kurse des angegebenen Skilehrers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt GruppenSkiKurs-Objekte, deren kursPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Gruppenskikurs wird -99 geliefert.

JUnit

Erstellen Sie SkischuleTest und testen Sie die drei Collection-Methoden.


13. Fotostudio

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃           Shooting           ┃━━━━━━┃              Fotostudio                ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - kunde: String              ┃      ┃ - shootings: ArrayList<Shooting>       ┃
┃ - fotograf: String           ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Fotostudio(name: String)             ┃
┃ + Shooting(...)              ┃      ┃ + getShooting(index): Shooting         ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenGesamt(): float      ┃      ┃ + entfernen(...): boolean              ┃
┃ + kostenProStunde(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       StundenShooting       ┃  ┃        PaketShooting        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stundenPreis: float        ┃  ┃ - paketPreis: float          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + StundenShooting(...)       ┃  ┃ + PaketShooting(...)         ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Fotostudio

Ein Fotostudio hat einen Namen und eine Liste von Shootings.

Fotostudio(name: String) erzeugt ein Fotostudio mit leerer ArrayList<Shooting>.

getShooting(index: int): Shooting liefert das Shooting beim Index oder null.

hinzufuegen(shooting: Shooting): boolean fügt ein noch nicht vorhandenes Shooting hinzu. Maximal 15 Shootings sind erlaubt.

entfernen(shooting: Shooting): boolean entfernt ein vorhandenes Shooting.

entfernen(fotograf: String): int entfernt alle Shootings des Fotografen. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PaketShooting-Objekte, deren paketPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Paketshooting wird -99 geliefert.

JUnit

Erstellen Sie FotostudioTest und testen Sie die drei Collection-Methoden.


14. Reinigungsfirma

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          Reinigung           ┃━━━━━━┃            Reinigungsfirma             ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - objekt: String             ┃      ┃ - reinigungen: ArrayList<Reinigung>    ┃
┃ - firma: String              ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Reinigungsfirma(name: String)        ┃
┃ + Reinigung(...)             ┃      ┃ + getReinigung(index): Reinigung       ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenGesamt(): float      ┃      ┃ + entfernen(...): boolean              ┃
┃ + kostenProStunde(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      StundenReinigung       ┃  ┃      PauschalReinigung      ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stundenSatz: float         ┃  ┃ - pauschale: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + StundenReinigung(...)      ┃  ┃ + PauschalReinigung(...)     ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Reinigungsfirma

Eine Reinigungsfirma hat einen Namen und eine Liste von Reinigungen.

Reinigungsfirma(name: String) erzeugt eine Reinigungsfirma mit leerer ArrayList<Reinigung>.

getReinigung(index: int): Reinigung liefert die Reinigung beim Index oder null.

hinzufuegen(reinigung: Reinigung): boolean fügt eine noch nicht vorhandene Reinigung hinzu. Maximal 15 Einträge sind erlaubt.

entfernen(reinigung: Reinigung): boolean entfernt eine vorhandene Reinigung.

entfernen(firma: String): int entfernt alle Reinigungen der angegebenen Firma. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PauschalReinigung-Objekte, deren pauschale unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Pauschalreinigung wird -99 geliefert.

JUnit

Erstellen Sie ReinigungsfirmaTest und testen Sie die drei Collection-Methoden.


15. Lieferdienst

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          Lieferung           ┃━━━━━━┃              Lieferdienst              ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - kilometer: int             ┃      ┃ - name: String                         ┃
┃ - ziel: String               ┃      ┃ - lieferungen: ArrayList<Lieferung>    ┃
┃ - fahrer: String             ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Lieferdienst(name: String)           ┃
┃ + Lieferung(...)             ┃      ┃ + getLieferung(index): Lieferung       ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenGesamt(): float      ┃      ┃ + entfernen(...): boolean              ┃
┃ + kostenProKilometer():      ┃      ┃ + entfernen(...): int                  ┃
┃   double                     ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + toString(): String         ┃      ┃ + toString(): String                   ┃
┃ + weitere laut Angabe        ┃      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃     KilometerLieferung      ┃  ┃      PauschalLieferung      ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - kilometerPreis: float      ┃  ┃ - pauschalPreis: float       ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + KilometerLieferung(...)    ┃  ┃ + PauschalLieferung(...)     ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Lieferdienst

Ein Lieferdienst hat einen Namen und eine Liste von Lieferungen.

Lieferdienst(name: String) erzeugt einen Lieferdienst mit leerer ArrayList<Lieferung>.

getLieferung(index: int): Lieferung liefert die Lieferung beim Index oder null.

hinzufuegen(lieferung: Lieferung): boolean fügt eine noch nicht vorhandene Lieferung hinzu. Maximal 15 Lieferungen sind erlaubt.

entfernen(lieferung: Lieferung): boolean entfernt eine vorhandene Lieferung.

entfernen(fahrer: String): int entfernt alle Lieferungen des angegebenen Fahrers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PauschalLieferung-Objekte, deren pauschalPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Pauschallieferung wird -99 geliefert.

JUnit

Erstellen Sie LieferdienstTest und testen Sie die drei Collection-Methoden.


16. Taxiunternehmen

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃            Fahrt             ┃━━━━━━┃            Taxiunternehmen             ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - kilometer: int             ┃      ┃ - name: String                         ┃
┃ - start: String              ┃      ┃ - fahrten: ArrayList<Fahrt>            ┃
┃ - ziel: String               ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Taxiunternehmen(name: String)        ┃
┃ + Fahrt(...)                 ┃      ┃ + getFahrt(index): Fahrt               ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProKilometer():       ┃      ┃ + entfernen(...): int                  ┃
┃   double                     ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + toString(): String         ┃      ┃ + toString(): String                   ┃
┃ + weitere laut Angabe        ┃      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          TaxiFahrt           ┃  ┃        FixpreisFahrt         ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - kilometerPreis: float      ┃  ┃ - fixPreis: float            ┃
┃ - grundGebuehr: float        ┃  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┃ + FixpreisFahrt(...)         ┃
┃ + TaxiFahrt(...)             ┃  ┃ + get-/set-Methoden          ┃
┃ + get-/set-Methoden          ┃  ┃ + preisGesamt(): float       ┃
┃ + preisGesamt(): float       ┃  ┃ + toString(): String         ┃
┃ + toString(): String         ┃  ┃ + weitere laut Angabe        ┃
┃ + weitere laut Angabe        ┃  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Taxiunternehmen

Ein Taxiunternehmen hat einen Namen und eine Liste von Fahrten.

Taxiunternehmen(name: String) erzeugt ein Taxiunternehmen mit leerer ArrayList<Fahrt>.

getFahrt(index: int): Fahrt liefert die Fahrt beim Index oder null.

hinzufuegen(fahrt: Fahrt): boolean fügt eine noch nicht vorhandene Fahrt hinzu. Maximal 15 Fahrten sind erlaubt.

entfernen(fahrt: Fahrt): boolean entfernt eine vorhandene Fahrt.

entfernen(ziel: String): int entfernt alle Fahrten mit dem angegebenen Ziel. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt FixpreisFahrt-Objekte, deren fixPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Fixpreisfahrt wird -99 geliefert.

JUnit

Erstellen Sie TaxiunternehmenTest und testen Sie die drei Collection-Methoden.


17. Paketdienst

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃           Versand            ┃━━━━━━┃              Paketdienst               ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - gewicht: int               ┃      ┃ - name: String                         ┃
┃ - empfaenger: String         ┃      ┃ - versand: ArrayList<Versand>          ┃
┃ - land: String               ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Paketdienst(name: String)            ┃
┃ + Versand(...)               ┃      ┃ + getVersand(index): Versand           ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenGesamt(): float      ┃      ┃ + entfernen(...): boolean              ┃
┃ + kostenProKg(): double      ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       GewichtsVersand       ┃  ┃       PauschalVersand       ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - preisProKg: float          ┃  ┃ - pauschale: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + GewichtsVersand(...)       ┃  ┃ + PauschalVersand(...)       ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Paketdienst

Ein Paketdienst hat einen Namen und eine Liste von Versandobjekten.

Paketdienst(name: String) erzeugt einen Paketdienst mit leerer ArrayList<Versand>.

getVersand(index: int): Versand liefert den Versand beim Index oder null.

hinzufuegen(versand: Versand): boolean fügt einen noch nicht vorhandenen Versand hinzu. Maximal 15 Einträge sind erlaubt.

entfernen(versand: Versand): boolean entfernt einen vorhandenen Versand.

entfernen(empfaenger: String): int entfernt alle Sendungen des angegebenen Empfängers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PauschalVersand-Objekte, deren pauschale unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Pauschalversand wird -99 geliefert.

JUnit

Erstellen Sie PaketdienstTest und testen Sie die drei Collection-Methoden.


18. Campingplatz

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          Aufenthalt          ┃━━━━━━┃             Campingplatz               ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - naechte: int               ┃      ┃ - name: String                         ┃
┃ - gast: String               ┃      ┃ - aufenthalte: ArrayList<Aufenthalt>   ┃
┃ - platz: String              ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Campingplatz(name: String)           ┃
┃ + Aufenthalt(...)            ┃      ┃ + getAufenthalt(index): Aufenthalt     ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProNacht(): double    ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       ZeltAufenthalt        ┃  ┃     WohnmobilAufenthalt     ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - nachtPreis: float          ┃  ┃ - paketPreis: float          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + ZeltAufenthalt(...)        ┃  ┃ + WohnmobilAufenthalt(...)   ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Campingplatz

Ein Campingplatz hat einen Namen und eine Liste von Aufenthalten.

Campingplatz(name: String) erzeugt einen Campingplatz mit leerer ArrayList<Aufenthalt>.

getAufenthalt(index: int): Aufenthalt liefert den Aufenthalt beim Index oder null.

hinzufuegen(aufenthalt: Aufenthalt): boolean fügt einen noch nicht vorhandenen Aufenthalt hinzu. Maximal 15 Aufenthalte sind erlaubt.

entfernen(aufenthalt: Aufenthalt): boolean entfernt einen vorhandenen Aufenthalt.

entfernen(gast: String): int entfernt alle Aufenthalte des angegebenen Gastes. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt WohnmobilAufenthalt-Objekte, deren paketPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Wohnmobilaufenthalt wird -99 geliefert.

JUnit

Erstellen Sie CampingplatzTest und testen Sie die drei Collection-Methoden.


19. Hundeschule

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃        HundeTraining         ┃━━━━━━┃              Hundeschule               ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einheiten: int             ┃      ┃ - name: String                         ┃
┃ - hund: String               ┃      ┃ - trainings: ArrayList<HundeTraining>  ┃
┃ - trainer: String            ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Hundeschule(name: String)            ┃
┃ + HundeTraining(...)         ┃      ┃ + getTraining(index): HundeTraining    ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProEinheit(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       EinzelTraining        ┃  ┃       GruppenTraining       ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einzelPreis: float         ┃  ┃ - kursPreis: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + EinzelTraining(...)        ┃  ┃ + GruppenTraining(...)       ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Hundeschule

Eine Hundeschule hat einen Namen und eine Liste von Hundetrainings.

Hundeschule(name: String) erzeugt eine Hundeschule mit leerer ArrayList<HundeTraining>.

getTraining(index: int): HundeTraining liefert das Training beim Index oder null.

hinzufuegen(training: HundeTraining): boolean fügt ein noch nicht vorhandenes Training hinzu. Maximal 15 Trainings sind erlaubt.

entfernen(training: HundeTraining): boolean entfernt ein vorhandenes Training.

entfernen(trainer: String): int entfernt alle Trainings des Trainers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt GruppenTraining-Objekte, deren kursPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Gruppentraining wird -99 geliefert.

JUnit

Erstellen Sie HundeschuleTest und testen Sie die drei Collection-Methoden.


20. Reitschule

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          ReitKurs            ┃━━━━━━┃              Reitschule                ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einheiten: int             ┃      ┃ - name: String                         ┃
┃ - schueler: String           ┃      ┃ - kurse: ArrayList<ReitKurs>           ┃
┃ - pferd: String              ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Reitschule(name: String)             ┃
┃ + ReitKurs(...)              ┃      ┃ + getKurs(index): ReitKurs             ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProEinheit(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      EinzelReitstunde       ┃  ┃          ReitPaket           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einzelPreis: float         ┃  ┃ - paketPreis: float          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + EinzelReitstunde(...)      ┃  ┃ + ReitPaket(...)             ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Reitschule

Eine Reitschule hat einen Namen und eine Liste von Reitkursen.

Reitschule(name: String) erzeugt eine Reitschule mit leerer ArrayList<ReitKurs>.

getKurs(index: int): ReitKurs liefert den Kurs beim Index oder null.

hinzufuegen(kurs: ReitKurs): boolean fügt einen noch nicht vorhandenen Kurs hinzu. Maximal 15 Kurse sind erlaubt.

entfernen(kurs: ReitKurs): boolean entfernt einen vorhandenen Kurs.

entfernen(pferd: String): int entfernt alle Kurse mit dem angegebenen Pferd. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt ReitPaket-Objekte, deren paketPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Reitpaket wird -99 geliefert.

JUnit

Erstellen Sie ReitschuleTest und testen Sie die drei Collection-Methoden.


21. Werkstatt

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          Reparatur           ┃━━━━━━┃               Werkstatt                ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - arbeitsStunden: int        ┃      ┃ - name: String                         ┃
┃ - fahrzeug: String           ┃      ┃ - reparaturen: ArrayList<Reparatur>    ┃
┃ - mechaniker: String         ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Werkstatt(name: String)              ┃
┃ + Reparatur(...)             ┃      ┃ + getReparatur(index): Reparatur       ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenGesamt(): float      ┃      ┃ + entfernen(...): boolean              ┃
┃ + kostenProStunde(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      StundenReparatur       ┃  ┃      FixpreisReparatur      ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stundenSatz: float         ┃  ┃ - fixPreis: float            ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + StundenReparatur(...)      ┃  ┃ + FixpreisReparatur(...)     ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Werkstatt

Eine Werkstatt hat einen Namen und eine Liste von Reparaturen.

Werkstatt(name: String) erzeugt eine Werkstatt mit leerer ArrayList<Reparatur>.

getReparatur(index: int): Reparatur liefert die Reparatur beim Index oder null.

hinzufuegen(reparatur: Reparatur): boolean fügt eine noch nicht vorhandene Reparatur hinzu. Maximal 15 Reparaturen sind erlaubt.

entfernen(reparatur: Reparatur): boolean entfernt eine vorhandene Reparatur.

entfernen(mechaniker: String): int entfernt alle Reparaturen des Mechanikers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt FixpreisReparatur-Objekte, deren fixPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Fixpreisreparatur wird -99 geliefert.

JUnit

Erstellen Sie WerkstattTest und testen Sie die drei Collection-Methoden.


22. Supportfirma

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       SupportAuftrag         ┃━━━━━━┃              SupportFirma              ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - kunde: String              ┃      ┃ - auftraege:                           ┃
┃ - techniker: String          ┃      ┃   ArrayList<SupportAuftrag>            ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + SupportAuftrag(...)        ┃      ┃ + SupportFirma(name: String)           ┃
┃ + get-/set-Methoden          ┃      ┃ + getAuftrag(index): SupportAuftrag    ┃
┃ + kostenGesamt(): float      ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenProStunde(): double  ┃      ┃ + entfernen(...): boolean              ┃
┃ + toString(): String         ┃      ┃ + entfernen(...): int                  ┃
┃ + weitere laut Angabe        ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┃ + toString(): String                   ┃
               ┃                      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       StundenSupport        ┃  ┃        SupportPaket         ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stundenPreis: float        ┃  ┃ - paketPreis: float          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + StundenSupport(...)        ┃  ┃ + SupportPaket(...)          ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

SupportFirma

Eine Supportfirma hat einen Namen und eine Liste von Supportaufträgen.

SupportFirma(name: String) erzeugt eine Supportfirma mit leerer ArrayList<SupportAuftrag>.

getAuftrag(index: int): SupportAuftrag liefert den Auftrag beim Index oder null.

hinzufuegen(auftrag: SupportAuftrag): boolean fügt einen noch nicht vorhandenen Auftrag hinzu. Maximal 15 Aufträge sind erlaubt.

entfernen(auftrag: SupportAuftrag): boolean entfernt einen vorhandenen Auftrag.

entfernen(techniker: String): int entfernt alle Aufträge des Technikers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt SupportPaket-Objekte, deren paketPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Supportpaket wird -99 geliefert.

JUnit

Erstellen Sie SupportFirmaTest und testen Sie die drei Collection-Methoden.


23. Webagentur

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃         WebProjekt           ┃━━━━━━┃              Webagentur                ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - projektName: String        ┃      ┃ - projekte: ArrayList<WebProjekt>      ┃
┃ - entwickler: String         ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Webagentur(name: String)             ┃
┃ + WebProjekt(...)            ┃      ┃ + getProjekt(index): WebProjekt        ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + kostenGesamt(): float      ┃      ┃ + entfernen(...): boolean              ┃
┃ + kostenProStunde(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       StundenProjekt        ┃  ┃       FixpreisProjekt       ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stundenSatz: float         ┃  ┃ - fixPreis: float            ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + StundenProjekt(...)        ┃  ┃ + FixpreisProjekt(...)       ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + kostenGesamt(): float      ┃  ┃ + kostenGesamt(): float      ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Webagentur

Eine Webagentur hat einen Namen und eine Liste von Webprojekten.

Webagentur(name: String) erzeugt eine Webagentur mit leerer ArrayList<WebProjekt>.

getProjekt(index: int): WebProjekt liefert das Projekt beim Index oder null.

hinzufuegen(projekt: WebProjekt): boolean fügt ein noch nicht vorhandenes Projekt hinzu. Maximal 15 Projekte sind erlaubt.

entfernen(projekt: WebProjekt): boolean entfernt ein vorhandenes Projekt.

entfernen(entwickler: String): int entfernt alle Projekte des Entwicklers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt FixpreisProjekt-Objekte, deren fixPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Fixpreisprojekt wird -99 geliefert.

JUnit

Erstellen Sie WebagenturTest und testen Sie die drei Collection-Methoden.


24. Druckerei

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃        DruckAuftrag          ┃━━━━━━┃               Druckerei                ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - anzahl: int                ┃      ┃ - name: String                         ┃
┃ - produkt: String            ┃      ┃ - auftraege:                           ┃
┃ - kunde: String              ┃      ┃   ArrayList<DruckAuftrag>              ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + DruckAuftrag(...)          ┃      ┃ + Druckerei(name: String)              ┃
┃ + get-/set-Methoden          ┃      ┃ + getAuftrag(index): DruckAuftrag      ┃
┃ + preisGesamt(): float       ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisProStueck(): double   ┃      ┃ + entfernen(...): boolean              ┃
┃ + toString(): String         ┃      ┃ + entfernen(...): int                  ┃
┃ + weitere laut Angabe        ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┃ + toString(): String                   ┃
               ┃                      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃         StueckDruck         ┃  ┃        PauschalDruck        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stueckPreis: float         ┃  ┃ - auftragPreis: float        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + StueckDruck(...)           ┃  ┃ + PauschalDruck(...)         ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Druckerei

Eine Druckerei hat einen Namen und eine Liste von Druckaufträgen.

Druckerei(name: String) erzeugt eine Druckerei mit leerer ArrayList<DruckAuftrag>.

getAuftrag(index: int): DruckAuftrag liefert den Auftrag beim Index oder null.

hinzufuegen(auftrag: DruckAuftrag): boolean fügt einen noch nicht vorhandenen Auftrag hinzu. Maximal 15 Aufträge sind erlaubt.

entfernen(auftrag: DruckAuftrag): boolean entfernt einen vorhandenen Auftrag.

entfernen(kunde: String): int entfernt alle Druckaufträge des Kunden. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PauschalDruck-Objekte, deren auftragPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Pauschaldruck wird -99 geliefert.

JUnit

Erstellen Sie DruckereiTest und testen Sie die drei Collection-Methoden.


25. CateringFirma

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       CateringAuftrag        ┃━━━━━━┃             CateringFirma              ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - personen: int              ┃      ┃ - name: String                         ┃
┃ - veranstaltung: String      ┃      ┃ - auftraege:                           ┃
┃ - kunde: String              ┃      ┃   ArrayList<CateringAuftrag>           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + CateringAuftrag(...)       ┃      ┃ + CateringFirma(name: String)          ┃
┃ + get-/set-Methoden          ┃      ┃ + getAuftrag(index): CateringAuftrag   ┃
┃ + preisGesamt(): float       ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisProPerson(): double   ┃      ┃ + entfernen(...): boolean              ┃
┃ + toString(): String         ┃      ┃ + entfernen(...): int                  ┃
┃ + weitere laut Angabe        ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┃ + toString(): String                   ┃
               ┃                      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      PersonenCatering       ┃  ┃      PauschalCatering       ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - personenPreis: float       ┃  ┃ - pauschale: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + PersonenCatering(...)      ┃  ┃ + PauschalCatering(...)      ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

CateringFirma

Eine Cateringfirma hat einen Namen und eine Liste von Cateringaufträgen.

CateringFirma(name: String) erzeugt eine Cateringfirma mit leerer ArrayList<CateringAuftrag>.

getAuftrag(index: int): CateringAuftrag liefert den Auftrag beim Index oder null.

hinzufuegen(auftrag: CateringAuftrag): boolean fügt einen noch nicht vorhandenen Auftrag hinzu. Maximal 15 Aufträge sind erlaubt.

entfernen(auftrag: CateringAuftrag): boolean entfernt einen vorhandenen Auftrag.

entfernen(kunde: String): int entfernt alle Cateringaufträge des Kunden. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PauschalCatering-Objekte, deren pauschale unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Pauschalcatering wird -99 geliefert.

JUnit

Erstellen Sie CateringFirmaTest und testen Sie die drei Collection-Methoden.


26. Veranstalter

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃            Event             ┃━━━━━━┃              Veranstalter              ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - teilnehmer: int            ┃      ┃ - name: String                         ┃
┃ - bezeichnung: String        ┃      ┃ - events: ArrayList<Event>             ┃
┃ - veranstalter: String       ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Veranstalter(name: String)           ┃
┃ + Event(...)                 ┃      ┃ + getEvent(index): Event               ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProTeilnehmer():      ┃      ┃ + entfernen(...): int                  ┃
┃   double                     ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + toString(): String         ┃      ┃ + toString(): String                   ┃
┃ + weitere laut Angabe        ┃      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      TeilnehmerEvent        ┃  ┃        PauschalEvent        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - teilnehmerPreis: float     ┃  ┃ - pauschale: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + TeilnehmerEvent(...)       ┃  ┃ + PauschalEvent(...)         ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Veranstalter

Ein Veranstalter hat einen Namen und eine Liste von Events.

Veranstalter(name: String) erzeugt einen Veranstalter mit leerer ArrayList<Event>.

getEvent(index: int): Event liefert das Event beim Index oder null.

hinzufuegen(event: Event): boolean fügt ein noch nicht vorhandenes Event hinzu. Maximal 15 Events sind erlaubt.

entfernen(event: Event): boolean entfernt ein vorhandenes Event.

entfernen(veranstalter: String): int entfernt alle Events mit dem angegebenen Veranstalter. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PauschalEvent-Objekte, deren pauschale unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Pauschalevent wird -99 geliefert.

JUnit

Erstellen Sie VeranstalterTest und testen Sie die drei Collection-Methoden.


27. Bootsverleih

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          BootMiete           ┃━━━━━━┃             Bootsverleih               ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - boot: String               ┃      ┃ - mieten: ArrayList<BootMiete>         ┃
┃ - kunde: String              ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Bootsverleih(name: String)           ┃
┃ + BootMiete(...)             ┃      ┃ + getMiete(index): BootMiete           ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProStunde(): double   ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃         StundenBoot         ┃  ┃         PauschalBoot        ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stundenPreis: float        ┃  ┃ - pauschale: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + StundenBoot(...)           ┃  ┃ + PauschalBoot(...)          ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Bootsverleih

Ein Bootsverleih hat einen Namen und eine Liste von Bootsmieten.

Bootsverleih(name: String) erzeugt einen Bootsverleih mit leerer ArrayList<BootMiete>.

getMiete(index: int): BootMiete liefert die Miete beim Index oder null.

hinzufuegen(miete: BootMiete): boolean fügt eine noch nicht vorhandene Miete hinzu. Maximal 15 Mieten sind erlaubt.

entfernen(miete: BootMiete): boolean entfernt eine vorhandene Miete.

entfernen(kunde: String): int entfernt alle Bootsmieten des Kunden. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt PauschalBoot-Objekte, deren pauschale unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Pauschalboot wird -99 geliefert.

JUnit

Erstellen Sie BootsverleihTest und testen Sie die drei Collection-Methoden.


28. Flugschule

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃        FlugUnterricht        ┃━━━━━━┃               Flugschule               ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stunden: int               ┃      ┃ - name: String                         ┃
┃ - schueler: String           ┃      ┃ - unterrichte:                         ┃
┃ - fluglehrer: String         ┃      ┃   ArrayList<FlugUnterricht>            ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + FlugUnterricht(...)        ┃      ┃ + Flugschule(name: String)             ┃
┃ + get-/set-Methoden          ┃      ┃ + getUnterricht(index):                ┃
┃ + preisGesamt(): float       ┃      ┃   FlugUnterricht                       ┃
┃ + preisProStunde(): double   ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + toString(): String         ┃      ┃ + entfernen(...): boolean              ┃
┃ + weitere laut Angabe        ┃      ┃ + entfernen(...): int                  ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┃ + anzahlPreisGesamt(...): int          ┃
               ┃                      ┃ + toString(): String                   ┃
            ┏━━^━━━━━━━━━━━━━━━━┓     ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          EinzelFlug         ┃  ┃          FlugPaket          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - stundenPreis: float        ┃  ┃ - paketPreis: float          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + EinzelFlug(...)            ┃  ┃ + FlugPaket(...)             ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Flugschule

Eine Flugschule hat einen Namen und eine Liste von Flugunterrichten.

Flugschule(name: String) erzeugt eine Flugschule mit leerer ArrayList<FlugUnterricht>.

getUnterricht(index: int): FlugUnterricht liefert den Unterricht beim Index oder null.

hinzufuegen(unterricht: FlugUnterricht): boolean fügt einen noch nicht vorhandenen Unterricht hinzu. Maximal 15 Unterrichtseinheiten sind erlaubt.

entfernen(unterricht: FlugUnterricht): boolean entfernt einen vorhandenen Unterricht.

entfernen(fluglehrer: String): int entfernt alle Unterrichtseinheiten des angegebenen Fluglehrers. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt FlugPaket-Objekte, deren paketPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Flugpaket wird -99 geliefert.

JUnit

Erstellen Sie FlugschuleTest und testen Sie die drei Collection-Methoden.


29. Kochschule

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃          KochKurs            ┃━━━━━━┃              Kochschule                ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einheiten: int             ┃      ┃ - name: String                         ┃
┃ - bezeichnung: String        ┃      ┃ - kurse: ArrayList<KochKurs>           ┃
┃ - koch: String               ┃      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┃ + Kochschule(name: String)             ┃
┃ + KochKurs(...)              ┃      ┃ + getKurs(index): KochKurs             ┃
┃ + get-/set-Methoden          ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + preisGesamt(): float       ┃      ┃ + entfernen(...): boolean              ┃
┃ + preisProEinheit(): double  ┃      ┃ + entfernen(...): int                  ┃
┃ + toString(): String         ┃      ┃ + anzahlPreisGesamt(...): int          ┃
┃ + weitere laut Angabe        ┃      ┃ + toString(): String                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
               ┃
            ┏━━^━━━━━━━━━━━━━━━━┓
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       PrivatKochkurs        ┃  ┃       GruppenKochkurs       ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einzelPreis: float         ┃  ┃ - kursPreis: float           ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + PrivatKochkurs(...)        ┃  ┃ + GruppenKochkurs(...)       ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Kochschule

Eine Kochschule hat einen Namen und eine Liste von Kochkursen.

Kochschule(name: String) erzeugt eine Kochschule mit leerer ArrayList<KochKurs>.

getKurs(index: int): KochKurs liefert den Kurs beim Index oder null.

hinzufuegen(kurs: KochKurs): boolean fügt einen noch nicht vorhandenen Kurs hinzu. Maximal 15 Kurse sind erlaubt.

entfernen(kurs: KochKurs): boolean entfernt einen vorhandenen Kurs.

entfernen(koch: String): int entfernt alle Kurse des angegebenen Kochs. Bei null wird -99 geliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int zählt GruppenKochkurs-Objekte, deren kursPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder ohne Gruppenkurs wird -99 geliefert.

JUnit

Erstellen Sie KochschuleTest und testen Sie die drei Collection-Methoden.


30. Fahrschule

Erweitern Sie die Implementierung:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃       FahrAusbildung         ┃━━━━━━┃              Fahrschule                ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einheiten: int             ┃      ┃ - name: String                         ┃
┃ - schueler: String           ┃      ┃ - ausbildungen:                        ┃
┃ - fahrlehrer: String         ┃      ┃   ArrayList<FahrAusbildung>            ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + FahrAusbildung(...)        ┃      ┃ + Fahrschule(name: String)             ┃
┃ + get-/set-Methoden          ┃      ┃ + getAusbildung(index):                ┃
┃ + preisGesamt(): float       ┃      ┃   FahrAusbildung                       ┃
┃ + preisProEinheit(): double  ┃      ┃ + hinzufuegen(...): boolean            ┃
┃ + toString(): String         ┃      ┃ + entfernen(...): boolean              ┃
┃ + weitere laut Angabe        ┃      ┃ + entfernen(...): int                  ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛      ┃ + anzahlPreisGesamt(...): int          ┃
               ┃                      ┃ + toString(): String                   ┃
            ┏━━^━━━━━━━━━━━━━━━━┓     ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
            ┃                   ┃
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃      EinzelFahrstunde       ┃  ┃      FahrstundenPaket       ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ - einzelPreis: float         ┃  ┃ - paketPreis: float          ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + EinzelFahrstunde(...)      ┃  ┃ + FahrstundenPaket(...)      ┃
┃ + get-/set-Methoden          ┃  ┃ + get-/set-Methoden          ┃
┃ + preisGesamt(): float       ┃  ┃ + preisGesamt(): float       ┃
┃ + toString(): String         ┃  ┃ + toString(): String         ┃
┃ + weitere laut Angabe        ┃  ┃ + weitere laut Angabe        ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Fahrschule

Eine Fahrschule hat einen Namen und eine Liste von Fahrausbildungen.

Fahrschule(name: String)
Es wird eine Fahrschule mit dem übergebenen Namen und einer leeren ArrayList<FahrAusbildung> erzeugt.

get- und set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen nicht leer sein. Geben Sie im Fehlerfall erklärende Meldungen auf der Systemkonsole aus.

getAusbildung(index: int): FahrAusbildung
Liefert die Fahrausbildung beim angegebenen Index. Bei einem ungültigen Index wird null zurückgeliefert.

hinzufuegen(ausbildung: FahrAusbildung): boolean
Fügt eine noch nicht vorhandene Fahrausbildung hinzu. Es können maximal 15 Fahrausbildungen gespeichert werden. Bei null, einem Duplikat oder einer vollen Liste wird false zurückgeliefert.

entfernen(ausbildung: FahrAusbildung): boolean
Entfernt eine vorhandene Fahrausbildung. Bei null oder wenn sie nicht vorhanden ist, wird false zurückgeliefert.

entfernen(fahrlehrer: String): int
Entfernt alle Fahrausbildungen des angegebenen Fahrlehrers und liefert die Anzahl der entfernten Objekte. Bei null wird -99 zurückgeliefert.

anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt alle FahrstundenPaket-Objekte, deren paketPreis unter dem Grenzwert liegt. Bei ungültigem Parameter oder wenn kein Fahrstundenpaket vorhanden ist, wird -99 zurückgeliefert.

JUnit

Erstellen Sie die JUnit-Testklasse FahrschuleTest mit Testmethoden für:

  • hinzufuegen(ausbildung: FahrAusbildung): boolean
  • entfernen(fahrlehrer: String): int
  • anzahlPreisGesamt(maxPreisGesamt: float): int

Code-Dateien

DateinameAktion
CODECode_Tanzschule_D.zipDownload

PDF-Dokumente

DateinameAktion
PDFUebung_Tanzschule.pdfÖffnen

Videos

DateinameAktion
VIDEOVideo_Tanzschule_DAbspielen

Lernmaterialien

In Java, a Collection is used to store and manage multiple objects.

Unlike an array, many collection types can grow and shrink dynamically while the program is running.

Common collection types are:

  • ArrayList
  • LinkedList
  • HashSet
  • HashMap (technically part of the Collections Framework, but not a Collection itself)

ArrayList

An ArrayList is one of the most commonly used collections in Java.

It stores elements in a list and keeps their order.

You first need to import it:

import java.util.ArrayList;

Then you can create an ArrayList:

ArrayList<String> names = new ArrayList<>();

String defines the type of elements that may be stored in the list.

You can add elements with add():

names.add("Anna");
names.add("Max");
names.add("Peter");

The list now contains:

Anna
Max
Peter

Accessing elements

Elements are accessed by their index.

The first element has index 0.

System.out.println(names.get(0));
System.out.println(names.get(1));

Output:

Anna
Max

Changing an element

Use set():

names.set(1, "Lisa");

The list is now:

Anna
Lisa
Peter

Removing elements

Use remove():

names.remove(1);

or:

names.remove("Peter");

Number of elements

Use size():

System.out.println(names.size());

Looping through an ArrayList

With a normal for loop:

for (int i = 0; i < names.size(); i++) {
    System.out.println(names.get(i));
}

Or with an enhanced for loop:

for (String name : names) {
    System.out.println(name);
}

ArrayList with objects

An ArrayList can also contain objects of your own classes.

ArrayList<Car> cars = new ArrayList<>();

cars.add(new Car("BMW", 4));
cars.add(new Car("Audi", 5));
cars.add(new Car("VW", 4));

You can then access the objects:

System.out.println(cars.get(0).getBrand());

Or loop over them:

for (Car car : cars) {
    System.out.println(car.getBrand());
}

Array vs. ArrayList

Array ArrayList
Fixed size Dynamic size
String[] names ArrayList<String> names
names[0] names.get(0)
names.length names.size()
Cannot easily add elements add()
Cannot easily remove elements remove()

A simple definition for students would be:

An ArrayList is a dynamic list in Java that can store multiple objects of the same type. Elements can be added, removed, changed, and accessed using an index.