Zum Inhalt springen

Problem bei Simulation von Warteschlange mit BlueJ


w00tanfall

Empfohlene Beiträge

Hallo liebes Forum,

Meine Aufgabe im Informatikunterricht zur Zeit ist es, die Situation der Warteschlange in einer Praxis mit BlueJ darzustellen.

Dabei stoße ich auf viele kleine Probleme, weshalb ich einfach mal den Quelltext von den beiden Klassen WARTESCHLANGE und PATIENT reinstelle, vielleicht kann mir ja jemand helfen.

public class WARTESCHLANGE

{

// Attribute der Klasse WARTESCHLANGE

PATIENT anfang;

PATIENT ende;

/**

* Konstruktor für neue Objekte der Klasse WARTESCHLANGE

*/

public WARTESCHLANGE()

{

// Attribute festlegen

// hier sollte eine leere Warteschlange stehen, aber kA wie ich das mache

}

// Methoden der Klasse WARTESCHLANGE

void Einfuegen(PATIENT patientNeu)

{

if (ende != null)

{

// das hier spuckt immer einen Fehler aus ;(

// ende.NachfolgerSetzen(patientNeu);

}

else

{

anfang = patientNeu;

}

ende = patientNeu;

}

int Entfernen()

{

PATIENT p;

p = anfang;

if (anfang != null)

{

// hier kommt der Fehler "Found int but expected Patient"

// anfang = anfang.NachfolgerGeben();

}

if (anfang == null)

{

ende = null;

}

// hier kommt die selbe Fehlermeldung wie oben

// return p;

}

void InformationAusgeben()

{

if (ende != null)

{

// hier kommt auch eine Fehlermeldung

// PATIENT.InformationAusgeben();

}

}

ich hab meine Probleme einfach immer an die entsprechende Stelle direkt geschrieben und mit einem // gekennzeichnet.

Hier die andere Klasse PATIENT:

public class PATIENT

{

// Attribute der Klasse PATIENT

String name;

PATIENT nachfolger;

int nachfolger1;

/**

* Konstruktor für neue Objekte der Klasse PATIENT

*/

public PATIENT(String name)

{

// Attribute festlegen

// hier wird die Eingabe des Namen des Patienten erwartet, das Attribut name soll auf einen entsprechenden Wert gesetzt werden und nachfolger auf null

}

// Methoden der Klasse PATIENT

void NachfolgerSetzen()

{

// "erhält als Parameter ene Referenz auf ein Objekt der Klasse PATIENT und weist diese Referenz dem Attribut nachfolger zu

}

int NachfolgerGeben()

{

// soll den Wert des Referenzattributs nachfolger ausgeben

return nachfolger1;

}

int InformationAusgeben()

{

// soll den Wert von name über ein Ausgabefenster ausgeben

return nachfolger1;

}

}

So, ich hoffe mal irgendjemand hat mehr Ahnung davon als ich, ich hab so gut es geht geschrieben was ich konnte, mehr geht leider nicht.

Die Aufgabe ist leider wichtig, muss morgen abend fertig sein und wird dann benotet ;(

MfG

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, ich hoffe mal irgendjemand hat mehr Ahnung davon als ich, ich hab so gut es geht geschrieben was ich konnte, mehr geht leider nicht.

Die Aufgabe ist leider wichtig, muss morgen abend fertig sein und wird dann benotet ;(

Du wirst hier niemanden finden, der Dir Deine Hausaufgaben macht. Wenn es aktuell Dein Wissensstand ist, dann musst Du damit wohl auch so leben. Außerdem werden ihr im Unterricht das auch behandelt haben.

Du solltest damit beginnen, was Deine Klasse "Patient" ist. Sie soll beschreiben, wie ein "Patient" aussieht, der hat einen Namen und eine Krankheit etc. Stell Dir das einmal als Karteikarte beim Arzt vor. Am Empfang werden diese Daten auf die Karteikarte geschrieben (Methode) und der Patient geht ins Wartezimmer....

Das Wartezimmer ist eine Warteschlange (Warteschlange (Datenstruktur) ? Wikipedia). Der als erster gekommen ist, darf als erster zum Arzt, d.h. Dein Patient wird nun, wenn er das Wartezimmer betritt an die Schlange hinten (Property) angefügt, d.h. seine Patientenkarte wird in den Karteikasten ans Ende eingesteckt (Methode). Der Arzt nimmt immer von vorne (Property) die Karten weg, um den Patienten zu holen (Methode). Deine Warteschlange muss somit immer wissen, wer der "erste", somit der nächste ist bzw der letzte, weil nach diesem wird eingefügt.

Wenn der Arzt nun jemanden holt, dann nimmt man den ersten aus der Warteschlange weg, und der zweite rutscht an die erste Stelle. Beim letzten analog.

Es gibt mehrere Möglichkeiten das zu implementieren. Ich würde Dir dazu raten, dass Du Dir folgendes anschaust:

LinkedList (Java 2 Platform SE v1.4.2)

ArrayList (Java 2 Platform SE v1.4.2)

Du kannst natürlich auch alles zu Fuß implementieren, dann muss Dein Patient immer wissen, wer sein Nachfolger ist. Die Warteschlange muss sich dann immer den zuletzt angehängten Patienten merken und den ersten, denn dieser kennt seinen Nachfolger, der zweite ebenso usw

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Monate später...
Wir müssen in Informatik auch ein Wartezimmer programmieren. Wir kommen jedoch nicht weiter und wollten fragen ob jemand eine Musterlösung zum Vergleichen besitzt.
Ja, habe ich. Für 429,36 € bin ich bereit sie auch abzugeben.

Im ernst: Ihr sollt bei einer Übungsaufgabe etwas lernen, dafür ist sie schließlich da. Aber wo bleibt euer Lerneffekt, wenn ihr die Arbeit von jemand anders abgebt? Die Nummer von wegen "vergleichen" kauft euch eh niemand ab.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, habe ich. Für 429,36 € bin ich bereit sie auch abzugeben.

Im ernst: Ihr sollt bei einer Übungsaufgabe etwas lernen, dafür ist sie schließlich da. Aber wo bleibt euer Lerneffekt, wenn ihr die Arbeit von jemand anders abgebt? Die Nummer von wegen "vergleichen" kauft euch eh niemand ab.

Sagen wir 428,16€.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...