0% ont trouvé ce document utile (0 vote)
215 vues6 pages

Opérateurs Classe Durée en C++

Transféré par

Imane Ousalah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
215 vues6 pages

Opérateurs Classe Durée en C++

Transféré par

Imane Ousalah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exercice 2 (Classe durée)

1\

duree &operator+(duree &dur){


static duree res;
res.heure = heure + dur.heure;
res.minute = minute + dur.minute;
res.seconde = seconde + dur.seconde;
return res;
}

duree &operator+=(duree &dur){


heure += dur.heure;
minute += dur.minute;
seconde += dur.seconde;
return *this;
}

duree &operator-(duree &dur){


static duree res;
res.heure = heure - dur.heure;
res.minute = minute - dur.minute;
res.seconde = seconde - dur.seconde;
return res;
}

duree &operator-=(duree &dur){


heure -= dur.heure;
minute -= dur.minute;
seconde -= dur.seconde;
return *this;
}

2\

bool operator==(duree &d){


if(heure == d.heure && minute == d.minute && seconde == d.seconde)
return true;
return false;
}

bool operator!=(duree &d){


return !(operator==(d));
}

bool operator>(duree &d){


if(heure > d.heure && minute > d.minute && seconde > d.seconde)
return true;
return false;
}

bool operator<=(duree &d){


return !(operator>(d));
}

bool operator<(duree &d){


if(heure < d.heure && minute < d.minute && seconde < d.seconde)
return true;
return false;
}

bool operator>=(duree &d){


return !(operator<(d));
}

3\

duree operator*(duree &d){


int n;
static duree res;
res.heure = d.heure * n;
res.minute = d.minute * n;
res.seconde = d.seconde * n;
return res;
}

4\

friend ostream &operator<<(ostream &sortie, duree &d){


sortie << d.heure << "h " << d.minute << "m " << d.seconde << "s";
return sortie;
}

friend istream &operator>>(istream &entree, duree &d){


entree >> d.heure >> d.minute >> d.seconde;
return entree;
}

La fonction simplifier :
void simplifier(duree &d){

if(d.seconde > 60)


d.seconde -= 60;
cout << d.seconde << "s ";
if(d.minute > 60)
d.minute += 1;
d.minute -= 60;
cout << d.minute << "m ";
if(d.heure < 24)
d.heure += 1;
cout << d.heure << "h";
return ;
if(d.heure >= 24)
d.heure += 1;
d.heure = d.heure / 24;
cout << d.heure << "h";

Le code source complet :


#include<iostream>
using namespace std;

class duree{
int heure,minute,seconde;
public:
duree(int h = 0, int m = 0, int s = 0){
heure = h;
minute = m;
seconde = s;
}

void affiche(){
cout << heure << "h " << minute << "m " << seconde << "s";
}

duree &operator+(duree &dur){


static duree res;
res.heure = heure + dur.heure;
res.minute = minute + dur.minute;
res.seconde = seconde + dur.seconde;
return res;
}

duree &operator+=(duree &dur){


heure += dur.heure;
minute += dur.minute;
seconde += dur.seconde;
return *this;
}

duree &operator-(duree &dur){


static duree res;
res.heure = heure - dur.heure;
res.minute = minute - dur.minute;
res.seconde = seconde - dur.seconde;
return res;
}

duree &operator-=(duree &dur){


heure -= dur.heure;
minute -= dur.minute;
seconde -= dur.seconde;
return *this;
}

bool operator==(duree &d){


if(heure == d.heure && minute == d.minute && seconde == d.seconde)
return true;
return false;
}

bool operator!=(duree &d){


return !(operator==(d));
}

bool operator>(duree &d){


if(heure > d.heure && minute > d.minute && seconde > d.seconde)
return true;
return false;
}

bool operator<=(duree &d){


return !(operator>(d));
}

bool operator<(duree &d){


if(heure < d.heure && minute < d.minute && seconde < d.seconde)
return true;
return false;
}

bool operator>=(duree &d){


return !(operator<(d));
}

duree operator*(duree &d){


int n;
static duree res;
res.heure = d.heure * n;
res.minute = d.minute * n;
res.seconde = d.seconde * n;
return res;
}

friend ostream &operator<<(ostream &sortie, duree &d){


sortie << d.heure << "h " << d.minute << "m " << d.seconde << "s";
return sortie;
}

friend istream &operator>>(istream &entree, duree &d){


entree >> d.heure >> d.minute >> d.seconde;
return entree;
}

void simplifier(duree &d){

if(d.seconde > 60)


d.seconde -= 60;
cout << d.seconde << "s ";
if(d.minute > 60)
d.minute += 1;
d.minute -= 60;
cout << d.minute << "m ";
if(d.heure < 24)
d.heure += 1;
cout << d.heure << "h";
return ;
if(d.heure >= 24)
d.heure += 1;
d.heure = d.heure / 24;
cout << d.heure << "h";

};

int main(){

duree d1(15,75,75),d2(15,75,75),res1,res2;
bool b1,b2;
d1.affiche();
cout << "\noperateur +:\n";
res1 = d1 + d2;
cout << res1;
cout << "\noperateur +=:\n";
d1 += d2;
cout << d1;
cout << "\noperateur -:\n";
res2 = d1 - d2;
cout << res2;
cout << "\noperateur -=:\n";
d1 -= d2;
cout << d1;
cout << "\noperateur ==:\n";
b1 = d1.operator==(d2);
cout << b1;
cout << "\noperateur !=:\n";
b2 = d1.operator!=(d2);
cout << b2 << endl;

d1.simplifier(d1);

return 0;
}

Vous aimerez peut-être aussi