Hey zusammen!
Nachdem ich nun Stunden über Stunden hier im Forum und noch auf zig anderen Seiten recherchiert habe zu dieser Aufgabe und dennoch es nicht komplett schaffe kommt nun doch ein Thread von mir. Wie ich mit bekommen habe, gibt es zu genau meiner Aufgabe aus dem Fernstudium bereits einige Fragen - so i'm sorry - aber ich hab sie mir alle durchgelesen und mir helfen sie bei meinen aktuellen Problemen leider nicht, daher bitte helft mir
Aufgabenstellung:
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 bisheriger Ansatz der eigentlich fast fertig sein sollte:
Was aktuell noch nicht funktioniert:
1. das Anzeigen aller bisher gespeicherten Werte im Array. Bedeutet alle angelegten Kisten mit Breite, Länge, Höhe. Aktuell zeigt er mir nur 0en an. Ich würde es gerne übersichtlich darstellen und natürlich nur vergebene Kisten, daher eigentlich der if-Part mit continue, aber irgendwas scheint hier nicht zu funktionieren.
2. das Löschen einer vorhandenen Kiste - hier passiert bisher gar nichts.
Ich war komplett überfordert mit dieser Aufgabe und alles was dort nun steht war lange Recherche und häufiges nachblättern in meinen Heften...ich hoffe ich komme noch zum Ergebnis und es ist danach alles plausibel für mich, denn schließlich sollte man ja auch verstehen was man da schreibt. 😅
Ich freue mich über sämtliche Hilfe!
Nachdem ich nun Stunden über Stunden hier im Forum und noch auf zig anderen Seiten recherchiert habe zu dieser Aufgabe und dennoch es nicht komplett schaffe kommt nun doch ein Thread von mir. Wie ich mit bekommen habe, gibt es zu genau meiner Aufgabe aus dem Fernstudium bereits einige Fragen - so i'm sorry - aber ich hab sie mir alle durchgelesen und mir helfen sie bei meinen aktuellen Problemen leider nicht, daher bitte helft mir
Aufgabenstellung:
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 bisheriger Ansatz der eigentlich fast fertig sein sollte:
Java:
package einsendeaufgabe_4;
import java.util.Arrays;
import javax.swing.*;
public class einsendeaufgabe_4 {
//Eingabe einer neuen Kiste
static void eingabe (int[][]Eingabe) {
int nummer;
int breite, länge, höhe;
nummer=Integer.parseInt(JOptionPane.showInputDialog("Geben Sie eine Kistennummer zwischen 1-75 an"));
//wenn die Nummer gültig ist und noch nicht verwendet wurde, werden die Daten eingegeben
if (nummer>0 && nummer<=Eingabe.length)
if(Eingabe[nummer-1][0]==0) {
//Nummer zuweisen
Eingabe[nummer-1][0]=nummer;
//Werte einlesen
breite=Integer.parseInt(JOptionPane.showInputDialog("Breite der Kiste"));
Eingabe[nummer-1][1]=breite;
länge=Integer.parseInt(JOptionPane.showInputDialog("Länge der Kiste"));
Eingabe[nummer-1][2]=länge;
höhe=Integer.parseInt(JOptionPane.showInputDialog("Höhe der Kiste"));
Eingabe[nummer-1][3]=höhe;
System.out.println("Die Kiste " + nummer + " hat nun die Werte: " + breite + " Breite, " + länge + " Länge, " + höhe + " Höhe." );
}else {
System.out.println("Kiste ungültig");
}
}
// Anzeige der Daten einer vorhandenen Kiste
static void anzeigen (int[][]Anzeigen) {
int nummer;
nummer=Integer.parseInt(JOptionPane.showInputDialog("Bitte die gewünschte Kistennummer eingeben."));
for(int i =0; i < Anzeigen.length; i++) {
if (nummer>0 && nummer<=Anzeigen.length && Anzeigen[i][0]==nummer) {
System.out.println("Die Daten der Kiste lauten: " + Arrays.toString(Anzeigen[i]));
return;
}
}
System.out.println("Die Kistennummer ist ungültig");
}
// Anzeigen aller Daten von allen Kisten
static void liste (int[][]Liste) {
for (int kistenIndex = 0;kistenIndex < Liste.length; kistenIndex++) {
if(Liste[kistenIndex] == null) {
continue;
}
for (int detailsIndex=0;detailsIndex<Liste[kistenIndex].length;detailsIndex++) {
System.out.println(Liste[kistenIndex][detailsIndex]); }
}
}
// Löschen einer Kiste
static void löschen(int[][] Löschen) {
int nummer;
//Kistennummer eingeben
do {
nummer=Integer.parseInt(JOptionPane.showInputDialog("Geben Sie bitte die zu löschende Kistennummer ein!"));
//Überprüfung ob die eingegebene Kiste vorhanden ist
if(nummer>0 && nummer<=Löschen.length)
if(Löschen[nummer-1][0]==nummer){
Löschen[0][0]=nummer;
}
else {
System.out.println("\nDie Kistennummer " +nummer + " ist nicht vorhanden");
}
}
while(nummer<=0 || nummer>Löschen.length);
}
//Ändern einer Kiste
static void ändern(int[][]Ändern) {
int nummer;
int breite, laenge, hoehe;
//Kistennummer eingeben
do {
nummer=Integer.parseInt(JOptionPane.showInputDialog("Geben Sie bitte eine Kistennummer ein, die sie ändern möchten!"));
//Wenn Kistennummer gültig
if(nummer>0 && nummer<=Ändern.length)
if(Ändern[nummer-1][0]!=0){
//Werte Einlesen
breite=Integer.parseInt(JOptionPane.showInputDialog("Kistenbreite"));
Ändern[nummer-1][1]=breite;
laenge=Integer.parseInt(JOptionPane.showInputDialog("Kistenlaenge"));
Ändern[nummer-1][2]=laenge;
hoehe=Integer.parseInt(JOptionPane.showInputDialog("Kistenhoehe"));
Ändern[nummer-1][3]=hoehe;
}
else {
System.out.println("\nDie Kistennummer ist ungültig oder noch nicht vergeben");
}
}
while(nummer<=0 || nummer>Ändern.length);
}
public static void main(String[] args) {
//Die Vereinbarung des Arrays
int [][] lagerverwaltung = new int [75][4];
//Auswahl der Funktion
String funktionEinlesen;
char funktion;
while (true) {
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");
System.out.println("Q \t Programm beenden");
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(lagerverwaltung);
break;
case 'b':
case 'B':
System.out.println("\nSie haben \"Löschen einer Kiste\" gewählt");
löschen(lagerverwaltung);
break;
case 'c':
case 'C':
System.out.println("\nSie haben \"Ändern einer Kiste\" gewählt");
ändern(lagerverwaltung);
break;
case 'd':
case 'D':
System.out.println("\nSie haben \"Daten einer Kiste anzeigen\" gewählt");
anzeigen(lagerverwaltung);
break;
case 'e':
case 'E':
System.out.println("\nAktuelle Daten aller Kisten:");
liste(lagerverwaltung);
break;
case 'q':
case 'Q':
return;
}
}
}
}
Was aktuell noch nicht funktioniert:
1. das Anzeigen aller bisher gespeicherten Werte im Array. Bedeutet alle angelegten Kisten mit Breite, Länge, Höhe. Aktuell zeigt er mir nur 0en an. Ich würde es gerne übersichtlich darstellen und natürlich nur vergebene Kisten, daher eigentlich der if-Part mit continue, aber irgendwas scheint hier nicht zu funktionieren.
2. das Löschen einer vorhandenen Kiste - hier passiert bisher gar nichts.
Ich war komplett überfordert mit dieser Aufgabe und alles was dort nun steht war lange Recherche und häufiges nachblättern in meinen Heften...ich hoffe ich komme noch zum Ergebnis und es ist danach alles plausibel für mich, denn schließlich sollte man ja auch verstehen was man da schreibt. 😅
Ich freue mich über sämtliche Hilfe!