Regardez plutot...
Ce programme est une sorte d'horloge!
Il n'y a aucune erreur de compilation, mais les heures n'augmentent jamais!!
A la ligne 54, j'ai marqué un commentaire : !!ERREUR ICI!! c'est la que se trouve mon erreur.
Quelqu'un pourrait me dire ce que je fais de faux pour que les heures ne bougent pas..
Compilé avec DEV C++ 4
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
class Temps
{
public:
void AjusterTemps(int , int , int);
int AjusterHeure(int);
int AjusterMinute(int);
int AjusterSeconde(int);
void AfficherTemps();
private:
int heure;
int minute;
int seconde;
};
int Temps::AjusterHeure(int h)
{
return (h >= 0 && h < 24 ? h : 0); //Ajuster l'heure si plus grand que 0
} //et si plus petit que 24
int Temps::AjusterMinute(int m)
{
return (m >= 0 && m < 60 ? m : 0); //Ajuster les minutes si plus grand que 0
} //et si plus petit que 60
int Temps::AjusterSeconde(int s)
{
return (s >= 0 && s < 60 ? s : 0); //Ajuster les sec si plus grand que 0
} //et si plus petit que 60
void Temps::AjusterTemps(int h , int m , int s)
{
heure = Temps::AjusterHeure(h); //Ajustement de l'heure
minute = Temps::AjusterMinute(m); //Ajustement des minutes
seconde = Temps::AjusterSeconde(s); //Ajustement des secondes
}
void Temps::AfficherTemps()
{
int kb = 70;
do
{
if (seconde == 60)
Temps::AjusterTemps(heure,minute+1,0);
if (minute == 60)
Temps::AjusterTemps(heure+1,0,seconde); //!!ERREUR ICI!!
if (heure == 24)
{
Temps::AjusterTemps(0,0,0);
}
cout <<(heure < 10 ? "0" : "") <<heure <<" : ";
cout <<(minute < 10 ? "0" : "") <<minute <<" : ";
cout <<(seconde < 10 ? "0" : "") <<seconde;
Sleep(1000);
system("cls");
seconde++;
}while(seconde != -1);
}
void main()
{
Temps t;
t.AjusterTemps(2,59,50);
t.AfficherTemps();
}