Javascript:
//für das Einlesen
import javax.swing.*;
//für die Sonderfunktionen der Arrays
import java.util.Arrays;
public class Einsendeaufgabe_4 {
static int kistenNummer; //Variable als Klassenvariable gesetzt, da diese überall bekannt sein soll
//Methode1 - neue Kiste erfassen
static int[][] neueKiste(int[][] argneueKiste) {
int länge, breite, höhe;
String nKisteEinlesen = null; //String-Variable für den Eingabedialog
char nKisteFunktionWahl; //charVariable um nur das erste Zeichen der Eingabe zu verwenden
boolean nKisteBeenden = false; //Flag-Variable für Endlosschleife
do { //Schleife zum beenden der Kisteneingabe
do { //neue Kiste eingeben
kistenNummer = Integer.parseInt(JOptionPane.showInputDialog("Bitte die Nummer der neuen Kiste eingeben"));
// Prüfung, ob Eingabe innerhalb des Gültigkeitsbereichs von kistenNummer 1-75 liegt
if (kistenNummer >0 || kistenNummer <=75) {
//Prüfung, ob die Kiste schon vorhanden ist, wenn nein, dann Daten eingeben
if (argneueKiste[kistenNummer-1][0] == 0) {
//Wert kistenNummer dem Array werte zuweisen
argneueKiste[kistenNummer-1][0]=kistenNummer;
//Werte für länge, breite und höhe einlesen und dem Array zuweisen
länge = Integer.parseInt(JOptionPane.showInputDialog("Kistenlänge"));
argneueKiste[kistenNummer-1][1]=länge;
breite = Integer.parseInt(JOptionPane.showInputDialog("Kistenbreite"));
argneueKiste[kistenNummer-1][2]=breite;
höhe = Integer.parseInt(JOptionPane.showInputDialog("Kistenhöhe"));
argneueKiste[kistenNummer-1][3]=höhe;
}
else System.out.println("Diese Kistennummer ist bereits vorhanden,\bitte versuchen Sie es erneut!");
}
else System.out.println("Die Eingabe war nicht korrekt!\nDer Wert muss von 1 - 75 sein");
}
while(kistenNummer <= 0 || kistenNummer>argneueKiste.length);
nKisteBeenden = true;
}
while(nKisteBeenden == false); //Ende der Kisteneingabe
nKisteBeenden = true;
return argneueKiste; //Übergabe der Werte - KistenNummer, länge, breite, höhe - aus der Methode an main()
}
public static void main(String[] args) {
int[][] aKistenArray = new int [75][4]; //Zweidimensionaler Array 4 Spalten / 75 Zeilen
String funktionEinlesen = null; //String-Variable für den Eingabedialog
char funktionWahl; //charVariable um nur das erste Zeichen der Eingabe zu verwenden
int i = 1; //Variable für Endlosschleife um main() am Laufen zu halten
for (i = 1; i > 0; i++) { //bewusste Endlosschleife, da das Programm laufen muss, damit die Werte der Variablen nicht verloren gehen!!!!
//Eingabe der gewünschten Funktion
funktionEinlesen = JOptionPane.showInputDialog("Bitte wählen Sie die gewüschte Funktion aus: \n1 = neue Kiste erfassen \n2 = Kiste löschen \n3 = Kiste ändern \n4 = Kiste suchen und Wete anzeigen \n5 = Kisten in einer Liste anzeigen \n6 = Programm beenden");
// nur das erste Zeichen nehmen
funktionWahl = funktionEinlesen.charAt(0);
//die Auswertung von funktionWahl
switch (funktionWahl) {
//der case-Zweig für 1
case '1':
//Methode1 - Kiste neu eingeben
neueKiste(aKistenArray); //übergabe der Werte von aKistenArray in die Methode neueKiste
//übergabe der Werte aus argneueKiste in aKistenArray
//System.arraycopy(wert, kistenNummer-1, aKistenArray], kistenNummer-1, 4);
//aKistenArray = Arrays.copyOf(argneueKiste(10, 20, 30, 40),4);
//Ausgabe der übergebenen Werte aus aKistenArray
System.out.println("\nSie haben folgende Kiste neu erfasst:");
System.out.println("Nr.\tlänge\tbreite\thöhe");
System.out.println(aKistenArray[kistenNummer-1][0] + "\t" + aKistenArray[kistenNummer-1][1] + "\t" + aKistenArray[kistenNummer-1][2] + "\t" + aKistenArray[kistenNummer-1][3]);
i = 1; //Wert für die Endlosschleife
break;
//der case-Zweig für 2
case '2':
System.out.println("Sie haben die Auswahl: " + funktionEinlesen + "getroffen.");
//löschenKiste (kistenArray);
break;
//der case-Zweig für 3
case '3':
System.out.println("Sie haben die Auswahl: " + funktionEinlesen + "getroffen.");
//ändernKiste (kistenArray);
break;
//der case-Zweig für 4
case '4':
kisteSuchen(aKistenArray);
break;
//der case-Zweig für 5
case '5':
System.out.println("Sie haben die Auswahl: " + funktionEinlesen + "getroffen.");
kisteListe(aKistenArray);
break;
//der case-Zweig für 6
case '6':
//Programm beenden?
i = 0;
System.exit(0);
break;
//für alle anderen Eingaben
default:
System.out.println("\nSie haben keine gültige Auswahl getroffen!");
} //hier endet die Auswertung von funktionWahl
}
}
}
ich habe jetzt schon so viele Varianten durchgetestet und weiß einfach nicht mehr weiter.
In meinem Code werden die Werte aus der Methode neueKiste an das Array in main() "aKistenArray weitergeben und auch ausgegeben.
Allerdings werden die Werte nicht über Arrays.copyOf oder System.arraycopy in aKistenArray kopiert, was wohl
programmiertechnisch nicht korrekt ist.
Kann mir jemand sagen, wie ich das Problem lösen kann?
Vielen dank im Voraus für eure Hilfe.
Bin mittlerweile schon am verzweifeln!!!!