faecher:informatik:oberstufe:adt:containerschiffe:start

Dies ist eine alte Version des Dokuments!


Containerschiffe

Ein Containerschiff ist ein speziell für den Transport von Containern gebautes Frachtschiff. Die Container sind genormte Behälter, die auf vorgesehenen Plätzen aufeinander gestapelt werden. Ein besonderer Schiffstyp, das sogenannte Feederschiff, hat nur eine geringe Anzahl von Plätzen zur Aufnahme von Containern und kann somit auch kleine Häfen anlaufen.

Eine Reederei besitzt mehrere Feederschiffe mit jeweils genau zwei Stapelplätzen. Die Plätze werden auf jedem Schiff mit platzA und platzB bezeichnet. Jeder Platz kann genau einen Containerstapel aufnehmen. Ein Container auf einem solchen Stapel darf nicht mehr als 28 t wiegen.

(A1)

Das Schiff soll möglichst ausgeglichen beladen werden. Aus diesem Grund werden neue Container immer auf dem leichteren Stapel abgelegt, bei gleich schweren Stapeln auf platzA.

Die Reederei möchte die Frachten der Feederschiffe mit einem objektorientierten Computerprogramm verwalten. Das folgende Diagramm zeigt die beteiligten Klassen. Die Klasse Containerstapel stellt dabei eine Erweiterung des ADT Stapel dar:

  • Erläutere, welche Auswirkungen die Methoden push und pop auf einen Stapel haben. Begründe, warum für diese Aufgabenstellung die Modellierung mit einem Stapel sinnvoll ist.
  • Die Klasse Containerstapel besitzt die Methode getGesamtgewicht(): double. Implementiere diese Methode in Java. Beachte dabei, dass hierfür keine zusätzlichen Attribute in die Klasse Containerstapel eingefügt werden dürfen.

(A2)

Das Schiff soll möglichst ausgeglichen beladen werden. Aus diesem Grund werden neue Container immer auf dem leichteren Stapel abgelegt, bei gleich schweren Stapeln auf platzA.

Implementiere die Methode aufladen(neu:Container) in der Klasse Schiff, die den übergebenen Container jeweils auf dem bisher leichteren der beiden Stapel ablegt, bzw. auf platzA, wenn beide Stapel gleich schwer sind.

  • faecher/informatik/oberstufe/adt/containerschiffe/start.1635354424.txt.gz
  • Zuletzt geändert: 27.10.2021 17:07
  • von sbel