Application Kata “Fahrplanauskunft”

Entwickle eine Anwendung zur Fahrplanauskunft.

Der Anwender gibt Start- und Zielhaltestelle sowie einen Abfahrtstermin ein. Die Anwendung findet daraufhin Verbindungen, die sie in absteigender Qualität listet. In die Qualität gehen Reisedauer, Nähe zum Abfahrttermin und die Anzahl der Umstiege ein.

Die Auskunft wird aufgrund einer Reihe von Fahrplänen für unterschiedliche Linien gegeben. Jede Linie hat einen Namen und erstreckt sich über mehrere Haltestellen. Zu jeder Haltestelle gibt es viele Abfahrtszeiten über den Tag verteilt und eine Fahrtdauer bis zur nächsten Haltestelle, z.B.

Linie U1 Nord
Jungfernstieg	8:00	8:05	8:10	8:20 ...
Stephansplatz	8:04	8:09	8:14	8:24 ...
Hallerstraße	8:09	8:14	8:19	8:29 ...
Jungfernstieg-Stephansplatz: 2 Minuten
Stephansplatz-Hallerstraße: 3 Minuten

Haltestellen werden in beide Richtungen abgefahren (z.B. Jungfernstieg -> Hallerstraße und Hallerstraße -> Jungfernstieg). Es gibt Fahrpläne für beide Richtungen – doch die Linien sind unterschiedlich (z.B. U1 Nord und U1 Süd).

Verbindungen bestehen aus Haltestellen, bei denen eingestiegen, umgestiegen und ausgestiegen wird, sowie Angaben zu den Linien und wesentlichen Zeiten.

Variation #1

Alternativ zur Abfahrtszeit kann eine gewünschte Ankunftszeit angegeben werden.

Variation #2

Der Anwender kann Nebenbedingungen definieren, z.B. eine minimale Umsteigezeit, dass weniger Umstiege höher zu bewerten sind als geringere Reisedauer oder dass ein Verkehrsmittel zu bevorzugen ist (z.B. lieber U-Bahn als Bus).

Variation #3

Aus der Verbindungsübersicht kann der Anwender in den Fahrplan einer Linie wechseln, um alternative Abfahrtszeiten ab einer Verbindungshaltestelle zu sehen.

de_DEGerman