Serie TP3 (SMA - S5

1
Université Mohammed Ier
Faculté des Sciences
Dépt. de Maths et Info.
Oujda - MAROC -
Année universitaire 2014/2015
Filière SMA (Semestre 5)
Module : POO : C++
Série TP N° 3
EXERCICE 1
Réaliser une classe vecteur3d permettant de manipuler des vecteurs à 3 composantes (de type
float). On y prévoira :
• un constructeur, avec des valeurs par défaut (0),
• une fonction void affiche () permet l’affichage des 3 composantes du vecteur, sous la forme :
< composante1, composante2, composante3 >
• une fonction vecteur3d somme (vecteur3d &) permettant d’obtenir la somme de 2 vecteurs ;
• une fonction float prodscal (vecteur3d &) permettant d’obtenir le produit scalaire de 2
vecteurs.
On écrira un petit programme utilisant la classe ainsi réalisée.
EXERCICE 2
Soit la classe vecteur3d définie par :
class vecteur3d
{ float x, y, z ;
public :
vecteur3d (float c1=0.0, float c2=0.0, float c3=0.0)
{ x = c1 ; y = c2 ; z = c3 ; }
.....
} ;
Écrire une fonction indépendante coincide, amie de la classe vecteur3d, permettant de
savoir si deux vecteurs ont les mêmes composantes.
Ajouter un programme principal qui permet de tester s’ils coincident ou non les vecteurs
suivant a(2,0) , b(2) et c .
EXERCICE 3
Définir et compléter la classe point comme suit :
class point
{ int x, y ;
public :
point (int abs=0, int ord=0)
// constructeur usuel
{ ……
cout << "++ point " << x << " " << y << endl ;
}
1
2
point (point & p)
// constructeur de recopie
{ ……..
cout << "CR point " << x << " " << y << endl ;
}
} ;
Définir et compléter la classe dérivée pointcol comme suit :
class pointcol : public point
{ int coul ;
public :
// constructeur usuel
pointcol (int abs=0, int ord=0,
{ ……..
cout << "++ pointcol " << coul
}
// constructeur de recopie
pointcol (pointcol & p) : point
{ ……
cout << "CR pointcol " << coul
}
} ;
int cl=1) : point (abs, ord)
<< endl ;
(p)
<< endl ;
Définir la fonction suivante
void fct (pointcol pc)
{
cout << "*** entree dans fct ***" << endl ;
}
Ajouter un programme principal qui permet de
 déclarer un objet a de la classe pointcol
 faire appel de fct avec a transmis par valeur
EXERCICE 4
Créer une classe personnel comprenant trois données membres (nom, position,
salaire), un constructeur initialisant les données membres et une fonction
affiche_personnel qui affiche les informations sur le personnel.
Créer une classe patron dérivant publiquement de la classe personnel et ayant
deux données membres (bonus_annuel, marque de voiture de fonction) , un
constructeur initialisant les données membres et une fonction affiche_patron qui affiche
les informations sur le patron (entant que membre du personnel et patron). Créer un
programme permettant de tester ces classes.
2