Hallo zusammen!
Ich muss, wie viele andere wahrscheinlich auch schon mussten, eine Laerverwaltung für die Schule programmieren. Das Modul 226 ist unser erstes Java Modul.
Aufgabe:
1. Erstellen Sie eine Lagerverwaltung, die folgende Daten für die Kisten speichern kann:
- Eine eindeutige Nummer zur Identifikation jeder einzelnen Kiste,
- Die Breite, Länge und Höhe der Kiste sowie
- Das Volumen der 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 Volumen der Kiste soll automatisch vom Programm anhand der Breite, Länge und Höhe berechnet werden können.
Das Programm soll maximal 50 Kisten verwalten können und folgende Funktionen anbieten:
- Eingabe einer neuen Kiste,
- Löschen der Daten einer vorhandenen Kiste,
- Ändern der Daten einer vorhandenen Kiste,
- Anzeigen der Daten einer vorhanden 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 einer Struktur und legen Sie ein Array in der erforderlichen Grösse für die Struktur an. Erstellen Sie dieses Array lokal in der Methode Main(). Verwenden Sie keine Klassenvariable.
- Stellen Sie sicher, dass beim Zugriff auf die Daten der Kisten die Arraygrenzen nicht verlassen werden.
- Erstellen Sie für das Eingeben, Löschen, Ändern, Anzeigen und Auflisten eigene Methoden.
So, ich glaube, dies habe ich mit diesem Code nicht schlecht erreichen können. Der Code habe ich hier in einem Beitrag schon mal gefunden. Ich denke, der stimmt auch gut mit meiner Aufgabenstellung überein.
Code:
Jetzt habe ich zu dieser Aufgabe zwei fragen.
1. Entspricht dieser Code wirklich meiner Aufgabenstellung? Laut meinem Wissen kann ich alles machen was in der Aufgabe verlangt wurde. Oder nicht???
2. Ich arbeite mit Eclipse. Wenn ich jetzt im Eclipse eine neue Kiste erfasse, kann ich nach dem erfassen nicht mehr die anderen Funktionen ausführen. Das heisst, ich kann schlussendlich gar nicht eine Liste mit allen Kisten anzeigen lassen. Kann ich dieses Problem beheben, wenn ich ein anderes Programm brauche? Oder ist es gar nicht möglich.
Wenns es möglich ist, dass ich nach dem erfassen einer Kiste eine Liste aller Kisten anzeigen kann, wie kann ich dies machen??
Besten Dank für Eure Hilfe.
Ich muss, wie viele andere wahrscheinlich auch schon mussten, eine Laerverwaltung für die Schule programmieren. Das Modul 226 ist unser erstes Java Modul.
Aufgabe:
1. Erstellen Sie eine Lagerverwaltung, die folgende Daten für die Kisten speichern kann:
- Eine eindeutige Nummer zur Identifikation jeder einzelnen Kiste,
- Die Breite, Länge und Höhe der Kiste sowie
- Das Volumen der 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 Volumen der Kiste soll automatisch vom Programm anhand der Breite, Länge und Höhe berechnet werden können.
Das Programm soll maximal 50 Kisten verwalten können und folgende Funktionen anbieten:
- Eingabe einer neuen Kiste,
- Löschen der Daten einer vorhandenen Kiste,
- Ändern der Daten einer vorhandenen Kiste,
- Anzeigen der Daten einer vorhanden 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 einer Struktur und legen Sie ein Array in der erforderlichen Grösse für die Struktur an. Erstellen Sie dieses Array lokal in der Methode Main(). Verwenden Sie keine Klassenvariable.
- Stellen Sie sicher, dass beim Zugriff auf die Daten der Kisten die Arraygrenzen nicht verlassen werden.
- Erstellen Sie für das Eingeben, Löschen, Ändern, Anzeigen und Auflisten eigene Methoden.
So, ich glaube, dies habe ich mit diesem Code nicht schlecht erreichen können. Der Code habe ich hier in einem Beitrag schon mal gefunden. Ich denke, der stimmt auch gut mit meiner Aufgabenstellung überein.
Code:
Code:
package ch.modul226.Lagerverwaltung;
import java.util.Arrays;
import javax.swing.*;
public class Lagerverwaltung {
//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 -50)"));
//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 -50)"));
//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[50][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);
}
}
Jetzt habe ich zu dieser Aufgabe zwei fragen.
1. Entspricht dieser Code wirklich meiner Aufgabenstellung? Laut meinem Wissen kann ich alles machen was in der Aufgabe verlangt wurde. Oder nicht???
2. Ich arbeite mit Eclipse. Wenn ich jetzt im Eclipse eine neue Kiste erfasse, kann ich nach dem erfassen nicht mehr die anderen Funktionen ausführen. Das heisst, ich kann schlussendlich gar nicht eine Liste mit allen Kisten anzeigen lassen. Kann ich dieses Problem beheben, wenn ich ein anderes Programm brauche? Oder ist es gar nicht möglich.
Wenns es möglich ist, dass ich nach dem erfassen einer Kiste eine Liste aller Kisten anzeigen kann, wie kann ich dies machen??
Besten Dank für Eure Hilfe.