Ringliste mit Auszaehlvers

Status
Nicht offen für weitere Antworten.

Alex87

Neues Mitglied
Hi

Ich bin durch Glück und Zufall auf eure Site gestoßen und hoffe mal es hinterlässt keinen schlechten Eindruck wenn ich
jetzt gleich mal mit einem PRoblem komme, bei dem mir auch meine Klassenkameraden nicht helfen konnten icon_sad.gif

Ich benötige eine Ringliste, welche auch einen AUszaehlvers beinhaltet,

Ich sitze da schon eine Woche dran komme aber nicht dahinetr wie ichs genau machen soll

Hier ist das was ich bisher habe :


Code:
import java.io.*;
public class RingList {

    static ListElem list = null;  // Element null setzen
    static ListElem naechstes;
    static String name;
    public static void main(){
       
    }
    public  void RingList(int n){
        ListElem letztes;
       In.open("Liste.txt");      //aus Datei Liste.txt
        name=In.readWord();       // die Namen entnehmen
        while(In.done()){   
        letztes = list;

        for (int i = 0; i < n-1; i++) {
   
            list = new ListElem(null, list, name);
        }
    }

        letztes.next = list;     
       
        list.vorgaenger = letztes;
    }
        void auszaehlen(int count,int current)   // Klasse ausfuehren
        {
            if (count == current)
            {
                current = 0;
                System.out.println(name+ "Weg Damit!");  // gibt an wer weg muss       
            }
            else System.out.println(name+ "Darf Bleiben!"); // gibt an wer bleibt
            this.next.auszaehlen(count, current +1);
        }
}



Allerdings bekomm ich andauernd einen Fehler bei dem Auszaehlen.... kann mir hier bitte wer sagen was ich genau falsch mache ?



Ich weiß es kommt sehr kurzfristig aber könnt ihr mir bitte schnell helfen ? Ich muss das mrogen abgeben icon_sad.gif

Wär sehr nett von euch

Vielen Dank

mfg
alex
 

Alex87

Neues Mitglied
hab die site heute erst gefunden bzw eben.... ich rbauch ja nur en tipp wenn ihr was wisst was ich falsch mache
 
G

Gast

Gast
Versuchs mal damit... Viel Spaß

Code:
/**
* Dies repraesentiert eine Ringliste.
*/
public class Ringliste 
{
	
	/**
	 * Die Liste der Woerter.
	 */
	private String[] liste;
	/**
	 * Das naechste Element.
	 */
	private ListenElement naechstes;
	/**
	 * Das Element.
	 */
	private ListenElement element;
	/**
	 * Das vorherige Element.
	 */
	private ListenElement letztes;
	
	/**
	 * Dies konstruiert eine Ringliste.
	 * @param liste Die Woerter der Ringliste.
	 */
	public Ringliste(String[] liste)
	{
		this.liste = liste;
		element = new ListenElement(liste,liste[0]);
		letztes = new ListenElement(liste,element.vorheriges());
		naechstes = new ListenElement(liste,element.naechstes());
	}
	/**
	 * Dies liefert das x-te wort der Ringliste.
	 * @param x: Die Position vom gesuchten Wort.
	 * @return: Das Wort an der Stelle x.
	 */
	public String dasXNaechste(int x)
	{
		String rueckgabe = "";
		for (int i = 0; i < x; i++)
		{
			element.setzeListenelement 
(element.naechstes());
			
		}
		rueckgabe = element.lieferListenelement();
		return rueckgabe;
	}
}

/**
 * Dies repraesentiert ein Element einer Ringliste.
 *
 */
public class ListenElement 
{
	/**
	 * Dies ist die Woerterliste.
	 */
	private String[] liste;
	/**
	 * Dies ist das Listenelement.
	 */
	private String listenelement;
	/**
	 * Dies konstruiert ein Listenelement.
	 * @param liste: Die Woerterliste.
	 * @param wort: Das Wort, das Listenelement werden soll.
	 */
	public ListenElement(String[] liste, String wort)
	{
		this.liste = liste;
		this.listenelement = wort;
		
	}
	/**
	 * Dies liefert den Index von Wort in der Liste.
	 * @param wort: Das gesuchte Wort.
	 * @return Der Index vom gesuchten Wort.
	 */
	public int lieferIndex(String wort)
	{
		int rueckgabe = 0;
		for (int i = 0; i < liste.length; i++)
		{
			if (liste[i].equals(wort))
			{
				rueckgabe = i;
			
			}
		}
		return rueckgabe;
	}
	/**
	 * Dies liefert das naechste Listenelement.
	 * @return Das naechste Listenelement.
	 */
	public String naechstes()
	{
		String rueckgabe = "";
		try
		{
			rueckgabe = liste[lieferIndex(this.listenelement)+1];
		}
		catch(IndexOutOfBoundsException e)
		{
			rueckgabe = liste[0];
			
		}
		return rueckgabe;	
	}
	/**
	 * Dies liefert das vorherige Listenelement.
	 * @return Das vorherige Listenelement.
	 */
	public String vorheriges()
	{
		String rueckgabe = "";
		try
		{
			rueckgabe = liste[lieferIndex(this.listenelement)-1];
		}
		catch(IndexOutOfBoundsException e)
		{
			rueckgabe = liste[liste.length-1];
			
		}
		return rueckgabe;	
	}
	/**
	 * Dies setzt das listenelement.
	 * @param wort: Das Wort das Listenelement werden soll.
	 */
	public void setzeListenelement(String wort)
	{
		this.listenelement = wort;
	}
	/**
	 * Dies liefert das Listenelement.
	 * @return Das Listenelement.
	 */
	public String lieferListenelement() 
	{
		return this.listenelement;
	}
	
	
	
}

*Wildcard - Code Tags eingefügt*
 
G

Gast

Gast
Zusatz:

Die Attribute in der Ringliste : liste, naechstes und letztes kannst du dir unter Umständen auch sparen.
Wichtig ist nur das Element und die Weitergabe der Liste an das
Listenelement.
 
Status
Nicht offen für weitere Antworten.

Oben