Lagerverwaltung

Codix

Bekanntes Mitglied
Hallo zusammen, hier ist eine Aufgabe und unten ist die Frage an euch. Danke im Voraus.


Erstellen Sie eine „Lagerverwaltung“, die folgende Daten für Kisten speichern kann:

eine eindeutige Nummer zur Identifikation jeder einzelnen Kiste,

die Breite, Länge und Höhe jeder Kiste.
Die Nummer zur Identifikation der Kiste können Sie nach einem beliebigen Schema selbst vergeben. Stellen Sie aber durch geeignete Verfahren sicher, dass bei der Ein
gabe einer neuen Kiste nicht eine bereits vergebene Nummer benutzt wird.
Das Programm soll die Daten der Kisten lediglich zur Laufzeit speichern – also nur so lange, wie das Programm arbeitet. Es sollen maximal Daten von 75 Kisten ver
waltet werden können.
Das Programm soll folgende Funktionen anbieten:

Eingabe einer neuen Kiste,

Löschen der Daten einer vorhandenen Kiste,

Ändern der Daten einer vorhandenen Kiste,

Anzeigen der Daten einer vorhandenen Kiste und

eine Listenfunktion, die die Daten aller vorhandenen Kisten anzeigt.
Beim Löschen, Ändern und Anzeigen soll der Zugriff auf die Daten der Kiste über die Nummer der Kiste erfolgen.
Für die Umsetzung gelten folgende Vorgaben:

Speichern Sie die Daten in einem mehrdimensionalen Array. Erstellen Sie dieses Array lokal in der Methode main(). Verwenden Sie bitte keine Klassenvariable für das Array.

Stellen Sie sicher, dass beim Zugriff auf die Daten der Kisten die Grenzen des Arrays nicht verlassen werden.

Erstellen Sie für das Eingeben, Löschen, Ändern, Anzeigen und Auflisten jeweils eigene Methoden.

Sorgen Sie dafür, dass beim Löschen, Ändern, Anzeigen und Auflisten nur auf Einträge zugegriffen werden kann, für die bereits Daten erfasst wurden. Dazu können Sie zum Beispiel überprüfen, ob die Nummer der Kiste noch den Wert 0 hat, der beim Anlegen des Arrays automatisch zugewiesen wird. Um eine Kiste zu löschen, reicht es dann, die Nummer der Kiste wieder auf den Wert 0 zu set
zen.

Erstellen Sie in der Methode main() ein Auswahlmenü für den Zugriff auf die einzelnen Funktionen der Lagerverwaltung.

Kommentieren Sie sowohl die verwendeten Variablen als auch die Methoden. Geben Sie bei den Methoden bitte eine kurze Beschreibung der Funktionsweise, der verwendeten Argumente und eines eventuellen Rückgabewerts an.


Java:
public class Lagerverwaltung {

    //2d array
    private Kiste kiste[][] = new Kiste[75][1];

    //Konstruktor
    public Lagerverwaltung(Kiste[][] k) {
        this.kiste = k;
    }

    //legt eine neue Kiste an, an der Stelle, an der die erste Null als id ist
    public void kisteAnlegen(int l, int h, int b) {
        for (int i = 0; i < kiste.length; ++i) {
            if (kiste[i][0] == null) {
                Kiste k = new Kiste(l, h, b, i);
                kiste[i][0] = k;
                i = kiste.length;

            }
        }
    }

    //löscht die Daten anhand der id
    public void datenLoeschen(int id) {
        for (int i = 0; i < kiste.length; ++i) {
            if (kiste[i][0] != null) {
                if (kiste[i][0].getId() == id) {
                    kiste[i][0] = null;
                }
            }
        }
    }

    //ändert die daten anhand der id und der zu änderen werte
    public void datenAendern(int id, int l, int h, int b) {
        for (int i = 0; i < kiste.length; i++) {
            if (kiste[i][0] != null) {
                if (kiste[i][0].getId() == id) {
                    kiste[i][0].setLaenge(l);
                    kiste[i][0].setHoehe(h);
                    kiste[i][0].setBreite(b);
                    i = kiste.length;
                }
            }
        }
    }

    //zeigt die werte an, anhand der id
    public void anzeigen(int id) {
        System.out.println("ID " + kiste[id][0].getId() + " Höhe " + kiste[id][0].getHoehe() + " Länge " + kiste[id][0].getLaenge() + " Breite " + kiste[id][0].getBreite());

    }

    //die Methode zeigt alle vorhandenen Werte an && ruft anzeigen() auf
    public void alleAnzeigen() {
        for (int i = 0; i < kiste.length; ++i) {
            if (kiste[i][0] != null) {
                anzeigen(kiste[i][0].getId());
            }
        }
        System.out.println();
    }}

Java:
public class Kiste {
    private int id;
    private int laenge;
    private int hoehe;
    private int breite;
  
    public Kiste(int laenge, int breite, int hoehe, int id){
        this.laenge = laenge;
        this.hoehe= hoehe;
        this.breite = breite;
        this.id= id;
    }
  
    public void anzeigen() {
        System.out.println("ID " + getId() + " Breite " +getBreite() + " Länge " + getLaenge() + " Höhe " + getHoehe());
    }

    public int getId() {
        return id;
    }
  
    public void setID(int id){
        this.id=id;
    }

    public int getLaenge() {
        return laenge;
    }

    public void setLaenge(int laenge) {
        this.laenge = laenge;
    }

    public int getHoehe() {
        return hoehe;
    }

    public void setHoehe(int hoehe) {
        this.hoehe = hoehe;
    }

    public int getBreite() {
        return breite;
    }

    public void setBreite(int breite) {
        this.breite = breite;
    }
  
  
  
}

Java:
public class Main{
  
    //main Methode
    public static void main(String[] args) {

        Kiste[][] k2 = new Kiste[75][1];
        Lagerverwaltung l = new Lagerverwaltung(k2);
        l.kisteAnlegen(1, 1, 1);
        l.kisteAnlegen(2, 2, 2);
        l.kisteAnlegen(3, 3, 3);
        l.kisteAnlegen(4, 4, 4);
        l.alleAnzeigen();
        l.datenLoeschen(2);
        l.alleAnzeigen();
        l.datenAendern(3, 9, 9, 9);
        l.alleAnzeigen();

    }
  
}

Bitte um Antworten, ob die Aufgabenstellung so erfüllt ist. Wenn nicht, was soll, muss verbessert werden?
 

LimDul

Top Contributor
Dein Array ist nicht wirklich mehrdimensional. Du nutzt ja nur die erste Dimension. So wie ich die Aufgabe lese, soll keine eigene Klasse Kiste angelegt werden, sollen alle Daten direkt im Array gespeichert werden.
 

MoxxiManagarm

Top Contributor
Erstellen Sie eine „Lagerverwaltung“, die folgende Daten für Kisten speichern kann:

eine eindeutige Nummer zur Identifikation jeder einzelnen Kiste,

die Breite, Länge und Höhe jeder Kiste.
Die Nummer zur Identifikation der Kiste können Sie nach einem beliebigen Schema selbst vergeben. Stellen Sie aber durch geeignete Verfahren sicher, dass bei der Ein
gabe einer neuen Kiste nicht eine bereits vergebene Nummer benutzt wird.
Das Programm soll die Daten der Kisten lediglich zur Laufzeit speichern – also nur so lange, wie das Programm arbeitet. Es sollen maximal Daten von 75 Kisten ver
waltet werden können.

Ich weiß nicht wie oft ich genau diesen Text hier schon gelesen habe :D #aufgabendieimmerwiederkehren

Dein Array ist nicht wirklich mehrdimensional. Du nutzt ja nur die erste Dimension. So wie ich die Aufgabe lese, soll keine eigene Klasse Kiste angelegt werden, sollen alle Daten direkt im Array gespeichert werden.

Das glaube ich auch, das Array soll vermutlich 75*4 groß sein, obwohl das objektorientierte ich lieber das Kistenobjekt sehen würde :D

Stellen Sie sicher, dass beim Zugriff auf die Daten der Kisten die Grenzen des Arrays nicht verlassen werden.

Dahingehend sehe ich noch keine Maßnahmen im Code

Erstellen Sie in der Methode main() ein Auswahlmenü für den Zugriff auf die einzelnen Funktionen der Lagerverwaltung.

Das sehe ich auch noch nicht.

Kommentieren Sie sowohl die verwendeten Variablen als auch die Methoden. Geben Sie bei den Methoden bitte eine kurze Beschreibung der Funktionsweise, der verwendeten Argumente und eines eventuellen Rückgabewerts an.
Deine Kommentare dafür sind nicht ausreichend, die haben beispielsweise so auszusehen:

Java:
/**
* Calculates the sum of 2 integers
*
* @param a left summand
* @param b right summand
* @return the sum
*/
public int add(int a, int b) {
  return a + b;
}
Tipp: Wenn du mit /** zu tippen anfängst bereiten die meisten IDE's dir den Rest schon vor.
 

temi

Top Contributor
Sorgen Sie dafür, dass beim Löschen, Ändern, Anzeigen und Auflisten nur auf Einträge zugegriffen werden kann, für die bereits Daten erfasst wurden.
Das ebenfalls nicht...

In Summe hast du von den Vorgaben fast keine einzige erfüllt.

Wobei am wichtigsten ist:
Nur so als Tipp: wenn man erst eine Aufgabe fertig stellt und diese auch verstanden hat, fallen die späteren Aufgaben deutlich einfacher.

In der Regel steigern sich die Schwierigkeiten und das notwendige Wissen mit jeder Aufgabe. Insofern ist es wichtig der Reihe nach zu arbeiten und alles verstanden zu haben.
 

Ähnliche Java Themen

Neue Themen


Oben