C++ Programmieraufgabe: Auswertung einer Fahrradtour

Die Programmieraufgabe behandelt ein typisches Problem der Datenverarbeitung: Messdaten werden laufend aufgenommen und sollen geeignet ausgewertet werden. Sie können: Erstens direkt angezeigt werden, zweitens sofort in andere relevante Daten umgerechnet und angezeigt werden oder drittens abgespeichert und erst in ihrer Gesamtheit ausgewertet werden. Diese Aufgaben sollen anhand der zu simulierenden Daten, die während einer Fahrradtour anfallen können, eingeübt werden.

Einordnung des Artikels

Einführung

Das hier vorgeschlagene Programm soll die Aufnahme von Messdaten, ihre Speicherung und Auswertung simulieren. Als Beispiel hierfür werden die typischen Messdaten verwendet, wie sie bei einer Radtour von einem Tachometer mit Höhenmesser und einem Pulsmesser geliefert werden.

Dabei werden einige typische Probleme aufgezeigt, die mit der Aufnahme und Verarbeitung von Messdaten verbunden sind:

Die Messdaten

Damit man aus den späteren Zeitmessungen Entfernungen und damit Geschwindigkeiten berechnen kann, muss vor der Tour der Umfang des Reifens, an dem sich die Messsonde befindet, eingegeben werden (der Umfang wird in mm angegeben — mit drei gültigen Stellen, aber ohne Nachkommastellen).

Zu Beginn und am Ende der Tour wird der Nutzer aufgefordert, die neue Tour zu starten beziehungsweise zu beenden. Der Bezugspunkt für den Höhenmesser ist die Höhe am Ausgangspunkt, die willkürlich mit 0 festgelegt wird.

Während der Tour werden folgende Daten aufgenommen:

  1. Nach jeder Minute wird die aktuelle Herzfrequenz gemessen (in Anzahl / min)
  2. Nach jeder Umdrehung des Reifens wird die aktuelle Uhrzeit gemessen. Sie wird im Format hh:mm:ss.ss angegeben, was bedeuten soll:
    • An den vordersten zwei Stellen werden die Stunden angegeben: 00, 01,.., 23. (Um Mitternacht springt die Anzeige auf 00:00:00.00 und es wird kein Datum angezeigt.)
    • An den nächsten zwei Stellen die Minuten: 00, 01,..., 59.
    • An den letzten vier Stellen die Sekunden, wobei zwei davon Nachkommastellen (Zehntel- und Hundertstel-Sekunden) sind: 00.00, ..., 59.99.
  3. Ebenso wird nach jeder Umdrehung des Reifens die Höhe bezogen auf den Start der Tour gemessen. Die Höhe wird in Metern angegeben (vier Stellen plus zwei Nachkommastellen).

Am Ende der Tour wird der Nutzer aufgefordert, den Höhenmesser zu überprüfen (kehrt man zum Startpunkt zurück, sollte er bei 0000.00 stehen; da die Höhenmessung über den Luftdruck erfolgt, wird sich eine Abweichung einstellen) sowie den Umfang des Reifens zu überprüfen (siehe unten).

Alle Messdaten können im Prinzip sofort angezeigt werden, sie werden aber auch für eine nachträgliche Auswertung gespeichert.

Die Aufgaben

  1. Realisieren Sie eine Speicherung der Messdaten, so dass sie auch nach Beendigung des Programmes noch abrufbar sind.
  2. Erzeugen Sie geeignete geeignete Testdaten, mit denen Sie eine Tour simulieren können. Dazu kann man etwa verschiedene Streckenabschnitte simulieren (Flach-Etappe, langer Anstieg, lange Abfahrt, Hügellandschaft, Stop and Go, Pause) und diese zu einer kompletten Tour zusammensetzen.
  3. Überlegen Sie sich, welche Daten sofort ausgewertet werden können und welche Informationen dem Nutzer schon während der Tour angezeigt werden können.
  4. Welche Daten lassen sich erst sinnvoll nach der Tour auswerten?
  5. Wie werden Ruhezeiten verarbeitet?
  6. Schreiben Sie ein Programm, das dem Nutzer möglichst viele aussagekräftige Informationen über seine Tour liefert (während und nach der Tour).
  7. Versuchen Sie — für die Teile der Auswertung, bei denen dies sinnvoll ist, — eine aussagekräftige graphische Ausgabe zu realisieren.