zurück

C++

G.Eichelsdörfer - Staatliche Technikerschule Weilburg

Zusatzübungen zu Wiederholungen (3)

zü.4 Telefon-Gebührenzähler

Projekt: gebuehrenzaehler bzw. gebuehrenzaehler_f

Es soll ein einfacher Telefon-Gebührenzähler implementiert werden, der auf Grund der Telefonierdauer die Telefonkosten des Gesprächs berechnen und ausgeben soll. Der Gebührenzähler ist zu starten und zu beenden. Die Dauer des Gesprächs ist die Zeit zwischen dem Start und dem Beenden und soll vom Computer erfasst werden. Nach dem Starten sollen die verstrichenen Sekunden (untereinander) angezeigt werden.

Zur Erfassung der Gesprächszeit kann die Funktion Sleep() eingesetzt werden. Diese Funktion lässt die Ausführung des Programms für eine gewisse Zeit ruhen. In dieser Zeit wird der Prozessor dem Programm nicht zugeteilt. Das Programm schläft in dieser Zeit.

Sleep() importiert einen int-Parameter, der die Dauer des "Schlafens" in Millisekunden angibt. Der Resultatstyp ist void. Diese Funktion wird dem Compiler durch einbeziehen der Datei windows.h bekannt gegeben.

Erstellen Sie das Programm mit folgenden Verhaltensweisen bzw. Eigenschaften!

Hinweis:

Bereits halbwegs Moderne PCs sind so schnell, dass die Ausführung der Anweisungen zwischen dem sekundenweisen "Schlafen" praktisch nicht in's Gewicht fällt. Die Ungenauigkeit beim Drücken der Beginn- und Endetaste dürften höher sein als die durch zusätzliche Befehlsausführungszeiten, zumindest, solange wir von tagelangem Telefonieren absehen ;-). Wer es am Ende möglichst genau haben will, verwendet die Funktion time().

Für die Funktion time() muss die Datei ctime oder time.h einbezogen werden. Diese Funktion liefert die Anzahl an Sekunden, die seit dem 1. Januar 1970, 00:00 Uhr vergangen sind. Diese Anzahl können Sie in einer Variablen vom Typ unsigned long ablegen. Wenn Sie die Zeiten zu Beginn und am Ende des Gesprächs erfassen, ergibt deren Differenz die Gesprächsdauer in Sekunden. Weil die Funktion einen so genannten Zeiger erwartet, den Sie nicht benötigen, rufen Sie time() am Besten per time(NULL) auf. NULL ist der so genannte Nullzeiger, der, einfach ausgedrückt, auf nichts zeigt.

Lösungsteile dieser Übung