Labor – Array-Verwaltung mit Füllstand - Fahrstreckenliste

Erstelle eine Klasse SmartFloatContainer mit Methodensatz analog zum Theorie-Unterlagen-Beispiel SmartIntContainer (alle Werte-Handhabungsmethoden müssen von Int-Wert auf Float-Wert umgestellt werden). Siehe Containerverwaltung mit lückenlos gefülltem Array und Füllstand/freeIdx.

Weiters sollen keine Fehlermeldungen ausgegeben werden, sondern wenn mehr als 1 Fehlergrund existiert (z.B. idx <0, idx > freeIdx), wird ein (halbwegs intuitiver) char-Wert zurückgegeben. Damit kann in der nutzenden Klasse eine passende textuelle Fehlermeldung ausgegeben werden.

Diese Klasse soll dann als "intelligentes Array" als Basis einer Fahrstrecken-Liste (in km) verwendet werden, umgesetzt als Klasse FahrstreckenListe:

SmartFloatContainerBAD_VAL: float = Float.MIN_VALUEvalues: float[];freeIdx: int;Konstruktor(capacity: int)Konstruktor( theArray: float[], freeIdx: int)Konstruktor()usedCells(): intfreeCells(): intisFull(): booleangetCell(int idx): floatprintArray(int cols)Info- und Zugriffs-MethodenfillWithRandom(newFreeIdx: int, replace: boolean, minVal: float, maxVal: float): booleanopenGap(int idx) // schiebt gültige Werte ab 'idx' um 1 höher im ArraycloseGap(int idx) // füllt Lücke in Zelle 'idx' durch nachrückenHilfsmethodenappend(float value): booleanappend2(float value): booleaninsertAsFirst(float value): booleaninsert(int idx, float value): charreplace(int idx, float value): charremove(int idx): charremoveLast(): booleanremoveFirst(): booleanContainer-Änderungs-OperationenFahrstreckenListefahrstreckenListe: SmartFloatContainerKonstruktor()Konstruktor(kapazitaet: int)add(fahrstrecke : float): booleaninsert(idx: int, fahrstrecke: float): booleaninsertAsFirst(float value): booleanremove(idx: int): boolean // false wenn idx ungültigremoveLast(): booleanremoveFirst(): booleanreplace(idx: int, fahrstrecke: float): booleanclear()//... siehe Beispiel in Theorie-UnterlagenDatenerfassungsize(): intminWert(): floatmaxWert(): floatmittelWert(): floatAuswertungenprintMesswerte(spalten: int)Ausgabe

Klasse FahrstreckenListe nutzt einen SmartFloatContainer namens fahrstreckenListe als Werte-Speicher.

  • Der Standard-Konstruktor nutzt die Standard-Kapazität des SmartFloatContainer (dessen Default-Konstruktor).

  • add(…​) …​ nutzt Methode append(…​) oder append2(…​) des SmartFloatContainer.

  • insert(…​) …​ analog

  • remove(…​) …​ analog

  • replace(…​) …​ analog

  • size() …​ Füllstand/Anzahl gültiger Elemente

  • minWert() …​ Kleinster gültiger Wert im Array/in SmartFloatContainer

  • maxWert() …​ Größter gültiger Wert im Array/in SmartFloatContainer

  • mittelWert() …​ Mittelwert der gültigen Zellen im Array/in SmartFloatContainer

  • die Rückgabewerte des SmartFloatContainer (boolean oder char) sollten eine sinnvolle Fehlermeldung mit Grund ermöglichen. Z.B.: idx < 0, idx > freeIdx, Array voll (bei Einfügen) oder Array leer (beim Entfernen).

  • Wertprüfung der Fahrstrecke erfolgt in Klasse FahrstrechenListe

Die Funktion der Klasse SmartFloatContainer ist mittels Unit-Tests sinnvoll zu testen!