w00tanfall Geschrieben 22. September 2009 Teilen Geschrieben 22. September 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 22. September 2009 Teilen Geschrieben 22. September 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
elSusto Geschrieben 24. September 2009 Teilen Geschrieben 24. September 2009 private Queue<Object> warteschlange = new LinkedList<Object>(); so hast du auch ne fertige Warteschlange Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
YanOm Geschrieben 17. Dezember 2009 Teilen Geschrieben 17. Dezember 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 18. Dezember 2009 Teilen Geschrieben 18. Dezember 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
YanOm Geschrieben 19. Dezember 2009 Teilen Geschrieben 19. Dezember 2009 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€. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.