JAVA: Optimale Bestellmenge

optBestellmenge

Problemstellung:
Bestimmung der optimalen Bestellhäufigkeit

Die Berechnung der optimalen Bestellhäufigkeit / opt. Bestellmenge ist eine typische betriebswirtschaftliche Aufgabenstellung. Dabei ist zu überlegen, wie häufig man bei einem gegebenen Jahresbedarf bestellen soll bzw. wieviel Stück jeweils bestellt werden sollen. Zum einen entstehen bei jeder Bestellung bestellfixe Kosten, die es zu minimieren gilt, zum anderen verursacht  eine großen Bestellmenge
(-> geringe Bestellhäufigkeit) und dem damit unmittelbar verbundenen hohen durchschnittlichen Lagerbestand, eine hohe Kapitalbindung (Kapitalkosten) sowie hohe Lagerkosten. Dies spiegelt sich vereinfacht durch den sog. Lagerzinssatz wider.  Zur Berechnung dieser Kosten  wird  dieser Lagerzinssatz mit dem durchschnittlichen Wert des Lagerbestandes multipliziert.

Bei einer geringen Bestellhäufigkeit (hohe Bestellmenge) entstehen somit geringe Bestellkosten, aber hohe Lagerkosten und umgekehrt.

nännchenAufgabeAufgaben

Klasse: Lege eine Klasse mit dem Namen Lager an. Sie hat folgende Instanzvariablen. Wähle geeignete Datentypen.

  • Produktname
  • Preis pro Stück
  • Verbrauch pro Jahr
  • Aktueller Lagerbestand in Stück
  • Mindestbestellmenge  (ab dieser Menge, muss nachbestellt werden)

Programmiere folgende Methoden:

  1. Konstruktor
  2. ProduktinformationenDrucken
    Hier wird lediglich Informationen zum Produkt inklusive dem aktuellen Wert des derzeitigen Lagerbestandesauf dem Bildschirm ausgegeben. Überlege Dir dazu einen geeigneten Satz bzw. Sätze.
  3. ProduktVerbrauchen
    Import: Verbrauchsmenge; kein Export; hier werden die Lagerbestände entsprechend reduziert.
  4. LagerAuffuellen
    Import: Stückzahl des gelieferten Produkts; hier werden die Lagerzugänge erfasst bzw. die Lagerzugänge realisiert.
  5. BestellmengePruefen
    Wenn die Mindestbestellmenge erreicht ist, soll eine entsprechende Meldung ausgegeben werden.
  1. GesamtkostenBerechnen (in Abhängigkeit der Bestellhäufigkeit) Import ist die Bestellhäufigkeit im Jahr, sowie die Bestellkosten (fixe Kosten pro Bestellung) sowie der Lagerkostenzinssatz. Berechnet werden folgende Dinge:
    • Bestellkosten pro Jahr (Kosten der Bestellung * Anzahl der Bestellung)
    • Bestellmenge (=Jahresverbrauch / Bestellhäufigkeit)
    • Durchschnittlicher Lagerbestand (= Bestellmenge / 2)
    • Lagerbestandswert (=Durchschnittlicher Lagerbestand * Preis pro Stück)
    • Lagerkosten (=Durchschnittlicher Lagerbestandswert * Lagerkostenzinssatz)
    • Gesamtkosten (Lagerkosten + Bestellkosten)

Runde Eurobeträge auf 2 Nachkommastellen und Mengen auf 0 Nachkommastellen.

Diese Informationen sollen auf den Bildschirm gedruckt werden. Zurückgegeben (return) werden nur die Gesamtkosten.

  1. OptimaleBestellAnzahlBerechnen
    Dazu soll folgende Formel verwendet werden:
    = Wurzel aus (Lagerzinssatz* Jahresverbrauch*0.5*Preis / Bestellkosten)
    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) verwendet werden.
    Zurückgegeben werden soll die optimale Bestellhäufigkeit (return) und ein entsprechender Satz auf den Bildschirm gedruckt werden. Dieser sollte auch die zu bestellende Menge enthalten.
  2. BestellKostenAusgeben (1)
    Import ist die maximale 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 die Methode GesamtkostenBerechnen (in Abhängigkeit der Bestellhäufigkeit).
  1. BestellKostenAusgeben (2) & (3)
    Letztlich wie BestellKostenAusgeben (1), nur das Abbruchkriterium der Schleife soll anders sein. Anfangen bei der Bestellhäufigkeit von 1 wird für jede weitere Bestellhäufigkeit eine Zeile ausgegeben, bis sich die Gesamtkosten  erhöhen. In der vorletzten Zeile befindet sich somit die optimale Bestellhäufigkeit.
    (Benutze einmal eine while-do und einmal eine do-while Schleife.)
  1. Methode ueberschriftDrucken, die eine Überschriftenzeile erstellt und von den Methoden BestellKostenAusgeben (1) – (3) ausgerufen wird.

lösungLösungshinweise:

bidlschirmMögliche Bildschirmausgaben

 ad 2: Bestandsinformationen:
Der aktuelle Lagerbestand vom Produkt Wintermäntel beträgt 500.0.
Der Preis des Produktes beträgt 50.0 Euro. Somit beträgt aktuelle Lagerbestandswert 25000.0 Euro.

ad 5 Bestellmenge prüfen:
Der aktuelle Lagerbestand vom Produkt Wintermäntel beträgt 500.0 Stück. Es muss noch nichts bestellt werden.
oder
Der aktuelle Lagerbestand vom Produkt Wintermäntel beträgt 50.0 Stück. Es muss nachbestellt werden.

ad7 Optimale Bestellhäufigkeit/Bestellmenge berechnen
Die optimale Bestellhäufigkeit pro Jahr beträgt 7.0 mal.
Dabei müssen 1414.0 Stück bestellt werden.

ad 8 BestellKostenAusgeben (1)

Bildschirmfoto 2021-02-11 um 21.59.18

ad 9 BestellKostenAusgeben (1)

Bildschirmfoto 2021-02-11 um 22.01.37

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;
}

Einfache Beispiele für eine Schleife – zum kopieren:
Zahl-do-while-2 & Zahl-do-while

excelBerechnung und optische Darstellung der optimalen Bestellmenge in Excel: OptimaleBestellmenge-3

gruppeGruppen WAHF12

Bestellmenge – Fortsetzung
for (initialization; boolean expression; increment) { statement(s)} 

continue
break

K. Fröhlig