Programmierprojekt: Teil 3!

Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: Programmierprojekt: Teil 3!

Beitrag von Owyn »

Darkwing Duck hat geschrieben:4.unbesuchte Knoten und benachbarte Knoten sind beide als gefüllt zu betrachten?
Das sollte für die Implementierung egal sein - bei getNextEdges benutzen Sie natürlich die Menge der unbesuchten Knoten, aber Ihre Methode sollte unabhängig davon funktionieren, ob diese auch Elemente enthält.

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: Programmierprojekt: Teil 3!

Beitrag von Owyn »

m_infonator hat geschrieben:nachdem ich mich jetzt durch den 3. Teil des Projekts gewurschtelt habe, denke ich nurnoch in Collections. Da ich aber nicht weiß, ob meine Ergebnisse auch richtig sind, wäre eine Testklasse doch ein schönes Bonbon an uns Studenten :lol:
Leider ist das Projekt ein Teil der Prüfung, und außerdem gehört zur Softwareentwicklung sowieso auch das Testen.
Sie werden sich also tatsächlich selbst eine Testklasse schreiben müssen.

Zeichnen Sie sich einen Graphen auf Papier und übertragen Sie diesen dann in Ihre Klasse, erstellen Sie also den Graphen und fügen Sie alle Knoten und Kanten hinzu. Für viele der Methoden ist es auch sinnvoll, wenn Sie die verschiedenen Objektvariablen (entfernung etc.) noch mit Werten füllen.

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

Benutzeravatar
Darkwing Duck
Erstie
Erstie
Beiträge: 11
Registriert: 25. Mai 2009 16:20

Re: Programmierprojekt: Teil 3!

Beitrag von Darkwing Duck »

kurze Frage: Klasse SearchEdge Methode getOtherNode...

Soll man einen Knoten übergeben getOtherNode(Node xy) oder einen SearchNode getOtherNode(SearchNode xy) ?

Mobbi
Neuling
Neuling
Beiträge: 9
Registriert: 13. Mai 2009 16:07

Re: Programmierprojekt: Teil 3!

Beitrag von Mobbi »

Die Klasse Graph stellt dafür zwei "add"-Methoden bereit. Schauen Sie sich den Code oder das JavaDoc der Klasse mal an.
Genau das verstehe ich auch nicht so recht.
Will ich Node-Objekte einfügen bekomme ich die Meldung addNode(Node) in Graph cannot be applied to (java.lang.Object).
Wenn ich ein Node einfach adden will wie bisher, sagt er NullPointerException: null

Was soll das T in addNode in der Klasse Graph denn für ein Typ sein? Ich finde das nicht.

BTW hat sich da ein copy 'n paste fehler eingeschlichen: im Kommentar zu addNode steht @param kante die hinzugefügt werden soll.

a_nickol
Mausschubser
Mausschubser
Beiträge: 100
Registriert: 27. Okt 2005 10:33
Kontaktdaten:

Re: Programmierprojekt: Teil 3!

Beitrag von a_nickol »

Mobbi hat geschrieben: Wenn ich ein Node einfach adden will wie bisher, sagt er NullPointerException: null
wie hast du sie denn bisher hinzugefügt?

Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: Programmierprojekt: Teil 3!

Beitrag von Owyn »

Darkwing Duck hat geschrieben:kurze Frage: Klasse SearchEdge Methode getOtherNode...
Soll man einen Knoten übergeben getOtherNode(Node xy) oder einen SearchNode getOtherNode(SearchNode xy) ?
Zitat Aufgabenstellung: "Bei der Implementierung der Klasse SearchEdge können Sie davon ausgehen, dass von dieser Kante nur Knoten vom Typ SearchNode verbunden werden!"
Mobbi hat geschrieben:Was soll das T in addNode in der Klasse Graph denn für ein Typ sein? Ich finde das nicht.
Zitat Aufgabenstellung, Aufgabe 3: "eine vom Typ Graph<SearchNode, SearchEdge>"
Mobbi hat geschrieben:BTW hat sich da ein copy 'n paste fehler eingeschlichen: im Kommentar zu addNode steht @param kante die hinzugefügt werden soll.
Ok, danke. Ist aber nicht so gravierend, dass ich direkt eine neue Version hochladen würde. In der Musterlösung ist es dann aber korrigiert.

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

Daniel S.
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 25. Sep 2007 12:28
Wohnort: Mörfelden

Re: Programmierprojekt: Teil 3!

Beitrag von Daniel S. »

Mobbi hat geschrieben:
Die Klasse Graph stellt dafür zwei "add"-Methoden bereit. Schauen Sie sich den Code oder das JavaDoc der Klasse mal an.
Genau das verstehe ich auch nicht so recht.
Will ich Node-Objekte einfügen bekomme ich die Meldung addNode(Node) in Graph cannot be applied to (java.lang.Object).
Ist Ihr Graph-Objekt vom Typ Graph<SearchNode, SearchEdge>?
Was soll das T in addNode in der Klasse Graph denn für ein Typ sein? Ich finde das nicht.
Das ist ein Klassenparameter. Wenn Sie eine Instanz der Klasse Graph erzeugen, müssen Sie ja in den Spitzen Klammern zwei Typen angeben, in der ersten Zeile der Klassendefinition (public class Graph<T extends Node, S extends Edge>) wird festgelegt, dass der erste Typ den Sie angeben, innerhalb der Klasse als T bezeichnet und der zweite Typ durch S repräsentiert wird.
Mit freundlichen Grüßen
Daniel

Mobbi
Neuling
Neuling
Beiträge: 9
Registriert: 13. Mai 2009 16:07

Re: Programmierprojekt: Teil 3!

Beitrag von Mobbi »

Ja, danke.

Die HashSets in Routenplaner haben ja keine set-Methoden, oder? Sollen die dann public sein, damit man sie befüllen kann?

Benutzeravatar
Darkwing Duck
Erstie
Erstie
Beiträge: 11
Registriert: 25. Mai 2009 16:20

Re: Programmierprojekt: Teil 3!

Beitrag von Darkwing Duck »

Ich seh schon ,da hat jemand ähnliche Fragen wie ich.

ich würde auch gerne wissen ,ob man für die HashSets unbesuchteKnoten und benachbarteKnoten get und set Methoden erstellen soll.
Oder werden diese nur intern verwendet?

MfG Darkwing Duck!

2..1 Risiko! :mrgreen:

a_nickol
Mausschubser
Mausschubser
Beiträge: 100
Registriert: 27. Okt 2005 10:33
Kontaktdaten:

Re: Programmierprojekt: Teil 3!

Beitrag von a_nickol »

beide mengen werden nur intern verwendet, also keine get und set methoden. des weiteren sollten sie private sein.
wurde aber auch schon in diesem thread mehrfach beantwortet...

Sonnenbrille
Neuling
Neuling
Beiträge: 5
Registriert: 25. Jun 2009 22:35

Re: Programmierprojekt: Teil 3!

Beitrag von Sonnenbrille »

Hi, ich hab NOCH eine Frage zur Methode "getMinimalNode" in Aufgabe 3.

Es wird ja im Parameter etwas vom Typ "Set<SearchNode>" eingegeben.
Wenn ich jetzt die "entfernung" von SearchNode haben will, muss die Klasse Routenplaner doch eigentlich von SearchNode erben, weil sie ja auch auf die get-Methode zugreifen muss.
Kann das sein? Habe sonst keine Erklärung wie ich die entfernung aus aufgabe 1 herbekomme.

... dann bräuchte aber auch der Konstruktor eine andere zusätzliche Namenseingabe "label".
Widerspruch in der Aufgabenstellung:"Start- und Zielknoten werden aber erst später gesetzt" ...


Deswegen kommt mir meine Denkweise falsch vor. Aber gibts vielleicht einen Hinweis?

WirsIng
Erstie
Erstie
Beiträge: 21
Registriert: 23. Apr 2009 10:18

Re: Programmierprojekt: Teil 3!

Beitrag von WirsIng »

Sonnenbrille, nicht Routenplaner muss bei getMinimalNode getEntfernung kennen, sondern die Set<SearchNode> - diese Menge besteht aus SearchNodes - und die kennen ja jeweils getEntfernung ...

QandAI
Neuling
Neuling
Beiträge: 6
Registriert: 19. Mai 2009 20:36

Re: Programmierprojekt: Teil 3!

Beitrag von QandAI »

Hi,

ich wollte wissen, ob man für den dritten Programmierteil die Lösungen vom Zweiten braucht, also die AdjacencyMatrix???

Mit freundlichen Grüßen
Q

Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: Programmierprojekt: Teil 3!

Beitrag von Owyn »

QandAI hat geschrieben:ich wollte wissen, ob man für den dritten Programmierteil die Lösungen vom Zweiten braucht, also die AdjacencyMatrix???
Nein, braucht man nicht. Die Klasse AdjacencyMatrix dient dazu, einen Graph einfacher erstellen zu können. Geplant war ursprünglich auch, eine Adjazenzmatrix und die Knotennamen aus einer Textdatei einlesen zu können, aber das wurde zu viel für die vier Teile.

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

Sonnenbrille
Neuling
Neuling
Beiträge: 5
Registriert: 25. Jun 2009 22:35

Re: Programmierprojekt: Teil 3!

Beitrag von Sonnenbrille »

WirsIng hat geschrieben:Sonnenbrille, nicht Routenplaner muss bei getMinimalNode getEntfernung kennen, sondern die Set<SearchNode> - diese Menge besteht aus SearchNodes - und die kennen ja jeweils getEntfernung ...
aaah, danke Wirsing :D ... ich dacht schon, ich bekomm die 2 Punkte nicht

Antworten

Zurück zu „Archiv“