import IO.*;
import java.util.*;
public class Augabe15
{
public static void main (String[] args)
{
Augabe15 augabe15 = new Augabe15();
/** temporären Vergelichsreiter erstellen */
Reiter2 temp = null;
/** Teilnehmerliste erzeugen */
LinkedList teilnehmerliste = new LinkedList();
boolean e = true;
int n = 0;
String inpuffer;
double p;
do
{
/** Aufforderung zur Anmeldung */
System.out.println("Geben Sie bitte die AdSSWSK ein:");
/** Erstellen einer Eingabevariable, die auf "leere Eingabe" überprüft werden kann */
inpuffer = InOut.readLine();
if (inpuffer.equals (""))
{
e = false; // Abbruch bei leerer Eingabe
}
else
{
try
{
/** Umwandlung des Strings in einen double Wert */
p = Double.parseDouble(inpuffer.trim());
/** Abfangen, dass nur %-Zahlen, also zwischen 0 und 100 eingegeben werden */
if((p>100) || (p<0)) System.out.println("Nur Zahlen zwischen 0 und 100!");
else
{
/** Startnummer hochzählen, um Reiter später zu identifizieren */
n++;
/**Falls die Liste leer ist, kann gleich eingefügt werden */
if (teilnehmerliste.isEmpty())
{
teilnehmerliste.add(new Reiter2(n,p));
}
else
{
/** Iterator erzeugen, der Zugriff auf das nächste Element der Liste ermöglicht */
Iterator it = teilnehmerliste.iterator();
/** Einfügen der Teilnehmer in geordneter Reihenfolge */
do
{
/** Index solnage hochzählen, bis Reiter mit höheren AdSSWSK gefunden bzw. das
Listenende erreicht ist */
temp = (Reiter2)it.next();
}
while ((temp.getWsk() < p) && (it.hasNext()));
if (temp.getWsk()>p) /** Einfügen vor dem temporären Reiter */
teilnehmerliste.add (teilnehmerliste.indexOf(temp), new Reiter2(n,p));
else /** am Listenende einfügen */
teilnehmerliste.add (new Reiter2(n,p));
}
}
}
/** Abfangen, dass nur Zahlen als AdSSWSK eingegeben werden */
catch (NumberFormatException e2)
{
System.out.println("Bitte nur Zahlen eingeben!");
}
}
}while (e == true);
/** Ausgabe der sortierten Teilnehmerliste*/
/** Erzeugen eines Iterartors, der das Finden des nächsten Elements der Liste ermöglicht */
Iterator it = teilnehmerliste.iterator();
while (it.hasNext())
{
Reiter2 r = (Reiter2)(it.next());
/** Ausgabe der Startnummer und der AdSSWSK der Reiter in der Teilnehmerliste */
System.out.println("Reiter mit Startnummer " + r.getNummer() + " hat eine AdSSWSK von " + r.getWsk());
}
augabe15.wettkampf();
}
}