edutecnica

Esercizio 6       

Scrivere una classe C (cronometro) che svolga operazioni di cronometraggio del tempo. Deve essere dotata di metodi start(), stop(), per far partire e fermare il cronometro. Deve poi, esserci una classe print() per stampare l'intervallo di tempo misurato .



#include<iostream>
#include<time.h>

using namespace std;
class C{
     int ti,tf;
public :
     void start();
     void stop();
     int print();
} ; //_________implemetazione metodi
void C::start(){
     ti=time(0) ;
     tf = 0 ;
}
void C::stop(){
     tf=time(0) ;
}
int C::print(){
     if (tf==0) return time(0)-ti ;
     else return tf-ti ;
}
main(){
char ch;
C p;
cout << "i] start\n";
cout << "f] stop\n";
cout << "p] print\n";
cout << "x] exit\n";
do {
cout << "opzione:";cin >> ch ;
ch=tolower(ch);
switch(ch) {
case 'i':p.start();cout << "orologio partito\n";break ;
case 'f':p.stop();cout << "orologio fermato\n";break ;
case 'p':cout << "tempo misurato:" << p.print()
<< endl;break ;
case 'x':break;
default:cout << "opzione non valida\n" ; }
}while(ch!='x');
}//__________fine main

Ci sono le due variabili
ti=tempo iniziale
tf=tempo finale
che vengono registrate tramite la funzione time(0) che fornisce l'ora attuale, Abbiamo sfruttato la possibilità che la differenza tf-ti viene espressa in secondi.