Hallo liebe Leute! Ich habe dieses Semester mit dem Informatik Studium begonnen und schaue schon seit einiger Zeit ins Forum, hab mich aber bisher noch nicht registriert. Heute soll sich dieses ändern! Jetzt stehe ich vor einer Aufgabe und weiß nicht wie ich die angehen soll. Erstmal der Originaltext aus der Aufgabenstellung im Spoiler, darunter gebe ich dann mal meinen "Lösungsansatz" an. Ich habe ein Problem diese Übungsaufgabe umzusetzen.
Ich möchte natürlich kein fertiges Programm von euch
Ich möchte aber wissen, was getan werden muss, denn ehrlich gesagt hab ich keine Ahnung wo ich anfangen soll und was der Dozent von mir will.
Die UML dazu habe ich mir angeschaut und auch verstanden, das hilft mir leider nicht weiter. Wie ich es interpretiere: Ich muss in der main ein train Objekt erzeugen. Dieses Objekt muss dann ein Locomotive Objekt beinhalten und beliebig viele Car Objekte.
Meine Fragen dazu:
- Wie sorge ich dafür, dass das Train Objekt auch tatsächlich diese Objekte beinhaltet?
- Was soll das Datenelement "next" vom Typ car?
- Wie kann ich unendlich viele weitere Car Objekte erzeugen? Und wie kann ich die dann bei "add" in eine Reihenfolge einsortieren?
Ich hab keinen Plan und brauch Hilfe :/
Ich möchte natürlich kein fertiges Programm von euch
Schreiben Sie einige Klassen die einen Zug repräsentieren. Definieren Sie die Klassen Locomotive und Car und verwenden Sie folgende Datenelemente:
Klasse Locomotive: length, type
Klasse Car: length, max_passengers
Ordnen Sie diesen sinnvolle Methoden zu. Bitte beachten Sie, dass die oben genannten Datenelemente nicht verändert werden dürfen. Die Aufgabe ist Züge mit Hilfe dieser Klassen zu erzeugen. Die Lokomotive ist direkt mit dem ersten Waggon verbunden. Deshalb definieren Sie bitte ein Datenelement next vom Typ Car innerhalb der Klasse Locomotive. Definieren Sie außerdem geeignete Schreib- und Lesemethoden (get... bzw. set...). Jeder Waggon ist an den nächsten Waggon des Zuges angekuppelt, außer es handelt sich um den letzten Waggon. In der Klasse Car, definieren Sie deshalb bitte ein Datenelement next desselben Datentyps, ebenso wie geeignete Schreib- und Lesemethoden. Dieses Datenelement speichert ein anderes Objekt derselben Klasse, oder kein Objekt (null), falls es sich um den letzten Waggon handelt.
Als drittes, definieren Sie bitte eine Klasse Train die einen vollständigen Zug repräsentiert, der aus genau einer Lokomotive und einer beliebigen Anzahl Waggons besteht. Die Klasse Train
hat folgende Methoden (Parameter und Ergebnistypen legen Sie bitte selbst fest):
Konstruktor
• Der Train Konstruktor erwartet eine Lokomotive. Er erzeugt einen neuen, sehr kurzen Zug: Nur die Lokomotive ohne Waggons.
add( ... )
• Fügt einen gegebenen Waggon an einer beliebigen Stelle im Zug ein.
print( ... )
• Druckt alle Informationen über den Zug aus.
getLength( ... )
• Liefert die Gesamtlänge des Zuges (Länge der Lokom otive plus die Länge alle Waggons)
getPassengers( ... )
• Liefert die mögliche Anzahl an Passagieren des Zuges zurück.
removeFirst( ... )
• Entfernt den ersten Waggon aus dem Zug. Liefert null zurück falls der Zug keinen Waggon besitzt.
relink( ... )
• Kuppelt einen weiteren Zug an den bestehenden an. Dabei werden alle Waggons des anderen Zuges an den bestehenden angehängt. Nur die Lokomotive verbleibt im anderen Zug.
revert( ... )
• Kehrt die Reihenfolge der Waggons im Zug um. (Die Position der Lokomotive darf nicht verändert werden.
Schreiben Sie zum Abschluss ein Hauptprogramm, das alle Methoden der Klasse Train testet.
Ihre Lösung sollte aus insgesamt vier Klassen bestehen
Locomotive, Car, Train und RailroadMain (Hauptprogram). Die Klassendefinitionen leiten Sie bitte aus folgendem UML Diagramm ab: imgur: the simple image sharer
Informieren Sie sich vorab, was die einzelnen Symbole im UML Diagramm bedeuten
Klasse Locomotive: length, type
Klasse Car: length, max_passengers
Ordnen Sie diesen sinnvolle Methoden zu. Bitte beachten Sie, dass die oben genannten Datenelemente nicht verändert werden dürfen. Die Aufgabe ist Züge mit Hilfe dieser Klassen zu erzeugen. Die Lokomotive ist direkt mit dem ersten Waggon verbunden. Deshalb definieren Sie bitte ein Datenelement next vom Typ Car innerhalb der Klasse Locomotive. Definieren Sie außerdem geeignete Schreib- und Lesemethoden (get... bzw. set...). Jeder Waggon ist an den nächsten Waggon des Zuges angekuppelt, außer es handelt sich um den letzten Waggon. In der Klasse Car, definieren Sie deshalb bitte ein Datenelement next desselben Datentyps, ebenso wie geeignete Schreib- und Lesemethoden. Dieses Datenelement speichert ein anderes Objekt derselben Klasse, oder kein Objekt (null), falls es sich um den letzten Waggon handelt.
Als drittes, definieren Sie bitte eine Klasse Train die einen vollständigen Zug repräsentiert, der aus genau einer Lokomotive und einer beliebigen Anzahl Waggons besteht. Die Klasse Train
hat folgende Methoden (Parameter und Ergebnistypen legen Sie bitte selbst fest):
Konstruktor
• Der Train Konstruktor erwartet eine Lokomotive. Er erzeugt einen neuen, sehr kurzen Zug: Nur die Lokomotive ohne Waggons.
add( ... )
• Fügt einen gegebenen Waggon an einer beliebigen Stelle im Zug ein.
print( ... )
• Druckt alle Informationen über den Zug aus.
getLength( ... )
• Liefert die Gesamtlänge des Zuges (Länge der Lokom otive plus die Länge alle Waggons)
getPassengers( ... )
• Liefert die mögliche Anzahl an Passagieren des Zuges zurück.
removeFirst( ... )
• Entfernt den ersten Waggon aus dem Zug. Liefert null zurück falls der Zug keinen Waggon besitzt.
relink( ... )
• Kuppelt einen weiteren Zug an den bestehenden an. Dabei werden alle Waggons des anderen Zuges an den bestehenden angehängt. Nur die Lokomotive verbleibt im anderen Zug.
revert( ... )
• Kehrt die Reihenfolge der Waggons im Zug um. (Die Position der Lokomotive darf nicht verändert werden.
Schreiben Sie zum Abschluss ein Hauptprogramm, das alle Methoden der Klasse Train testet.
Ihre Lösung sollte aus insgesamt vier Klassen bestehen
Locomotive, Car, Train und RailroadMain (Hauptprogram). Die Klassendefinitionen leiten Sie bitte aus folgendem UML Diagramm ab: imgur: the simple image sharer
Informieren Sie sich vorab, was die einzelnen Symbole im UML Diagramm bedeuten
Die UML dazu habe ich mir angeschaut und auch verstanden, das hilft mir leider nicht weiter. Wie ich es interpretiere: Ich muss in der main ein train Objekt erzeugen. Dieses Objekt muss dann ein Locomotive Objekt beinhalten und beliebig viele Car Objekte.
Meine Fragen dazu:
- Wie sorge ich dafür, dass das Train Objekt auch tatsächlich diese Objekte beinhaltet?
- Was soll das Datenelement "next" vom Typ car?
- Wie kann ich unendlich viele weitere Car Objekte erzeugen? Und wie kann ich die dann bei "add" in eine Reihenfolge einsortieren?
Ich hab keinen Plan und brauch Hilfe :/