2 Dimensionale Arrays


#1
Hallo, Ich bräuchte bitte Hilfe bezüglich Arrays in Java..
Aufgabe ist:

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

eine eindeutige Nummer zur Identifikation jeder einzelnen Kiste,

Eingabe 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 verwaltet werden können.
Das Programm soll folgende Funktionen anbieten:
Eingabe einer neuen 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 und Anzeigen jeweils eigene Methoden.

Java:
import javax.swing.JOptionPane;

public class methode {
   
    static void eingabe(int[][] Kistenarray){

     Kistenarray[0][0]= Integer.parseInt(JOptionPane.showInputDialog("Bitte Kistenzahl eingeben: \t"));

    }   
   
     static void ausgabe(int[][] Kistenarray) {
       
         int i=0;
       
         System.out.println("Sie haben die Kiste [" + (Kistenarray[0][0]-1)+ "," +i+ "] mit der Nr." +Kistenarray[0][0]+" ausgesucht");
     }        
        
   
public static void main(String[] args) {
       
        int[][] Lageverwaltung= new int[75][4];
       
        eingabe(Lageverwaltung);
        ausgabe(Lageverwaltung);
       
    }

}

ist das so richtig erstmal zum testen?? es funktioniert aber iwie symantisch ist flasch...
Kann man bitte Tipps geben??
Danke
 
Zuletzt bearbeitet von einem Moderator:

zerix

Hausmeister
Moderator
#2
ist das so richtig erstmal zum testen?? es funktioniert aber iwie symantisch ist flasch...
Kann man bitte Tipps geben??
Ich verstehe nicht ganz, warum man ein mehrdimensionales Array benötigt. Deshalb würde ich mal sagen, dass dein Array ähnlich wie ein Regal aufgebaut sein soll, beispielsweise 15 Fächer breit und 5 Fächer hoch. So kommt man dann auf 75.

Dein Programm ist semantisch nicht ganz falsch. Es fehlt nur fast alles was gefordert ist.
Das Array kannst du dir praktisch als Schrank vorstellen, der 75 Stellplätze hat.
Du gibst in ausgabe immer nur das erste Fach deines Schranks aus und in eingabe speicherst du eine Kistenanzahl im ersten Fach deines Schranks. Das was du in eingabe hast, wird übrigens nirgends gefordert. Ich verstehe auch nicht, warum du deine Klasse methode genannt hast und nicht Lagerverwaltung.

Du musst mehrere Methoden schreiben:
1. Jemand will eine Kiste in Regal stellen
Hier musst du die Daten (Kiste) abfragen, die ins Regal sollen. Beispielsweise als String irgendeinen Text. Dann gehst du zum Regal und schaust, ob noch ein Fach frei ist. Das heißt durch dein Array laufen Fach für Fach und schauen ob schon ein String (!=null) drin ist. Das machst du so lange, bis du ein freies Fach gefunden hast. Dann legst du da die Daten ab. Falls nichts frei ist, gibt es eine Meldung, dass der Schrank voll ist. Falls was frei ist, legst du die Daten ab und gibst aus, wo du sie abgelegt hast, bspw Fach 6 in der 3 Reihe kannst du ausgaben als 306. Das wären dann auch die Indizes deines Arrays.
2. Jemand will die Daten aus dem Regal
Hier musst du die Nummer abfragen, welche Daten er möchte. Hier gibt er dir als Beispiel 306. Hier musst du die 3 und die 06 extrahieren und zu einem int konvertieren. Dann gehst du an deinen Schrank (array) Fach [3][6] und gibst die Daten aus. Ist das Fach allerdings leer, sagst du nur, dass es leer ist.
3. Alles ausgeben
Hier gehst du Fach für Fach durch den Schrank und gibst die Daten aus, wenn Daten drin liegen.

Viele Grüße
Sascha
 
Zuletzt bearbeitet: