Hallo zusammen,
folgende Aufgabe:
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 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,
•
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 setzen.
•
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.
Mein Code:
Irgendwie ist die Aufgabe nicht komplett gelöst... Ich weiss auch nicht wirklich weiter...
Ich müsste doch irgendwie nach Eingabe der Werte zurück zum Anfang gelangen?!
Kann mir bitte jemand helfen?
folgende Aufgabe:
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 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,
•
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 setzen.
•
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.
Mein Code:
Code:
import java.util.Arrays;
import javax.swing.*;
public class Test
{
//EINGABE EINE NEUEN KISTE
static void eingabe(int[][]argEingabe){
int nummer;
int breite, laenge, hoehe;
//Kistennummer eingeben
do {
nummer=Integer.parseInt(JOptionPane.showInputDialog("Geben Sie bitte eine Kistennummer ein (1 -75)"));
//Wenn Kistennummer gültig und noch nicht vergeben
if(nummer>0 && nummer<=argEingabe.length)
if(argEingabe[nummer-1][0]==0){
//Nummer der Kiste zuweisen
argEingabe[nummer-1][0]=nummer;
//Werte Einlesen
breite=Integer.parseInt(JOptionPane.showInputDialog("Kistenbreite"));
argEingabe[nummer-1][1]=breite;
laenge=Integer.parseInt(JOptionPane.showInputDialog("Kistenlaenge"));
argEingabe[nummer-1][2]=laenge;
hoehe=Integer.parseInt(JOptionPane.showInputDialog("Kistenhoehe"));
argEingabe[nummer-1][3]=hoehe;
}
else {
System.out.println("\nDie Kistennummer ist ungültig oder schon vergeben");
}
}
while(nummer<=0 || nummer>argEingabe.length);
}
//LÖSCHEN EINER KISTE
static void loeschen(int[][] argLoeschen) {
int nummer;
//Kistennummer eingeben
do {
nummer=Integer.parseInt(JOptionPane.showInputDialog("Geben Sie bitte die zu löschende Kistennummer ein"));
//Kontrolle ob die eingegebene Kistnnummer einer bereits gespeicherten Kiste entspricht
if(nummer>0 && nummer<=argLoeschen.length)
if(argLoeschen[nummer-1][0]==nummer){
argLoeschen[0][0]=nummer;
}
else {
System.out.println("\nDie Kistennummer " +nummer + " ist nicht bekannt");
}
}
while(nummer<=0 || nummer>argLoeschen.length);
}
//ÄNDERN EINER KISTE
static void aendern(int[][] argAendern) {
int nummer;
int breite, laenge, hoehe;
//Kistennummer eingeben
do {
nummer=Integer.parseInt(JOptionPane.showInputDialog("Geben Sie bitte eine Kistennummer ein (1 -75)"));
//Wenn Kistennummer gültig und noch nicht vergeben
if(nummer>0 && nummer<=argAendern.length)
if(argAendern[nummer-1][0]!=0){
//Werte Einlesen
breite=Integer.parseInt(JOptionPane.showInputDialog("Kistenbreite"));
argAendern[nummer-1][1]=breite;
laenge=Integer.parseInt(JOptionPane.showInputDialog("Kistenlaenge"));
argAendern[nummer-1][2]=laenge;
hoehe=Integer.parseInt(JOptionPane.showInputDialog("Kistenhoehe"));
argAendern[nummer-1][3]=hoehe;
}
else {
System.out.println("\nDie Kistennummer ist ungültig oder noch nicht vergeben");
}
}
while(nummer<=0 || nummer>argAendern.length);
}
//ANZEIGEN EINER KISTE
static void anzeigen(int[][] argAnzeigen){
int nummer;
nummer=Integer.parseInt(JOptionPane.showInputDialog("Geben Sie eine vorhandene Kistennummer ein"));
for(int i=0; i<argAnzeigen.length; i++){
if(nummer>0 && nummer<=argAnzeigen.length && argAnzeigen[i][0] == nummer){
System.out.println("\nDie Daten der Kiste sind t:\t"+Arrays.toString(argAnzeigen[i]));
return;
}
}
System.out.println("\nDie Kistennummer " +nummer + " ist nicht bekannt");
}
public static void main(String[] args) {
//Vereinbarung des Arrays
int[][] kistenArray = new int[75][4];
//Auswahl der Funktion
String funktionEinlesen;
char funktion;
System.out.println("Folgende Funktionen stehen Ihnen zur Auswahl: \n");
System.out.println("A \t Eingabe einer neuen Kiste");
System.out.println("B \t Löschen einer Kiste");
System.out.println("C \t Ändern einer Kiste");
System.out.println("D \t Daten einer Kiste anzeigen");
System.out.println("E \t Daten aller Kisten anzeigen");
funktionEinlesen=JOptionPane.showInputDialog("Wählen Sie eine Funktion");
funktion = funktionEinlesen.charAt(0);
//Auswahl auswerten
switch(funktion) {
case 'a':
case 'A':
System.out.println("\nSie haben Eingabe einer neuen Kiste gewählt");
eingabe(kistenArray);
break;
case 'b':
case 'B':
System.out.println("\nSie haben Löschen einer Kiste gewählt");
loeschen(kistenArray);
break;
case 'c':
case 'C':
System.out.println("\nSie haben Ändern einer Kiste gewählt");
aendern(kistenArray);
break;
case 'd':
case 'D':
System.out.println("\nSie haben Daten einer Kiste anzeigen gewählt");
anzeigen(kistenArray);
break;
}
System.exit(0);
}
}
Irgendwie ist die Aufgabe nicht komplett gelöst... Ich weiss auch nicht wirklich weiter...
Ich müsste doch irgendwie nach Eingabe der Werte zurück zum Anfang gelangen?!
Kann mir bitte jemand helfen?