/** * Beschreiben Sie hier die Klasse Lager. * * @author (Niclas Bartzsch) * @version (eine Versionsnummer oder ein Datum) */ public class LagerNic { String Produktname; double PreisProStück; int VerbrauchProJahr; int AktuellerLagerbestandInStück; int Mindestbestellmenge; /** * Konstruktor für Objekte der Klasse Lager */ public LagerNic(String inpProduktname, double inpPreisProStück, int inpVerbrauchProJahr, int inpAktuellerLagerbestandInStück, int inpMindestbestellmenge) { Produktname= inpProduktname; PreisProStück= inpPreisProStück; VerbrauchProJahr= inpVerbrauchProJahr; AktuellerLagerbestandInStück= inpAktuellerLagerbestandInStück; Mindestbestellmenge= inpMindestbestellmenge; } public void ProduktinformationenDrucken() { double Lagerwert; Lagerwert=PreisProStück* AktuellerLagerbestandInStück; System.out.println("Das Produkt "+Produktname+" hat einen Stückpreis von "+PreisProStück+" Euro und der Wert des Lagerbestands beträgt "+Lagerwert+" Euro."); } public void ProduktVerbrauchen(int Verbrauchsmenge) { AktuellerLagerbestandInStück= AktuellerLagerbestandInStück-Verbrauchsmenge; } public int LagerAuffuellen(int Stückzahl) { int Lagerzugang; Lagerzugang= AktuellerLagerbestandInStück+ Stückzahl; return Lagerzugang; } public void BestellmengePruefen(){ if (AktuellerLagerbestandInStück <= Mindestbestellmenge) { System.out.println("Es muss nachbestellt werden!"); } else if (AktuellerLagerbestandInStück > Mindestbestellmenge) { System.out.println("Es muss nicht nachbestellt werden!"); } } private static double rundenEuro(double betrag) { { double d=Math.pow(10,2); return Math.round(betrag*d)/d; } } private static double rundenMenge(int Menge) { { double d=Math.pow(10,0); return Math.round(Menge*d)/d; } } private double GesamtkostenBerechnen(int AnzahlBestellungen, double Bestellkosten, double Lagerkostenzinssatz) { Bestellkosten= rundenEuro(Bestellkosten * AnzahlBestellungen); System.out.println(); int Bestellmenge; Bestellmenge= VerbrauchProJahr/AnzahlBestellungen; System.out.println(); double DurchschnittlicherLagerbestand; DurchschnittlicherLagerbestand= Bestellmenge/2; System.out.println(); double Lagerbestandswert; Lagerbestandswert= DurchschnittlicherLagerbestand* PreisProStück; System.out.println(); double Lagerkosten; Lagerkosten= Lagerbestandswert * Lagerkostenzinssatz; double Gesamtkosten; Gesamtkosten= rundenEuro(Lagerkosten + Bestellkosten); System.out.println("Anzahl Bestellungen Bestellmenge Bestellkosten Lagerbestand im Durchschn. Lagerwert im Durchschn. Lagerkosten Gesamtkosten"); System.out.println(AnzahlBestellungen +" "+ Bestellmenge+" "+Bestellkosten+" "+DurchschnittlicherLagerbestand+" " +Lagerbestandswert+" "+Lagerkosten+" "+Gesamtkosten); return Gesamtkosten; } public double OptimaleBestellAnzahlBerechnen(double Lagerkostenzinssatz, double Bestellkosten) { double OptimaleBestellhäufigkeit; OptimaleBestellhäufigkeit= Math.pow(Lagerkostenzinssatz* VerbrauchProJahr*0.5*PreisProStück/Bestellkosten,0.5); return OptimaleBestellhäufigkeit; } private void ueberschriftDrucken() { System.out.println(); System.out.println("Anzahl Bestellungen Bestellmenge Bestellkosten Lagerbestand im Durchschn. Lagerwert im Durchschn. Lagerkosten Gesamtkosten"); } public void BestellkostenAusgeben1(int MaximaleBestellanzahl, double Lagerkostenzinssatz, double Bestellkosten) { System.out.println(); System.out.println("BestellkostenAusgeben1"); ueberschriftDrucken(); int AnzahlBestellungen; AnzahlBestellungen=1; while (AnzahlBestellungen < MaximaleBestellanzahl+1) { GesamtkostenBerechnen(AnzahlBestellungen, Lagerkostenzinssatz, Bestellkosten); AnzahlBestellungen=AnzahlBestellungen +1; } } public void BestellkostenAusgeben2(int MaximaleBestellanzahl, double Lagerkostenzinssatz, double Bestellkosten) { System.out.println(); System.out.println("BestellkostenAusgeben1"); ueberschriftDrucken(); int AnzahlBestellungen; AnzahlBestellungen=1; do { GesamtkostenBerechnen(AnzahlBestellungen, Lagerkostenzinssatz, Bestellkosten); AnzahlBestellungen=AnzahlBestellungen +1; } while (AnzahlBestellungen < MaximaleBestellanzahl+1); } public void BestellkostenAusgeben3(int MaximaleBestellanzahl, double Lagerkostenzinssatz, double Bestellkosten) { System.out.println(); System.out.println("BestellkostenAusgeben1"); ueberschriftDrucken(); int AnzahlBestellungen; AnzahlBestellungen=1; while (AnzahlBestellungen < MaximaleBestellanzahl+1) { GesamtkostenBerechnen(AnzahlBestellungen, Lagerkostenzinssatz, Bestellkosten); AnzahlBestellungen=AnzahlBestellungen +1; } } public void BestellkostenAusgeben4( double Lagerkostenzinssatz, double Bestellkosten) { System.out.println(); System.out.println("BestellkostenAusgeben1"); ueberschriftDrucken(); int AnzahlBestellungen; AnzahlBestellungen=1; double Gesamtkosten1, Gesamtkosten2; do { Gesamtkosten1= GesamtkostenBerechnen(AnzahlBestellungen, Lagerkostenzinssatz, Bestellkosten); AnzahlBestellungen=AnzahlBestellungen +1; Gesamtkosten2= GesamtkostenBerechnen(AnzahlBestellungen, Lagerkostenzinssatz, Bestellkosten); AnzahlBestellungen=AnzahlBestellungen +1; } while (Gesamtkosten2 < Gesamtkosten1); } public void BestellkostenAusgeben5( double Lagerkostenzinssatz, double Bestellkosten) { System.out.println(); System.out.println("BestellkostenAusgeben1"); ueberschriftDrucken(); int AnzahlBestellungen; AnzahlBestellungen=1; double OptimaleBestellhäufigkeit; OptimaleBestellhäufigkeit=OptimaleBestellAnzahlBerechnen( Lagerkostenzinssatz, Bestellkosten); do { GesamtkostenBerechnen(AnzahlBestellungen, Lagerkostenzinssatz, Bestellkosten); AnzahlBestellungen=AnzahlBestellungen +1; } while (AnzahlBestellungen < OptimaleBestellhäufigkeit+2); } }