C++ :: Aufgabe #49 :: Lösung #1

1 Lösung Lösung öffentlich
#49

Stoppuhr mit Rundenzeiten

Anfänger - C++ von Dome - 10.03.2013 um 23:36 Uhr
Erstellen Sie ein Programm, womit man die Zeit stoppen kann. Die Stoppuhr sollte mit einer beliebigen Taste anfangen die Zeit zu starten und danach mit einer beliebigen Taste eine weitere Runde einzuleiten. Die Stoppuhr sollte mit dem Druck auf ESC beendet werden.
#1
vote_ok
von mraimbot (590 Punkte) - 22.08.2019 um 11:34 Uhr

Konsolenausgabe:

Stoppuhr
[ESC] Anwendung beenden bzw. Stoppuhr anhalten
[Beliebige Taste] Stoppuhr bzw. neue Runde starten
Stoppuhr gestartet ...
Rundenzeit: 2.75653s
Rundenzeit: 3.40809s
Rundenzeit: 0.255874s
Rundenzeit: 0.744664s
Stoppuhr angehalten
Gesamtzeit: 7.16516s


Quellcode ausblenden C-Code
///////////////////////////////////////////////////////////////
/// Titel: Stoppuhr mit Rundenzeiten
/// Beschreibung: https://trainyourprogrammer.de - C++ - #49
/// Programmierer: Sebastian Schröder
/// Datum: 22.08.2019
///////////////////////////////////////////////////////////////


#include <conio.h> // _getch()
#include <chrono>
#include <iostream>


enum Keys { ESC = 27 };


static int user_input;


void timer(void);


int main(void) {
	std::cout << "Stoppuhr\n"
			  << "[ESC]             Anwendung beenden bzw. Stoppuhr anhalten\n"
			  << "[Beliebige Taste] Stoppuhr bzw. neue Runde starten" << std::endl;

	user_input = _getch();
		
	while (user_input != Keys::ESC) {
		timer();
		user_input = _getch();
	}
}


void timer(void) {
	std::chrono::time_point<std::chrono::system_clock> start;
	std::chrono::time_point<std::chrono::system_clock> end;
	std::chrono::duration<double> elapsed_seconds;
	double total_time = 0.0;

	std::cout << "Stoppuhr gestartet ..." << std::endl;
	start = std::chrono::system_clock::now();

	do {
		user_input = _getch();

		end = std::chrono::system_clock::now();
		elapsed_seconds = end - start;
		start = end;

		std::cout << "Rundenzeit: " << elapsed_seconds.count() << 's' << std::endl;
		total_time += elapsed_seconds.count();
	} while (user_input != Keys::ESC);
	
	std::cout << "Stoppuhr angehalten\n"
			  << "Gesamtzeit: " << total_time << "s\n" << std::endl;
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2099164

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.