Exercice langage C: L’héritage (Créer une classe Date)

Exercice langage C
[tab name=’Exercice langage C’]

a) Créer une classe Date ayant 3 paramètres jour, mois, année.
Elle contient un constructeur initialisant les données membres.
Elle contient les fonctions getDay(), getMonth(), getYear(), setDay(), setMonth(), setYear() et DateToString()
Le constructeur attend en paramètre l’année, le mois puis le numéro de jour et les affecte dans l’espace de données privé de l’objet.Exercice langage C
Les méthodes accesseurs permettent respectivement de récupérer le jour, le mois ou l’année sous forme d’un entier (méthodes getxxx) et de changer ces mêmes propriétés (méthodes setxxx). La méthode DateToString retourne une chaîne de caractères représentant la date de l’objet sur lequel a été invoquée cette méthode au format américain.
b) Nous voyons que le constructeur et la méthode DateToString travaillent sur le format américain. Comme cette classe est intégrée dans les librairies d’un environnement de développement, il n’est pas possible de la modifier. Quelle technique nous offre la programmation orientée objet pour pouvoir gérer nos dates au format français tout en utilisant cette classe existante qui offre en outre un ensemble d’autres services ? Écrire le code correspondant pour gérer un constructeur et une méthode retournant une chaîne au format français.

[/tab][tab name=’Correction’]

#include <iostream.h>
#include <string>
#include <stdlib.h>
using namespace std;
class date{
protected:
int jour;
int mois;
int annee;
public:
date(int jr=0, int ms=0, int an=0);
void getday();
void getmonth();
void getyear();
void setday();
void setmonth();
void setyear();
virtual string datetostring();
};
class datefr:public date{
public:
datefr(int jr=0, int ms=0, int an=0);
string datetostring();
};
datefr::datefr(int jr, int ms, int an):date(jr,ms,an){}
string datefr::datetostring(){
char tab1[60]="";
char tab2[20]="";
char tab3[20]="";
cout<<"date en version europeenne"<<endl;
itoa(jour,tab1,10);
itoa(mois,tab2,10);
itoa(annee,tab3,10);
strcat(tab1,tab2);
//cout<<tab1<<endl;
strcat(tab1,tab3);
//cout<<tab1<<endl;
return tab1;
}
date::date(int jr, int ms, int an){
jour=jr;
mois=ms;
annee=an;
}
void date::getday(){
cout<<"Jour :"<<jour;
}
void date::getmonth(){
cout<<"Mois :"<<mois;
}
void date::getyear(){
cout<<"Annee :"<<annee<<endl;
}
void date::setday(){
cout<<"Entrer le jour"<<endl;
cin>>jour;
}
void date::setmonth(){
cout<<"Entrer le mois"<<endl;
cin>>mois;
}
void date::setyear(){
cout<<"Entrer l' annee"<<endl;
cin>>annee;
}
string date::datetostring(){
char tab1[60]="";
char tab2[20]="";
char tab3[20]="";
itoa(annee,tab1,10);
itoa(mois,tab2,10);
itoa(jour,tab3,10);
strcat(tab1,tab2);
//cout<<tab1<<endl;
strcat(tab1,tab3);
//cout<<tab1<<endl;
return tab1;
}
void main(){
date a;
a.setday();
a.setmonth();
a.setyear();
a.getday();
a.getmonth();
a.getyear();
string tab= a.datetostring();
for(int i=0;i<20;i++)
cout<<tab[i];
cout<<endl;
datefr b(22,9,81);
string tab1=b.datetostring();
for(int j=0;j<20;j++)
cout<<tab1[j];
cout<<endl;
}

Exercice langage C

Exercice informatique, Correction exercice, exercices corrigés, Solution exercice, Exercice langage C

[/tab][end_tabset skin= »lightness » ]

Télécharger aussi :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *