G
Guest
Gast
Hey Leute,
also ich muss hier die Namen von Personen in alphabetischer Reihenfolge sortieren. Erst wird der Nachname angeschaut und wenn der gleich ist wird der Vorname angeschaut. Leider gibt mir mein Programm da nichts aus. Kann mir da jemand weiterhelfen
Das ist die Methode, die die Namen ausgeben sollte.
also ich muss hier die Namen von Personen in alphabetischer Reihenfolge sortieren. Erst wird der Nachname angeschaut und wenn der gleich ist wird der Vorname angeschaut. Leider gibt mir mein Programm da nichts aus. Kann mir da jemand weiterhelfen
Code:
/**
* Die Teilnehmer werden in der gesamten Teilnehmerliste alphabetisch nach
* Nach- und Vornamen sortiert
*/
public void sortierenNachNamen()
{
boolean namenVertauscht = true;
int i;
int anzahlTeilnehmer = 0; //anzahl der Teilnehmer zu Beginn
TeilnehmendePerson vertauschen; //die Namen werden vertauscht
for(i = 0; i < Uebungsgruppen.MAX_ANZAHL_TEILNEHMER *
Uebungsgruppen.MAX_ANZAHL_GRUPPEN; i++)
{
do
{
namenVertauscht = false;
for(i = teilnehmer.length - 1; i > anzahlTeilnehmer; i--)
{
if(teilnehmer[i].getNachname().compareToIgnoreCase
(teilnehmer[i + 1].getNachname()) > 0)
{
vertauschen = teilnehmer[i];
teilnehmer[i] = teilnehmer[i + 1];
teilnehmer[i + 1] = vertauschen;
namenVertauscht = true;
}
else if((teilnehmer[i].getNachname().compareToIgnoreCase
(teilnehmer[i + 1].getNachname()) == 0) &&
(teilnehmer[i].getVorname().compareToIgnoreCase
(teilnehmer[i + 1].getVorname()) == 0))
{
vertauschen = teilnehmer[i];
teilnehmer[i] = teilnehmer[i + 1];
teilnehmer[i + 1] = vertauschen;
namenVertauscht = true;
}
}
anzahlTeilnehmer++;
}while(namenVertauscht);
}
}
Das ist die Methode, die die Namen ausgeben sollte.
Code:
/**
* ruft die Methode aus der Klasse Uebungsgruppen auf, welche die Teilnehmer und
* deren Daten sortiert nach Namen zurueckgibt.
* @param uebungsgruppen
* die Uebungsgruppen, die ausgegeben werden sollen
*/
public void gibTeilnehmerAus(Uebungsgruppen uebungsgruppen)
{
int anzahl = 0; //anzahl der Teilnehmer zu Beginn
//getNachNamenSortierteTeilnehmer, ist die Methode, die die Teilnehmerliste
//der Methode sortierenNachNamen() zurückgibt
TeilnehmendePerson[] studenten = uebungsgruppen.getNachNamenSortierteTeilnehmer();
for(int i = 0; i < studenten.length; i++) {
if(studenten[i] != null) {
anzahl++;
}
}
if(anzahl > 0) {
for(int i = 0; i < anzahl; i++) {
Ausgabe.schreib(studenten[i].toString());
Ausgabe.neueZeile();
}
}
else {
Ausgabe.schreib("Keine Teilnehmer vorhanden! \n\n");
}
}