Vous êtes sur la page 1sur 4

Université de Ngaoundéré Année académique 2010/2011

Faculté des sciences Master 1


Département de Physique

EXAMEN : Programmation avec les objets et langage C++


Durée : 3h

Exercice 1 : Les Montres (10 pts)

Les montres font parmi des objets les plus communs du monde. Chaque montre est caractérisée par
les variables entières suivantes : heure, minute, seconde. Sur une montre on doit :
 Affecter à la création aux variables heure, minute et seconde des arguments par défaut
ajustés. Par exemples hh=00, mm=0, ss=00 ;
 Afficher le temps au format hh:mm:ss ;
 Ajuster le temps c’est-à-dire ajouter respectivement aux variables heure, minute, seconde les
constantes Δh, Δm, Δs ;
 Incrémenter la variable seconde.
1. Concevez une classe Montre ayant pour membre privés : heure, minute, seconde.
Classe Montre {
Privé : hh, mm, ss : entier ;
Publique :
Montre () ;
Void Ajuster(Δh :entier, Δm:entier, Δs:entier) ;
Void Afficher () ;
}
2. Tout en donnant un exemple concret, définir les notions suivantes: Classe, Constructeur,
Attributs, Méthodes.
 Classe : Une classe est un ensemble d’objets qui ont en commun : les mêmes
méthodes et les mêmes types d’attributs
 Constructeur : Un constructeur, généralement public, est une méthode portant le
même nom que la classe à laquelle il appartient.
 Attributs : Les attributs d’un objet sont l’ensemble des informations se
présentant sous forme de variable et permettant de représenter l’état de l’objet.
 Méthode : Une méthode est une fonction ou procédure liée à un objet.
3. Implémenter en C++ les différentes méthodes (fonctions membres) suivantes :
a. Le constructeur qui initialise la montre à 12:00:00 à la création.
Montre :: Montre () { 
hh=12 ;
mm=0 ;
ss=0;}
Université de Ngaoundéré Année académique 2010/2011
Faculté des sciences Master 1
Département de Physique

EXAMEN : Programmation avec les objets et langage C++


Durée : 3h

b. void Afficher (), qui affiche le temps au format hh:mm:ss 

void Montre :: Afficher () { 


cout<< "HEURE :" <<hh<<":"<<mm<<":"<<ss ;
}

c. void Ajuster (Δh, Δm, Δs),qui ajoute Δh à l’heure, Δm à la minute et Δs à la


seconde.

void Montre :: Ajuster (Δh :entier, Δm : entier, Δs:entier) { 


ss+= Δs ;
mm+= Δm ;
hh+= Δh ;
}

d. void Marche (), qui incrémente la variable seconde.

void Montre :: Marche (){


ss++ ;
if (ss>=60) {
ss=ss-60;
mm++;
}
if (mm>=60) {
mm=mm-60;
hh++ ;
}
if (hh>=24) {
hh=hh-24;
}
}

Exercice 3 : Le Quadrilatère (10 pts)

Monsieur NWOYNDO dispose d’un terrain en forme de quadrilatère (polygone à quatre côtés) qu’il
décide de vendre au prix de 2000 Fcfa le mètre carré. Et comme plusieurs personnes veulent acheter
une partie, il décide de découper son terrain en plusieurs lots rectangulaire, carré ou trapézoïdale.

1. Concevoir une classe Quadrilatère avec ses membres de données et ses fonctions membres
qui décrit un objet en forme de quadrilatère.
Université de Ngaoundéré Année académique 2010/2011
Faculté des sciences Master 1
Département de Physique

EXAMEN : Programmation avec les objets et langage C++


Durée : 3h

Classe Quadrilatère {
Privé :
Coté_1, Coté_2, Coté_3, Coté_4: réel ;
Prix :réel ;
Publique :
void Initialiser () ;
réel Surface () ;
réel CalculPrix () ;
Void AfficherPrix () ;
}
2. Dessiner le modèle du système en sachant que les classes Rectangle, Carré et Trapèze
dérivent de la classe Quadrilatère. Les classes Rectangle, Carré et Trapèze pourront avoir des
fonctions membres et des membres des données propres à elles
Quadrilatère

 Coté_1 ;  Coté_2 ;
 Coté_3 ;  Coté_4 ;
 Prix
 Surface ( ) ;
 CalculPrix () ;
 AfficherPrix () ;

Rectangle Trapèze
Surface ( ) ; Ht : entier;
Périmètre () ; Surface ( ) ;
Diagonale() ; Périmètre () ;

Carré
Surface ( ) ;
Périmètre () ;

3. Tout en donnant un exemple concret, définir les notions suivantes: Objet, Héritage,


Encapsulation.
 Objet : Un objet est une entité logicielle : Ayant une identité, un état interne et un
comportement. Exemple Un quadrilatère Q1 de dimension (12, 25, 14, 26) est un
objet.
 Héritage : La notion d’héritage est une relation entre différentes classes permettant de
définir une nouvelle classe en se basant sur les classes existantes. Exemple : Rectangle
hérite de la classe Quadrilatère.
Université de Ngaoundéré Année académique 2010/2011
Faculté des sciences Master 1
Département de Physique

EXAMEN : Programmation avec les objets et langage C++


Durée : 3h

 Encapsulation : Le principe d’encapsulation consiste à regrouper dans le même objet


informatique («concept»), données et traitements qui lui sont spécifiques . Exemple :
La classe Quadrilatère renferme ses attributs (Coté_1, Coté_2 ; Coté_3 ; Coté_4, Prix) et ses
méthodes (Surface ( ) , CalculPrix (), AfficherPrix () )

4. Implémenter en C++ les méthodes Perimère() et AfficherPrix() des classes Rectangle, Carré
et Trapèze, qui respectivement calcule le périmètre et affiche le prix de la forme géométrique.
float Rectangle::Périmètre(){ float Carré ::Périmètre(){ float Trapèze::Périmètre(){
return((Coté_1+Coté_2)*2) ; return(Coté_1*4) ; float X ;
} } X=Coté1+Coté_2+Coté_3+Coté_4;
 return (X) ;}

Comme classes Rectangle, Carré et Trapèze hérite des méthodes et des attributs la
classe quadrilatère, on n’a plus besoin de redéfinir la méthode AfficherPrix() car sa
signature est son implémentation ne change pas.
Void Quadrilatère ::AfficherPrix(){
float Sur=surface() ;
cout<< "Prix ="<<Prix ;

5. Montrer sur cet exemple comment s’applique le polymorphisme.


Le polymorphisme est un mécanisme qui permet à une sous classe de redéfinir une méthode
dont elle a hérité tout en gardant la même signature de la méthode.
Exemples :
Quadrilatère
Surface ( ) ;
Périmètre () ;

Rectangle Trapèze
Surface ( ) ; Surface ( ) ;
Périmètre () ; Périmètre () ;

Vous aimerez peut-être aussi