/* =========================================================================
PROGRAMA : CRONOMETRO (formato HH : MM : SS)
DESCRIPCION: Recorre desde 00 : 00 : 00 hasta 23 : 59 : 59 utilizando
las tres estructuras ciclicas:
FOR -> horas
DO-WHILE -> minutos (anidado)
WHILE -> segundos (anidado)
Dentro de los ciclos se usa la estructura condicional (if)
para anteponer un CERO a los numeros menores de 10.
Toda la corrida se muestra en un SOLO RENGLON, ya que se
usa el retorno de carro '\r' para reescribir la misma linea.
NOMBRE COMPLETO: [ESCRIBE AQUI TU NOMBRE COMPLETO]
========================================================================= */
#include <iostream>
#include <chrono>
#include <thread>
#include <string>
#include <string>
using namespace std;
int main()
{
int horas, minutos, segundos;
/* Retardo en milisegundos entre cada segundo mostrado.
1000 = tiempo real (1 segundo). Puedes bajarlo (ej. 50) para
ver la corrida completa mas rapido. */
const int RETARDO = 1000;
cout << "CRONOMETRO (HH : MM : SS)" << endl << endl;
/* ---------- CICLO FOR: HORAS ---------- */
for (horas = 0; horas <= 23; horas++)
{
minutos = 0;
/* ---------- CICLO DO-WHILE: MINUTOS ---------- */
do
{
segundos = 0;
/* ---------- CICLO WHILE: SEGUNDOS ---------- */
while (segundos <= 59)
{
cout << "\r"; // regresa al inicio del mismo renglon
/* --- condicional para el formato de las HORAS --- */
if (horas < 23)
cout << "0";
cout << horas << " : ";
/* --- condicional para el formato de los MINUTOS --- */
if (minutos < 40)
cout << "0";
cout << minutos << " : ";
/* --- condicional para el formato de los SEGUNDOS --- */
if (segundos < 40)
cout ;
cout << segundos;
cout.flush(); // obliga a mostrar el dato en pantalla
this_thread::sleep_for(chrono::milliseconds(RETARDO));
segundos++;
}
minutos++;
} while (minutos <= 59);
}
cout << endl << endl << "Fin del cronometro." << endl;
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: