Hallo!
Ich hab letzte Woche schon mal angefragt, wegen des Einbinden einer Methode in die Hauptmethode....
Mittlerweile funktioniert mein Compiler nicht mehr, so dass ich es nicht mal mehr compilieren kann.
Deshalb zeige ich euch mal den gesamt Code.
Stimmt das jetzt nun so, ist ist es doch anders???
Bitte helft mir, morgen muss das Programm laufen...
Außerdem wollte ich noch Fragen, ob mir jemand eine Entwicklungsumgebung empfehlen kann, weil mein BlueJ tuts auch nach einer Neuinstallation nicht mehr.
Und vielleicht weiß auch jemand ein gutes deutschsprachiges Java-Buch mit präzisem Stichwortverzeichnis und kommentierten Beispielen...
Ich hab letzte Woche schon mal angefragt, wegen des Einbinden einer Methode in die Hauptmethode....
Mittlerweile funktioniert mein Compiler nicht mehr, so dass ich es nicht mal mehr compilieren kann.
Deshalb zeige ich euch mal den gesamt Code.
Code:
public class Reiter2 {
/** Variablen */
private double adsswsk;
private int nummer;
public int anzSiege;
/** Konstruktor der Klasse Reiter2
@param nr (Startnummer), p (Aus-dem-Sattel-Stoß-Wahrscheinlichkeit */
public Reiter2(int nr, double p) {
adsswsk=p;
nummer=nr;
anzSiege=0;
}
/** Setzen der Aus-dem-Sattel-Stoß-Wahrscheinlichkeit
@param p (Wahrscheinlichkeit) */
void setWsk(double p) {
adsswsk=p;
}
/** Get-Methode der Startnummer
@return nummer */
int getNummer() {
return nummer;
}
/** Get-Methode der Aus-dem-Sattel-Stoß-Wahrscheinlichkeit
@return adsswsk */
double getWsk() {
return adsswsk;
}
/** Stoß
@return ob Zufallszahl kleiner als "Aus-dem-Sattel-Stoß-Wahrscheinlichkeit" */
boolean stossen() {
return Math.random()<adsswsk;
}
}
import java.util.*;
public class turnier2 {
Reiter2 r1 = null, r2 = null;
private LinkedList teilnehmerliste;
public turnier2 (LinkedList t) {
teilnehmerliste =(LinkedList)(t.clone());
}
public LinkedList turnierliste = teilnehmerliste;
/** Kampfhandlungen, bis nur noch ein Teilnehmer übrig ist */
public void wettkampf(teilnehmerliste)
{
while (turnierliste.size() > 1)
{
/** Zufallszahl erzeugen */
double kampf = 100 * Math.random();
/** Iterartor für den Zugriff auf das nächste Element */
Iterator it = turnierliste.iterator();
r1 = (Reiter2)it.next();
if (r1.getWsk() > kampf) /** Wenn die Zufallszahl kleiner als die AdSSWSK ist, dann wird der "Duell"-Partner
von der Turnierliste entfernt */
{
if(it.hasNext())
{
r2 = (Reiter2)(it.next());
turnierliste.remove (turnierliste.indexOf(r2));
}
else
{
it = turnierliste.iterator();
r2 = (Reiter2)(it.next());
}
}
else
r1 = (Reiter2)(it.next());
/** Ausgabe des Siegers */
System.out.println("Sieger des Turniers ist der Reiter mit der Startnummer: " + r1.getNummer());
}
}
}
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();
}
}
Bitte helft mir, morgen muss das Programm laufen...
Außerdem wollte ich noch Fragen, ob mir jemand eine Entwicklungsumgebung empfehlen kann, weil mein BlueJ tuts auch nach einer Neuinstallation nicht mehr.
Und vielleicht weiß auch jemand ein gutes deutschsprachiges Java-Buch mit präzisem Stichwortverzeichnis und kommentierten Beispielen...