Come scrivere un programma C ++ simulare un orologio digitale

March 29

La libreria standard C ++ include una serie di funzioni e strutture per aiutare i programmatori a che fare con il tempo nelle loro applicazioni. In questa esercitazione verrà creata una classe C ++ chiamato Clock che servirà come un semplice wrapper per le strutture time_t e TM utilizzati da biblioteca tempo di C, e includono un programma di esempio semplice che utilizzare questa classe Clock per emettere l'ora di sistema per la console .

istruzione

1 Crea i tuoi file. Questo programma richiederà tre file: un file di intestazione clock.h per definire la classe Clock, un file clock.cpp C ++ fonte per definire l'implementazione della classe Clock, e, infine, un semplice programma di esempio utilizzando questa classe in main.cpp.

2 Definire la classe Clock. Aprire il file di intestazione clock.h e definire la struttura della classe Clock inserendo il seguente codice in esso.

ifndef _CLOCK_Hdefine _CLOCK_H

class Clock {
pubblico:

int getHours()

ANDARE

int getMinutes()

ANDARE

int getSeconds()

ANDARE

std::string getTime()

ANDARE

Orologio()
ANDARE
privato:
}
ANDARE

endif /

_CLOCK_H /

La classe è stata definita come avente quattro funzioni principali (oltre il costruttore Clock ()). Le funzioni getHours, getMinutes e getSeconds saranno ogni recuperare una parte diversa del tempo dalla libreria tempo standard C ++, utilizzando l'ora di sistema corrente come la sua guida. La funzione getTime () formatta questi in uno standard HH: stringa di SS, come si è abituati a vedere su orologi digitali: MM.

Il ifndef, definire e tag endif sono opzionali; tuttavia, si tratta di una buona pratica per entrare con questi. Quando si costruisce progetti di grandi dimensioni, tra questi tag farà in modo che un determinato file di intestazione viene caricato in memoria una sola volta. Questo riduce il rischio di errori di dipendenza circolare, e facendo l'abitudine di loro tra cui sempre nuovi file di intestazione ora vi farà risparmiare molti mal di testa più avanti lungo la strada.

3 Implementare la classe Clock. Aprire il file clock.cpp, e mettere in atto tutte le funzioni che avete definito nel file di intestazione immettendo il seguente: includere <time.h> includono <sstream> include \ "clock.h \"

Orologio :: Clock () {
}

int Clock :: getHours () {

time_t seconds = time(NULL)

ANDARE

struct tm *timeinfo = localtime(&amp;seconds)

ANDARE

return timeinfo->tm_hour

ANDARE
}

int Clock :: getMinutes () {

time_t seconds = time(NULL)

ANDARE

struct tm *timeinfo = localtime(&amp;seconds)

ANDARE

return timeinfo->tm_min

ANDARE

}

int Clock :: getSeconds () {

time_t seconds = time(NULL)

ANDARE

struct tm *timeinfo = localtime(&amp;seconds)

ANDARE

return timeinfo->tm_sec

ANDARE

}

std :: string Clock :: getTime () {
std :: tempo stringa
ANDARE
std :: stringstream fuori
ANDARE
out << getHours ()
ANDARE
tempo = out.str ()
ANDARE
out.str (\ "\")
ANDARE
tempo + = \ ": \"
ANDARE
out << getMinutes ()
ANDARE
tempo + = out.str ()
ANDARE
out.str (\ "\")
ANDARE
tempo + = \ ": \"
ANDARE
out << getSeconds ()
ANDARE
tempo + = out.str ()
ANDARE
tempo di ritorno
ANDARE

}

Partendo dall'alto è il costruttore, Orologio (). Questa è una classe molto semplice, quindi non c'è bisogno di fare nulla di speciale qui, in modo che il costruttore viene lasciato vuoto.

Poi ci sono i getHours, i minuti ei secondi funzioni. Queste funzioni recuperare l'ora locale, misurata in secondi, GMT, dal gennaio del 1970 sulla maggior parte dei computer, lo converte nella struttura tm fornito dalle librerie C ++, e, infine, per recuperare le ore, i minuti ei secondi da questo valore in un essere umano modulo -readable.

Infine, getTime mette questi valori insieme in una stringa con il formato comune che separa ore, minuti e secondi da due punti.

4 Creare un programma semplice da usare. Aprire il file main.cpp e scrivere il seguente programma in esso.

includere <iostream> include \ "clock.h \"

int main (int argc, const char argv []) {
Orologio = new Clock ()
ANDARE

std::cout &lt;&lt; clock->getTime()

ANDARE

return 0

ANDARE
}

Questo programma molto semplice crea un nuovo oggetto orologio, arriva l'ora di sistema corrente da esso, e lo trasmette allo standard out. Infine restituisce 0 al sistema operativo, per informare il sistema operativo che il programma eseguito correttamente senza errori.