Hilfe bei Aufgabe

Status
Nicht offen für weitere Antworten.
S

sabi001

Gast
Hallo ihr Lieben :)

bin neu hier und habe eine Frage zu java.
Ich muss eine Aufgabe bearbeiten, bin mir aber sicher, dass
bestimmt etwas falsch ist !
Vllt könntet ihr mir helfen!??

Legen Sie als nachstes eine Klasse Warteschlange mit einer main-Methode an und erganzen Sie ein
privates Attribut erster vom Typ Schlangengast incl. einer passenden getter-Methode. In diesem
Attribut wird der Verweis auf das erste Listenelement gespeichert.
3. Nun braucht unsere Warteschlange noch einige Funktionen. Im folgenden werden die zu implementierenden
Funktionen beschrieben. Die Umsetzung der Methoden bleibt bis auf die Einhaltung der Beschreibung
Ihnen uberlassen.
 void loeschen(): In der Methode soll die Liste komplett geloscht werden.
 int laenge(): Rufen Sie in der Methode eine Hilfsmethode int laenge(Schlangengast gast),
die die Lange der Warteschlange rekursiv berechnet.
 void anstellen(String name, int nummer): In der Methode soll sich { wie der Name schon sagt
{ ein neuer Gast hinten in die Warteschlange einreihen. Uberprufen Sie ob schon ein Gast mit dieser
Ticketnummer existiert, falls nicht fugen Sie einen neuen Schlangengast mit dem Namen name und
der Ticketnummer nummer in die Liste ein. Falls die Ticketnummer schon existiert machen Sie eine
Fehlerausgabe auf stderr.
Tipp: Schreiben Sie sich eine Hilfsmethode die uberpruft ob ein Gast mit einer bestimmten Ticketnummer
in der Warteschlange existiert.
 void rausschmeissen(int nummer): Der Gast mit der Ticketnummer nummer soll aus der Warteschlange
geloscht werden. Falls er nicht existiert { ein Loschen also unmoglich ist { machen Sie eine
Fehlerausgabe auf stderr.

mein programmiertes:

public class Warteschlange {

private Schlangengast erster;
private int nummer;


public Schlangengast getErster(){

return getErster();
}


public void loeschenListe(int Gast){

Gast = 0;
}



public int gebeLaenge(Schlangengast gast){

int counter = 0;

if(gast != null){

counter++;

}else{

return 0;
}

return counter;
}

public void anstellenGast(String name, int nummer, Schlangengast erster){

if (erster == null){

this.erster = erster;
System.out.println("Erster Gast in der Schlange");

} else if(nummer == nummer) {
nummer = this.nummer;
System.err.println("Ticketnummer existiert bereits");

}else{

System.out.println("Der Gast hat den Namen" +name+ "und die Ticketnummer" +nummer);
}
}

public void rausschmeissenGast(int nummer){

if(nummer == 0){

System.out.println("Gast wird gelöscht");
}
else{
System.err.println("Gast existiert nicht");
}
}

public static void main(String[] args) {


}

Wäre super, wenn ihr mir helfen würdet :))
 
G

Gast2

Gast
Schreib dir eine main() Methode und Teste deine Klasse. Dann siehst du ob sie funktioniert oder nicht.

PS:
Java™ Quelltext ist bitte in [ JAVA ]-Tags zu schreiben: [ JAVA ]hier Java Code einfügen[ /JAVA ]
Steht schön dick über dem Formular ;)
 
H

hüteüberhüte

Gast
Für mich ist die Aufgabenstellung nicht verständlich formuliert. Außerdem enthält sie seltsame Zeichen. Also was soll implementiert werden?

Was mir jetzt schon auffällt, viele Zuweisungen an Parameter-Variablen haben keine Wirkung (werden nur geschrieben, nicht gelesen)
 
Zuletzt bearbeitet von einem Moderator:
F

Firephoenix

Gast
Die Aufgabe sieht allgemein dannach aus als solltest du eine verlinkte Liste bauen, google liefert dazu entsprechend viele Ergebnisse (es sieht auch aus als würde ein Stück im Aufgabentext fehlen)

das hier kann garnicht gehen, 0 ist ein int, Gast ist irgenwas und ein Objekt 0 zuzuweisen hat nichts mit dem löschen einer Liste zu tun (abgesehen davon das es nicht geht sondern der compiler meckert):
Java:
public void loeschenListe(int Gast){

Gast = 0;
}

Die Methode hier hat auch nichts mit der länge zu tun, sondern gibt 1 zurück wenn der übergebene Gast ungleich null ist, ansonsten gibt sie 0 zurück:
Java:
public int gebeLaenge(Schlangengast gast){

int counter = 0;

if(gast != null){

counter++;

}else{

return 0;
}

return counter;
}


und die Methode hier macht garnichts außer ausgeben:
Java:
public void rausschmeissenGast(int nummer){

if(nummer == 0){

System.out.println("Gast wird gelöscht");
}
else{
System.err.println("Gast existiert nicht");
}
}

Das sind allerdings alles Fehler die man von bloßem Draufschauen auch ohne große Java-Kenntnisse findet, wie EikeB also schon gesagt hat: schreib dir eine Main und Teste deine Klasse einfach mal (paar Gäste erzeugen und anstellen, paar Methoden aufrufen und in der liste z.b. mit println() Aufrufen dokumentieren was passiert)

Gruß
 
H

hüteüberhüte

Gast
Hab mal alles Wichtige, was implementiert werden sollte, rot markiert:

Warteschlange -> Klasse, beinhaltet mindestens ein Attribut und Methoden
main -> für Testzwecke
erster -> Attribut
getter -> Methode, gibt das erste Warteschlangenelement zurück
loeschen() -> Methode, löscht die ganze Warteschlange
laenge() -> Methode, gibt die Länge der Warteschlange zurück
laenge(Schlangengast gast) -> rek. Methode, die von laenge() aufgerufen wird
anstellen(String name, int nummer) -> Methode, fügt einen neues Element hinten hinzu
stderr -> Fehlerausgabe, wenn das Element bereits vorhanden ist
enthalten(int nummer) -> Methode, prüft, ob das Element mit nummer bereits enthalten ist
rausschmeissen(int nummer) -> Methode, löscht das Element mit nummer
stderr -> ...oder gibt einen Fehler aus

Was noch fehlt wäre eine Klasse Element/Gast mit Zeiger/Referenzvariable auf das nächste Element sowie mit Attributen für Name und Nummer

Dann fang' mal an und melde dich, wenn du an einer Stelle nicht weiterkommst. Stichworte: verkettete Listen (linked lists) und Queue
 
Zuletzt bearbeitet von einem Moderator:
H

hüteüberhüte

Gast
Ok, kann eh noch net pennen:

Java:
public class Gast {
 private Gast naechster = null;

 private String name;
 private int nummer;

 public Gast(String name, int nummer) {
  this.name = name;
  this.nummer = nummer;
 }

 // getter und setter, denn naechster, name und nummer sind private
}

Java:
public class Warteschlange {
 private Gast erster = null;

 public void loeschen() {
  erster = null;
 }

 public int laenge() {
  return laenge(erster, 0);
 }

 private int laenge(Gast g, int i) {
  if (g == null) {
   return i;
  }
  return laenge(g.naechster, i + 1); // durch getter ersetzen
 }

 public void anstellen(String name, int nummer) {
  if (erster == null) {
   erster = new Gast(name, nummer);
   return;
  }

  Gast g = erster;
  Gast g2 = null;
  while (g != null) { // iterativer Ansatz
   if (g.nummer == nummer) {
    System.err.println("bereits vorhanden: " + nummmer);
    return;
   }
   g2 = g;
   g = g.naechster;
  }

  g2.naechster = new Gast(name, nummer);
 }

 public boolean enthalten(int nummer) {
  //..
 }

 public void rausschmeissen(int nummer) [
  //..
 }
}
 
Zuletzt bearbeitet von einem Moderator:

sabi001

Neues Mitglied
Dankeschön für die Hilfe :)
Sag mal hüteüberhüte woher kannst du so gut programmieren??
Könntest du mir evtl ein gutes Buch oder irgendetwas empfehlen für Anfänger??
Liebe Grüße
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben