Aufgabe 1 (Patient)

Für eine Arztpraxis sollen die Daten der (vorerst eines) Patienten in einer Klasse Patient erfasst werden.

Geben Sie ein geeignetes Pflichtenheft für eine Klasse Patient an.

Modellieren Sie die Klasse Patient und zwei mögliche Patienten in einem UML-Objektdiagramm.

Implementieren Sie die Klasse Patient in Java und testen Sie diese mit einer Klasse AppPatient.

Aufgabe 2 (Auto)

Modellieren Sie Autos als Klasse nach folgenden Festlegungen:

  1. Zu einem Auto werden KFZ-Kennzeichen, Kilometerstand, Tankvolumen, Kraftstoffverbrauch und Kraftstoffmenge erfasst.
  2. Ein Auto kann tanken(Menge) und fahren(Strecke).
  3. Die aktuellen Werte der Attribute KFZ-Kennzeichen, Kilometerstand und Tankvolumen können abgefragt werden.
  4. Ein Auto soll sowohl ohne Werte als auch mit geeigneten Startwerten erzeugt werden können.

Modellieren Sie ein geeignetes UML-Klassendiagramm.

Implementieren Sie die Klasse Auto in Java. (Die Methoden der Klasse sollen ihre Aktionen kommentieren.)

Implementieren Sie eine Klasse AppAuto, in der zwei Autos erzeugt werden und diese fahren bzw. tanken.

Zusatz: Implementieren Sie eine geeignete GUI-Klasse für die Klasse Auto


Aufgabe 3

Erzeugen Sie zu Aufgabe Artikelverwaltung eine geeignete Klasse und testen Sie diese mit einer Klasse AppArtikel.

Zusatz: Implementieren Sie eine geeignete GUI-Klasse.


Aufgabe 4 (Konto)

Schreiben Sie eine Klasse, die ein Bankkonto realisiert. Attribute für das Bankkonto sind der Name und Vorname des Kontoinhabers, die Kontonummer, der Kontostand sowie ein Limit, bis zu dem das Konto überzogen werden darf.

  1. Erstellen Sie einen oder mehrere geeignete Konstruktoren!
  2. Erstellen Sie Methoden für folgende Operationen:
    • Ausgabe der Kontodaten (toString())
    • Einzahlung.
    • Auszahlung.
    • Abfrage des Kontostandes.

Aufgabe 5 (Punkt)

Die Klasse Punkt soll einen Punkt in einem zweidimensionalen Koordinatensystem repräsentieren. Ein Punkt besteht aus folgenden Attribute:

  • X-Koordinate
  • Y-Koordinate

Die Klasse Punkt soll Methoden für folgende Problemfelder erhalten:

  • toString()
  • Abstand des Punktes zum Ursprung
  • Spiegelung des Punktes an der X-Achse (Ergebnis soll ein neuer Punkt sein!)
  • Spiegelung des Punktes an der Y-Achse (Ergebnis soll ein neuer Punkt sein!)
  • Spiegelung des Punktes am Ursprung (Ergebnis soll ein neuer Punkt sein!)
  • Abstand es Punktes zu einem anderen Punkt.

Entwerfen Sie eine geeignete Klasse Punkt als UML-Diagramm.

Implementieren Sie die Klasse Punkt in Java und testen Sie diese mit einer Klasse AppPunkt.

Aufgabe 6 (Radio)

Implementieren Sie eine Klasse Radio mit folgenden Attributen:

  • eingeschaltet, wenn ein Radio an oder aus ist.
  • lautstaerke, wie laut spielt das Radio Musik? (Die Lautstärke soll nur im Bereich von 0 bis 10 liegen.)
  • frequenz, die die Frequenz des gewählten Senders angibt (Erlaubter Frequenzbereich ist zwischen 85.0 und 110.0).

Implementieren Sie zu der Klasse zwei Konstruktoren der Art:

  • Radio()
  • Radio(boolean istAn, int lautstaerke, double frequenz)

Zu der Klasse Radio sollen folgende Methoden implementiert werden:

  • lauter(), leiser(): Diese Methoden sollen die Lautstärke ändern (nur möglich im Zustand an).
  • an(), aus(): Diese Methoden sollen den Zustand des Attributs eingeschaltet ändern.
  • public String toString() Diese Methode soll Informationen über den internen Zustand als String zurückgeben. Es soll eine Zeichenkette der Form „Radio an: Freq=98.4, Laut=2“ zurückgeben.
  • waehleSender(double frequenz) Diese Methode soll eine Frequenz speichern. Ist die gewählte Frequenz außerhalb der erlaubten Frequenzbereichs, so soll die Frequenz 99.9 gewählt werden.

Alle Methoden sollen sich selbst mitteilen.


Aufgabe 7 (Aquarium)

In einem Aquarium werden verschiedene Zierfische gehalten. Bestimmte Arten sind sehr temperaturempfindlich, d. h. von einer bestimmten vorgegebenen Temperatur sollte nicht mehr als 5% abgewichen werden. Um dies zu garantieren, wird in regelmäßigen Abständen die Temperatur gemessen und an die Steuerungseinheit übergeben, die dann gegebenenfalls nachgeregelt. Zudem soll eine Lampe über dem Aquarium gesteuert werden.

  • Beschreiben Sie die folgende Ausgabe (der Steuereinheit):
  • Modellieren Sie eine Klasse Steuerung mit geeigneten Attributen und Methoden in Form eines UML-Klassendiagramms und implementieren Sie diese Klasse so, dass die o. a. Ausgabe möglich wird.
  • Geben Sie ein Hauptprogramm an, das mit Hilfe eines Steuerobjektes die obige Ausgabe erzeugt.

Aufgabe 8 (Raumbuchung)

Eine Firma vermietet für Gruppen, Vereine oder Privatpersonen eine Vielzahl von Räumen in einem Hochhaus. Der Firma gehört das gesamte Hochhaus, es stehen aber nicht immer alle Räume zur Verfügung. Um das Problem einfach zu halten, gehen wir davon aus, dass die zur Verfügung stehenden Räume durchnummeriert sind.

Für das Problem wurden folgende Parameter in einem Pflichtenheft festgehalten:

  1. Von der Firma wird der Name, eine Adresse, die Anzahl der Räume zur Vermietung und die maximale Anzahl der möglichen Räume gespeichert.
  2. Alle Attribute müssen gelesen werden können.
  3. Die Größe der Räume (d. h. die Menge der Sitzplätze) wird in einem Feld gespeichert.
  4. Die einzelnen Räume werden von Kunden gebucht, diese werden in einem Feld gespeichert.
  5. Eine Firma wird mit ihrem Namen und der Adresse erzeugt, zudem werden alle notwendigen Werte gesetzt.
  6. Es kann ein Raum (mit der Sitzplatzmenge) hinzugefügt werden.
  7. Es muss eine Methode geben, die nach einem Raum mit einer gewünschten Größe sucht und dessen Nummer zurückgibt; findet sich kein Raum, wird -1 zurückgegeben.
  8. Es muss eine Methode geben, die die Anzahl der freien (ungebuchten) Räume ermittelt und zurückgibt.
  • Modellieren Sie für das Problem ein geeignetes UML-Klassendiagramm.
  • Implementieren Sie
    • den Konstruktor der Klasse Firma,
    • die Methode fuegeRaumHinzu(int plaetze),
    • die Methode sucheRaum(int plaetze) und
    • die Methode anzahlFrei().