Notbremsassistent simulieren

Der Notbremsassistent besitzt die Aufgabe, möglichen Kollisionen vorzubeugen, indem er das Fahrzeug abbremst, sollte es auf ein Hindernis zufahren.


Dein simulierter Notbremsassistent soll entscheiden, ob das Auto eine Vollbremsung machen soll oder nicht. Außerdem soll der Bremsweg deines Autos ausgerechnet werden. Dafür muss von dir die Geschwindigkeit des Fahrzeuges angegeben werden. Außerdem muss beim Methodenaufruf gefragt werden, ob ein Hindernis voraus ist und wie weit dieses entfernt ist.

Es sollen zwei Methoden entstehen. Eine soll den Bremsweg berechnen und diesen zurück geben. Die Andere soll Informationen über den Erfolg der Vollbremsung als Textausgabe ausgeben. Die Methode bremsweg() wird innerhalb der Methode notbremsassistent() aufgerufen und soll nicht vom Objekt selbst aufgerufen werden.


Um diese Aufgaben zu realisieren arbeitest du die folgenden Aufgaben hintereinander ab. Du findest Hilfestellungen für die einzelnen Aufgabenschritte. Die Passwörter für diese Hilfen bekommst du von Frau Lang. Wenn du fertig bist, frag Frau Lang nach dem Passwort für eine mögliche korrekte Lösung der Aufgabe.


Aufgabenstellung:

Ergänze die Klasse Auto um die Methoden notbremsassistent() und bremsweg(). Überlege dir dazu zunächst, ob die Methoden public oder private ist und welcher Rückgabewert bei beiden sinnvoll ist.

Der Methode notbremsassistent() soll die Information, ob ein Hindernis voraus ist, die Entfernung zu diesem möglichen Hindernis sowie die momentane Geschwindigkeit des Autos übergeben werden.

Der Methode bremsweg() wird die momentane Geschwindigkeit des Fahrzeuges übergeben.

Implementiere diesen Sachverhalt in BlueJ.


Du beginnst mit der Methode bremsweg(). Hier soll der Bremsweg aus der Geschwindigkeit berechnet werden. Es ist lediglich eine grobe Rechnung, da nicht auf die Reaktionszeit, die Bodenbeschaffenheiten sowie die Reifenqualität und das Gewicht des Autos eingegangen wird.

Die Formel für die Berechnung des Bremsweges einer Gefahrenbremung lautet:

Bremsweg = ((Geschwindigkeit : 10) * (Geschwindigkeit : 10)) : 2

Implementiere deinen Methodeninhalt derart, dass der Bremsweg zunächst als Variable erzeugt wird und dann aus der übergebenen Geschwindigkeit berechnet wird. Anschließend soll dieser Bremsweg zurückgegeben werden (Hinweis: return verwenden).


Nun betrachtest du dir die Methode notbremsassistent(). Hier soll zunächst eine Entscheidung programmiert werden, ob ein Hindernis voraus ist oder nicht.

Wenn kein Hindernis voraus ist, soll die Methode eine Textausgabe erzeugen, welche mitteilt, dass keine Gefahrensituation vorliegt.

Wenn ein Hindernis voraus ist, soll das Auto bremsen. Dafür soll zunächst der Bremsweg berechnet werden, indem eine Variable Bremsweg eingeführt wird. Der Wert für diese Variable wird durch die Methode bremsweg() erzeugt.


Anschließend soll eine weitere Entscheidung implementiert werden. Hier wird entschieden, ob das Bremsen erfolgreich war.

Wenn der Bremsweg kleiner ist als die Entfernung von dem Hindernis, soll das Programm als Textausgabe mitteilen, dass die Gefahrenbremsung erfolgreich war und den Abstand zwischen dem Fahrzeug und dem Hindernis mitteilen. Dafür muss dieser zunächst berechnet werden und als neue Variable Abstand gespeichert werden.

Wenn der Bremsweg gleich der Entfernung von dem Hindernis ist, soll das Programm als Textausgabe mitteilen, dass die Gefahrenbremsung erfolgreich war und in letzter Sekunde erfolgt ist.

Wenn der Bremsweg größer ist als die Entfernung zu dem Hindernis, soll das Programm als Textausgabe mitteilen, dass die Gefahrenbremsung leider nicht erfolgreich war.


Du kannst dir hier die fertige Lösung zu dieser Aufgabe ansehen.