05_Exception
1. Fitnessstudio
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ TrainingException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + TrainingException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine TrainingException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Fitnessstudio
Fitnessstudio(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Training>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getTraining(index: int): Training
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(training: Training): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(training: Training): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(trainer: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Liefert die Anzahl jener GruppenTraining-Objekte, deren
gesamtPreis unter maxPreisGesamt liegt. Bei
einem negativen maxPreisGesamt wird eine Exception
geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
2. Sprachschule
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ SprachKursException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + SprachKursException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine SprachKursException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Sprachschule
Sprachschule(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<SprachKurs>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getKurs(index: int): SprachKurs
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(kurs: SprachKurs): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(kurs: SprachKurs): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(lehrkraft: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt alle IntensivKurs-Objekte, deren
paketPreis unter dem Grenzwert liegt. Bei einem negativen
maxPreisGesamt wird eine Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
3. Hotel
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ BuchungException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + BuchungException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine BuchungException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Hotel
Hotel(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Buchung>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getBuchung(index: int): Buchung
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(buchung: Buchung): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(buchung: Buchung): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(gast: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
— Bei einem negativen maxPreisGesamt wird eine Exception
geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
4. Autovermietung
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ MieteException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + MieteException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine MieteException mit
einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Autovermietung
Autovermietung(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Miete>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getMiete(index: int): Miete
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(miete: Miete): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(miete: Miete): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(kunde: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
— Bei einem negativen maxPreisGesamt wird eine Exception
geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
5. Musikschule
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ MusikUnterrichtException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + MusikUnterrichtException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
MusikUnterrichtException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Musikschule
Musikschule(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<MusikUnterricht>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getUnterricht(index: int): MusikUnterricht
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(unterricht: MusikUnterricht): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(unterricht: MusikUnterricht): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(lehrkraft: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
6. Nachhilfeinstitut
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ NachhilfeException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + NachhilfeException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine NachhilfeException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Nachhilfeinstitut
Nachhilfeinstitut(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Nachhilfe>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getNachhilfe(index: int): Nachhilfe
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(nachhilfe: Nachhilfe): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(nachhilfe: Nachhilfe): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(lehrer: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
7. Parkplatz
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ParkVorgangException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + ParkVorgangException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
ParkVorgangException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Parkplatz
Parkplatz(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<ParkVorgang>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getVorgang(index: int): ParkVorgang
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(vorgang: ParkVorgang): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(vorgang: ParkVorgang): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(kennzeichen: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
8. Fahrradverleih
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ FahrradMieteException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + FahrradMieteException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
FahrradMieteException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Fahrradverleih
Fahrradverleih(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<FahrradMiete>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getMiete(index: int): FahrradMiete
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(miete: FahrradMiete): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(miete: FahrradMiete): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(kunde: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
9. Kino
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ VorstellungException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + VorstellungException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
VorstellungException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Kino
Kino(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Vorstellung>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getVorstellung(index: int): Vorstellung
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(vorstellung: Vorstellung): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(vorstellung: Vorstellung): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(film: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
10. Museum
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ FuehrungException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + FuehrungException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine FuehrungException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Museum
Museum(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Fuehrung>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getFuehrung(index: int): Fuehrung
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(fuehrung: Fuehrung): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(fuehrung: Fuehrung): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(guide: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
11. Schwimmschule
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ SchwimmKursException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + SchwimmKursException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
SchwimmKursException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Schwimmschule
Schwimmschule(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<SchwimmKurs>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getKurs(index: int): SchwimmKurs
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(kurs: SchwimmKurs): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(kurs: SchwimmKurs): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(trainer: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
12. Skischule
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ SkiKursException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + SkiKursException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine SkiKursException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Skischule
Skischule(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<SkiKurs>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getKurs(index: int): SkiKurs
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(kurs: SkiKurs): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(kurs: SkiKurs): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(skiLehrer: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
13. Fotostudio
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ShootingException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + ShootingException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine ShootingException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Fotostudio
Fotostudio(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Shooting>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getShooting(index: int): Shooting
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(shooting: Shooting): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(shooting: Shooting): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(fotograf: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
14. Reinigungsfirma
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ReinigungException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + ReinigungException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine ReinigungException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Reinigungsfirma
Reinigungsfirma(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Reinigung>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getReinigung(index: int): Reinigung
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(reinigung: Reinigung): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(reinigung: Reinigung): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(firma: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
15. Lieferdienst
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ LieferungException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + LieferungException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine LieferungException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Lieferdienst
Lieferdienst(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Lieferung>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getLieferung(index: int): Lieferung
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(lieferung: Lieferung): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(lieferung: Lieferung): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(fahrer: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
16. Taxiunternehmen
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ FahrtException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + FahrtException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine FahrtException mit
einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Taxiunternehmen
Taxiunternehmen(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Fahrt>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getFahrt(index: int): Fahrt
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(fahrt: Fahrt): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(fahrt: Fahrt): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(ziel: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
17. Paketdienst
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ VersandException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + VersandException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine VersandException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Paketdienst
Paketdienst(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Versand>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getVersand(index: int): Versand
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(versand: Versand): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(versand: Versand): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(empfaenger: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
18. Campingplatz
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ AufenthaltException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + AufenthaltException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine AufenthaltException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Campingplatz
Campingplatz(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Aufenthalt>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getAufenthalt(index: int): Aufenthalt
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(aufenthalt: Aufenthalt): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(aufenthalt: Aufenthalt): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(gast: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
19. Hundeschule
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ HundeTrainingException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + HundeTrainingException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
HundeTrainingException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Hundeschule
Hundeschule(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<HundeTraining>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getTraining(index: int): HundeTraining
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(training: HundeTraining): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(training: HundeTraining): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(trainer: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
20. Reitschule
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ReitKursException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + ReitKursException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine ReitKursException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Reitschule
Reitschule(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<ReitKurs>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getKurs(index: int): ReitKurs
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(kurs: ReitKurs): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(kurs: ReitKurs): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(pferd: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
21. Werkstatt
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ReparaturException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + ReparaturException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine ReparaturException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Werkstatt
Werkstatt(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Reparatur>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getReparatur(index: int): Reparatur
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(reparatur: Reparatur): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(reparatur: Reparatur): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(mechaniker: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
22. Supportfirma
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ SupportAuftragException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + SupportAuftragException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
SupportAuftragException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
SupportFirma
SupportFirma(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<SupportAuftrag>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getAuftrag(index: int): SupportAuftrag
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(auftrag: SupportAuftrag): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(auftrag: SupportAuftrag): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(techniker: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
23. Webagentur
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ WebProjektException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + WebProjektException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine WebProjektException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Webagentur
Webagentur(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<WebProjekt>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getProjekt(index: int): WebProjekt
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(projekt: WebProjekt): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(projekt: WebProjekt): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(entwickler: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
24. Druckerei
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ DruckAuftragException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + DruckAuftragException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
DruckAuftragException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Druckerei
Druckerei(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<DruckAuftrag>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getAuftrag(index: int): DruckAuftrag
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(auftrag: DruckAuftrag): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(auftrag: DruckAuftrag): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(kunde: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
25. CateringFirma
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ CateringAuftragException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + CateringAuftragException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
CateringAuftragException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
CateringFirma
CateringFirma(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<CateringAuftrag>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getAuftrag(index: int): CateringAuftrag
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(auftrag: CateringAuftrag): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(auftrag: CateringAuftrag): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(kunde: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
26. Veranstalter
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ EventException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + EventException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine EventException mit
einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Veranstalter
Veranstalter(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<Event>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getEvent(index: int): Event
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(event: Event): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(event: Event): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(veranstalter: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
27. Bootsverleih
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ BootMieteException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + BootMieteException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine BootMieteException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Bootsverleih
Bootsverleih(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<BootMiete>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getMiete(index: int): BootMiete
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(miete: BootMiete): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(miete: BootMiete): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(kunde: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
28. Flugschule
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ FlugUnterrichtException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + FlugUnterrichtException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
FlugUnterrichtException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Flugschule
Flugschule(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<FlugUnterricht>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getUnterricht(index: int): FlugUnterricht
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(unterricht: FlugUnterricht): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(unterricht: FlugUnterricht): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(fluglehrer: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
29. Kochschule
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ KochKursException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + KochKursException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine KochKursException
mit einer sprechenden Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Kochschule
Kochschule(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<KochKurs>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getKurs(index: int): KochKurs
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(kurs: KochKurs): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(kurs: KochKurs): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(koch: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt die passenden Objekte, deren Gesamtpreis unter dem Grenzwert
liegt. Bei einem negativen maxPreisGesamt wird eine
Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
30. Fahrschule
Erweitern Sie die Implementierung um eine Exception-Klasse:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ FahrAusbildungException ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ + FahrAusbildungException(meldung) ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 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 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Sämtliche Fehler werfen eine
FahrAusbildungException mit einer sprechenden
Fehlermeldung.
Testen Sie alle Parameterprüfungen.
Fahrschule
Fahrschule(name: String)
Erzeugt ein Objekt mit dem übergebenen Namen und einer leeren
ArrayList<FahrAusbildung>. Der Name darf weder
null noch leer sein.
set-Methoden
Übergabeparameter dürfen nicht null sein. Strings dürfen
nicht leer sein.
getAusbildung(index: int): FahrAusbildung
Liefert das Objekt am übergebenen Index zurück. Bei einem ungültigen
Index wird eine Exception geworfen.
hinzufuegen(ausbildung: FahrAusbildung): boolean
Das Objekt darf nicht bereits vorhanden sein. Es können maximal 15
Objekte gespeichert werden. null darf nicht hinzugefügt
werden. Bei einer erfolgreichen Hinzufügung wird true
zurückgegeben.
entfernen(ausbildung: FahrAusbildung): boolean
null darf nicht übergeben werden. Das Objekt muss vorhanden
sein. Bei erfolgreicher Entfernung wird true
zurückgegeben.
entfernen(fahrlehrer: String): int
null und ein leerer String dürfen nicht übergeben werden.
Entfernen Sie alle passenden Objekte und geben Sie die Anzahl der
entfernten Objekte zurück. Wenn kein passendes Objekt gefunden wird,
werfen Sie eine Exception.
anzahlPreisGesamt(maxPreisGesamt: float): int
Zählt alle FahrstundenPaket-Objekte, deren
paketPreis unter dem Grenzwert liegt. Bei einem negativen
maxPreisGesamt wird eine Exception geworfen.
JUnit
Erstellen Sie die zugehörigen JUnit-Tests. Testen Sie insbesondere
alle gültigen Fälle, Grenzwerte und sämtliche Fehlerfälle mit
assertThrows.
Code-Dateien
| Dateiname | Aktion |
|---|---|
| CODECode_Fahrzeug.zip | Download |
| CODECode_Fenster.zip | Download |
| CODECode_Mitarbeiter.zip | Download |
| CODECode_Tanzschule.zip | Download |
Videos
| Dateiname | Aktion |
|---|---|
| VIDEOVideo_Fahrzeug_D | Abspielen |
| VIDEOVideo_Fenster_Teil1_D | Abspielen |
| VIDEOVideo_Fenster_Teil2_D | Abspielen |
| VIDEOVideo_Mitarbeiter_D | Abspielen |
| VIDEOVideo_Tanzschule_D | Abspielen |
Lernmaterialien
Ausgangslage
@Override
public void setPs(int ps) {
if ((ps >= 70) && (ps <= 200)) {
this.ps = ps;
}
else {
System.out.println("Fehler: ungültige PS Anzahl! Bei einem Auto muss diese zw. 70 und 200 liegen!");
this.ps = 100;
}
}Es wurde im Fehlerfall:
Fehlermeldung ausgegeben
Zuweisung des Defaultwertes
Der Konstruktor lieferte eine gültige Objektreferenz - obwohl der Parameter falsch war.
ToDo
Exception Klasse
public class FahrzeugException extends Exception {
public FahrzeugException(String meldung) {
super(meldung);
}
}Wir bekommen die Funktionalität der Exception Klasse geschenkt.
setMethode
@Override
public void setPs(int ps) throws FahrzeugException {
if ((ps >= 70) && (ps <= 200)) {
this.ps = ps;
}
else {
throw new FahrzeugException("Fehler: ungültige PS Anzahl! Bei einem Auto muss diese zw. 70 und 200 liegen!");
}
}Nun liefert die setMethode eine Exception.
Änderungen:
throw new Fahrzeugexception mit der Fehlermeldung
Methodenkopf liefer auch eine Exception
Vaterklasse
public abstract void setPs(int ps) throws FahrzeugException;Auch hier gehört der Methodenkopf angepasst.
Die beiden Methodenköpfe müssen IDENT sein.
Aufrufe
Die ganze Aufrufhierarchie liefert eine Exception.
Erst in der Test-Klasse darf die Exception abgefangen werden.
Test
@Test
public void testAutoPSWenig() {
Auto a = null;
try {
a = new Auto("Opel", 69, true, false);
System.out.println(a);
assertEquals(1,0);
}
catch (FahrzeugException e) {
System.out.println(e.getMessage());
assertEquals(1,1);
}
}In der Testklasse wird die Exception abgefangen und die Fehlermeldung ausgegeben.
Struktur
Ausgangslage
public void hinzufugen(int pos, Fahrzeug neu) {
if (neu != null) {
if ((pos >= 0) && (pos <= fahrzeuge.size())) {
if (fahrzeuge.contains(neu) == false) {
fahrzeuge.add(pos, neu);
}
else {
System.out.println("Fehler: Fahrzeug schon vorhanden!");
}
}
else {
System.out.println("Fehler: ungültige Position!");
}
}
else {
System.out.println("Fehler: kein Fahrzeug!");
}
}Eine Folge von if/else Statements.
Prüfung
pre condition check
public void hinzufugen(int pos, Fahrzeug neu) throws FahrzeugException {
if (neu == null)
throw new FahrzeugException("Fehler: kein Fahrzeug!");
if ((pos < 0) || (pos > fahrzeuge.size()))
throw new FahrzeugException("Fehler: ungültige Position!");
if (fahrzeuge.contains(neu))
throw new FahrzeugException("Fehler: Fahrzeug schon vorhanden!");
fahrzeuge.add(pos, neu);
}Zuerst werden die Fehlerfälle abgearbeitet.
Dann bleibt nur mehr der auszuführende Code übrig.