Ich komm nicht weiter mit einer Aufgabe zum Thema 'mehrdimensionales Array sortieren':
Ich soll Kundendaten verwalten. Dazu habe ich folgendes Programm geschrieben:
Das ganze funktioniert nur eindimensional, aber leider nicht über die ganze 4x4-Matrix. Das heisst, es wird nur sortiert, nach Nummer oder Name oder Vorname oder Adresse. eigentlich bräuchte ich aber Nummer und Name und Vorname und Adresse. Könnt Ihr mir sagen, wie ich alle Spalten ausgeben kann.
A+
Leany
Ich soll Kundendaten verwalten. Dazu habe ich folgendes Programm geschrieben:
Java:
import inout.Console;
public class Kundenverwaltung
{
public static void main(String[] args)
{
int pos, posMin, spalte, steigung, a=0, b=0;
String min,merke;
final String[][] Kundendaten =
{{"25", "Notter", "Kurt", "3000 Bern"},
{"3", "Meyer", "Peter", "3280 Murten"},
{"58", "Henzig", "Barbara", "3822 Interlaken"},
{"22", "Vogel", "Tina", "3825 Muerren"}
};
final String[][] Ergebnisfeld = new String[4][4];
System.out.println("Soll aufsteigend oder absteigend sortiert werden? \n(aufsteigend = 0, absteigend = 1)");
steigung = Console.readInt();
{
System.out.println("wie soll sortiert werden \n(Kundennummer = 0, Nachname = 1, Vorname = 2, Adresse = 3))");
spalte = Console.readInt();
if(steigung == 0 || steigung == 1)
{
if (steigung==0)
{
for(int zeile = 0;zeile < Kundendaten.length; zeile++)
{
posMin = zeile; min = Kundendaten[zeile][spalte];
for(pos=zeile+1; pos<Kundendaten.length; pos++)
if(Kundendaten[pos][spalte].compareTo(min) < 0)
{
min= Kundendaten[pos][spalte];
posMin = pos;
}
merke = Kundendaten[zeile][spalte];
Kundendaten[zeile][spalte]= Kundendaten[posMin][spalte];
Kundendaten[posMin][spalte] = merke;
Ergebnisfeld[a][b]= Kundendaten[zeile][spalte];
a++;
if(zeile == 3)
{b++;}
}
}
if (steigung==1)
{
for(int zeile = 0; zeile < Kundendaten.length; zeile++)
{
posMin = zeile; min = Kundendaten[zeile][spalte];
for(pos=zeile+1; pos<Kundendaten.length; pos++)
if(Kundendaten[pos][spalte].compareTo(min) > 0)
{
min= Kundendaten[pos][spalte];
posMin = pos;
}
merke = Kundendaten[zeile][spalte];
Kundendaten[zeile][spalte]= Kundendaten[posMin][spalte];
Kundendaten[posMin][spalte] = merke;
Ergebnisfeld[a][b]= Kundendaten[zeile][spalte];
a++;
if(zeile == 3)
{b++;}
}
}
}
else
System.out.println("Ungültige Eingabe ! aufsteigend = 0 oder absteigend = 1 EINGEBEN");
a=0;
}
for(int i=0; i<=3; i++)
{
System.out.println();
for(int j=0; j<=3; j++)
{
System.out.print(Ergebnisfeld[i][j]+"\t\t");
}
}
}
}
Das ganze funktioniert nur eindimensional, aber leider nicht über die ganze 4x4-Matrix. Das heisst, es wird nur sortiert, nach Nummer oder Name oder Vorname oder Adresse. eigentlich bräuchte ich aber Nummer und Name und Vorname und Adresse. Könnt Ihr mir sagen, wie ich alle Spalten ausgeben kann.
A+
Leany
Zuletzt bearbeitet: