JAVA – Opt. Bestellmenge – Klausur

Aufgaben

Klasse: Lege eine Klasse mit dem Namen Bestand an. Sie hat folgende Instanzvariablen:

  • Produktbezeichnung
  • Bezugspreis (in Euro)
  • Jahresverbrauch (in Stück)
  • Derzeitiger Lagerbestand (in Stück)
  • Lagerzinssatz (in Prozent)
  • Fixe Kosten pro Bestellung (in Euro) (6 Punkte)

Programmiere folgende Methoden:

  1. Konstruktor: Die Attributwerte werden vom Anwender über den Bildschirm eingegeben. (6 Punkte)
  1. bestandsinformationenDrucken
    Hier wird lediglich Informationen zum Produkt inklusive dem aktuellen Wert des derzeitigen Lagerbestandes auf dem Bildschirm/Konsole ausgegeben. Überlege Dir dazu einen geeigneten Satz bzw. Sätze. (5 Punkte)
  1. lagerbestandAendern
    Übergabeparameter/Import: Menge. Ist die Menge positiv, wird das Lager aufgefüllt; ist sie negativ, wird der Lagerbestand reduziert. Kein Export/Rückgabewert. (4 Punkte)
  1. lagerZinssatzAenden
    Übergabeparameter/Import: neuer Lagerzinssatz; kein Export/Rückgabewert. (3 Punkte)
  1. BestellmengePruefen
    Übergabeparameter/Import: Mindestbestellmenge. Wenn die Mindestbestellmenge erreicht ist, soll eine entsprechende Meldung ausgegeben werden (Das Produkt …. sollte nachbestellt werden bzw. keine Nachbestellung erforderlich). Übergabeparameter/Import ist die Mindestbestellmenge. Kein Export/Rückgabewert. (6 Punkte)
  1. lagerkostenBerechnen
    Übergabeparameter/Import: bestellmenge; Rückgabewert: lagerkosten.
    Die Lagerkosten berechnen sich aus: (bestellmenge / 2) * Bezugspreis * Lagerzinssatz,
    Die Bestellmenge ergibt sich aus Verbrauch / Anzahl der Bestellungen.
    Diese Methode soll gekapselt sein, d.h. nur innerhalb der Klasse aufrufbar. (5 Punkte)
  2. bestellkostenBerechnen
    Übergabeparameter/Import: bestellmenge; Rückgabewert: Bestellkosten.
    Die Bestellkosten berechnen sich aus: (jahresverbrauch / bestellmenge) * fixe Kosten pro Bestellung.
    Diese Methode soll gekapselt sein, d.h. nur innerhalb der Klasse aufrufbar. (5 Punkte)
  3. gesKostenZeileDrucken
    Übergabeparameter/Import: bestellmenge; Rückgabewert: keiner
    Auf der Konsole ausgeben werden soll eine Zeile mit Anzahl der Bestellung, Bestellmenge, Bestellkosten, Lagerkosten sowie Gesamtkosten. Die gesamten Kosten errechnen sich aus Bestellkosten (Methoden 7) und Lagerkosten (Methode 6). Vergleiche dazu Anlage „Mögliche Bildschirmausgaben“.
    (8 Punkte)
  4. optimaleBestellAnzahlBerechnen
    Dazu soll folgende Formel verwendet werden:
    optAnzahl = Wurzel aus (Lagerzinssatz* Jahresverbrauch*0.5*Preis / Bestellkosten)
    Rückgabewert: optimale Bestellhäufigkeit.
    Zudem soll ein entsprechender Satz auf den Bildschirm gedruckt werde, der die Bestellmenge und die Bestellhäufigkeit enthält.
    Wurzel ziehen: In der Mathematik ist die zweite Wurzel (Quadratwurzel) einer Zahl identisch mit der Zahl hoch 0,5. Somit kann die Methode math.pow(wert,potenz) (-> Potenz = 0.5) verwendet werden. (10 Punkte)
  5. ueberschriftDrucken
    Für die Methoden 11 und 12 sollen die Überschriften der auszugebenden Tabellen gedruckt werden. Diese Methode soll nur innerhalb der Klasse aufgerufen werden. (4 Punkte)
  6. bestellKostenAusgeben
    Übergabeparameter/Import: maximal zu berücksichtigende Bestellanzahl die ausgegeben wird. Anfangen bei der Bestellhäufigkeit von 1 wird für jede weitere Bestellhäufigkeit eine Zeile ausgegeben bis die max. Bestellanzahl erreicht ist. Verwende dazu am besten die Methode 8 gesKostenZeileDrucken zum Ausdruck einer jeden Zeile. (10 Punkte)
  7. bestellKostenAusgeben2
    Zunächst soll die optimale Bestellanzahl berechnet werden (vgl. Methode 7). Insgesamt sollen vier Zeilen vor der optimalen Bestellanzahl und 4 Zeilen nach der optimalen Bestellmenge gedruckt werden.
    Bsp: Ist die optimale Bestellmenge 5, so soll für die Bestellanzahl 1 (= 5-4) bis 9 (= 5+4) gedruckt werden. Beachte: Es gibt keine negative Anzahl. Ist die optimale Bestellanzahl zum Beispiel 3, so sollen für Anzahl 1 bis 7 (=3+4) jeweils eine Zeile gedruckt werden. (12 Punkte)

 Lösungshinweise:

  • Runde Eurobeträge auf 2 Nachkommastellen und Mengen auf 0 Nachkommastellen. Entsprechende Methoden findest Du im Anhang.

bidlschirmMögliche Bildschirmausgaben

Ad2
Bestandsinformationen drucken:
Der aktuelle Lagerbestand vom Produkt Sneaker beträgt 150.0.
Der Preis des Produktes beträgt 80.0. Somit beträgt aktuelle Lagerbestandswert 12000.0.

Ad5
Bestellmenge prüfen:
Der aktuelle Lagerbestand vom Produkt Sneaker beträgt 150.0.
Es muss noch nichts bestellt werden.
bzw.
Der Lagerbestand muss aufgefüllt werden.

Ad9 Optimale Bestellhäufigkeit/Bestellmenge berechnen:
Optimale Bestellhäufigkeit/Bestellmenge berechnen
Die optimale Bestellhäufigkeit pro Jahr beträgt 9.0 mal.
Dabei müssen 1118.0 Stück bestellt werden.

Ad10 Überschriften drucken

Anzahl               Bestell-      Bestell-          Lager-        Gesamt-Bestellungen     Menge        kosten            Kosten        Kosten

Ad11 &12
Bestellkosten ausgeben

Anzahl               Bestell-      Bestell-          Lager-        Gesamt-Bestellungen     Menge        kosten            Kosten        Kosten

1.0             10000.0      500.0              40000.0         40500.0
2.0             5000.0      1000.0              20000.0         21000.0
3.0             3333.0      1500.0              13333.33         14833.33
4.0             2500.0      2000.0              10000.0         12000.0

Methoden zum Runden:

public static double rundenEuro(double betrag) {
//Runden – angepasst auf zwei Nachkommastellen
double d = Math.pow(10, 2);
return Math.round(betrag * d) / d;
}
public static double runden(double value, int nachkommastellen)
{//Runden -gefunden im Internet
double d = Math.pow(10, nachkommastellen);
return Math.round(value * d) / d;
}

2021

K. Fröhlig