commit 3b63ef540b931106c6e57076f36a17da44fc1932 Author: Marc Michalsky Date: Tue Apr 14 16:50:20 2020 +0200 initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..442f41b --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Ladungsliste +![Aufgabe](img/Ladungsliste1.png) +![Methodensignatur](img/Ladungsliste2.png) \ No newline at end of file diff --git a/img/Ladungsliste1.png b/img/Ladungsliste1.png new file mode 100644 index 0000000..19ed4e3 Binary files /dev/null and b/img/Ladungsliste1.png differ diff --git a/img/Ladungsliste2.png b/img/Ladungsliste2.png new file mode 100644 index 0000000..62e7b0c Binary files /dev/null and b/img/Ladungsliste2.png differ diff --git a/src/gfn/marc/Ladungsliste.java b/src/gfn/marc/Ladungsliste.java new file mode 100644 index 0000000..08ec26a --- /dev/null +++ b/src/gfn/marc/Ladungsliste.java @@ -0,0 +1,85 @@ +package gfn.marc; + +public class Ladungsliste { + + static int[][] leereLadungsliste = generiereLeereLadungsliste(150); + static double nutzlast_kg = 7500.0; + static int maxAnzahl_Palette = 17; + + public static void main(String[] args) { + + int[][] ladungsliste = erstelleLadungsliste(leereLadungsliste, nutzlast_kg, maxAnzahl_Palette); + + // Ausgabe der LKW-Beladung + if (ladungsliste.length > 0) { + System.out.println("Gewicht der Pallette in kg | LKW-Nr. | Palette-Nr."); + System.out.println("------------------------------------------------------"); + for (int[] zeile : ladungsliste) { + System.out.println(" " + zeile[0] + " " + zeile[1] + + " " + zeile[2]); + } + } else System.err.println("Keine Ladungsliste vorhanden!"); + + } + + + // Methode zur erstellung vollständiger Ladelisten (wie in Aufgabe gefordert) + static int[][] erstelleLadungsliste(int[][] ladungsliste, double nutzlast_kg, int maxAnzahl_Palette) { + + int lkwNr = 1; + int[] zaehler = new int[ladungsliste.length]; + int[][] neueLadungsliste = new int[ladungsliste.length][3]; + + // Gewicht der Ladung und Anzahl der Palletten aufaddieren, bis einer der Maximalwerte überschritten wird + // Anzahl in zaehler-Array festhalten + int gewichtLadung = 0; + int i = 0; + int anzahlPalletten = 0; + for (int[] zeile : ladungsliste) { + anzahlPalletten++; + gewichtLadung += zeile[0]; + if (anzahlPalletten > maxAnzahl_Palette || gewichtLadung > nutzlast_kg) { + i++; + anzahlPalletten = 0; + gewichtLadung = 0; + } else zaehler[i]++; + } + + // neue Ladeliste füllen + // LKW-Nr hochzählen, wenn Wert des Eintrags im zaehler-Array erreicht + int k = 0; + for (int j = 0; j < ladungsliste.length; j++) { + neueLadungsliste[j][0] = ladungsliste[j][0]; + if (zaehler[k] > 1 && lkwNr < 11) { + neueLadungsliste[j][1] = lkwNr; + zaehler[k]--; + } else if (lkwNr < 11){ + neueLadungsliste[j][1] = lkwNr; + lkwNr++; + k++; + } + neueLadungsliste[j][2] = ladungsliste[j][2]; + + } + + // neue Ladeliste zurückgeben + return neueLadungsliste; + } + + + // Hilfs-Methode zur Generierung zufällige Ladelisten + static int[][] generiereLeereLadungsliste(int anzahlPaletten) { + int[][] leereLadungsListe = new int[anzahlPaletten][3]; + + int paletteNrPraefix = 276100; + for (int[] zeile : leereLadungsListe) { + zeile[0] = (int) (Math.random() * 4 + 5) * 100; + zeile[1] = 0; + zeile[2] = paletteNrPraefix++; + } + + return leereLadungsListe; + } +} + +