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 in die Informatik
- C++ Programmieraufgaben
- C++ Programmieraufgabe: Auswertung einer Fahrradtour
- C++ Programmieraufgaben
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:
- Messdaten sind reine Zahlen; um welche Einheiten es sich handelt muss separat definiert werden.
- Für die Angabe von Zahlen steht immer nur eine begrenzte Anzahl von Stellen zur Verfügung; auch hier muss man Konventionen festlegen, welche Messgröße mit welcher Genauigkeit angegeben wird.
- Man muss sich immer überlegen, welche Messdaten nur (kurzzeitig) angezeigt werden und nicht abgespeichert werden und welche Messdaten persistent gemacht werden müssen.
- Dazu muss man einen geeigneten Speicher und eine Schnittstelle vom Programm zum Speicher realisieren.
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:
- Nach jeder Minute wird die aktuelle Herzfrequenz gemessen (in Anzahl / min)
- 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.
- An den vordersten zwei Stellen werden die Stunden angegeben: 00, 01,.., 23. (Um Mitternacht springt die Anzeige auf
- 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
- Realisieren Sie eine Speicherung der Messdaten, so dass sie auch nach Beendigung des Programmes noch abrufbar sind.
- 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.
- Überlegen Sie sich, welche Daten sofort ausgewertet werden können und welche Informationen dem Nutzer schon während der Tour angezeigt werden können.
- Welche Daten lassen sich erst sinnvoll nach der Tour auswerten?
- Wie werden Ruhezeiten verarbeitet?
- Schreiben Sie ein Programm, das dem Nutzer möglichst viele aussagekräftige Informationen über seine Tour liefert (während und nach der Tour).
- Versuchen Sie — für die Teile der Auswertung, bei denen dies sinnvoll ist, — eine aussagekräftige graphische Ausgabe zu realisieren.