Exercice 1: Génie Informatique 1: Programmation Orienté Objet en C++ Série #3 TD/TP

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

ENSAH 2019/2020

Génie Informatique 1 : Programmation Orienté Objet en C++


Série N° 3 TD/TP

Exercice 1
class Vehicule{
Un parc auto se compose des voitures et des camions qui ont des protected :
caractéristiques communes regroupées dans la classe Vehicule. char *Matricule;
char *Marque;
1) Compléter la classeVehicule. int AnneeModele ;
2) On désire concevoir la classe Voiture qui présente un attribut float PrixHT;
privé nbrePlace, et hérite publiquement de la classe Vehicule. public :
Vehicule(char *,char *,int, float);
a) Définir le constructeur avec paramètres et le constructeur par
Vehicule(const Voiture &v);
copie. Définir la méthode afficher() permettant d’afficher les ~Vehicule();
informations d’une voiture : virtual void afficher();
void setPrixHT(float p);//modifier prixHT
Matricule Marque Année PrixHT NbrePlace
b) Donner les modifications nécessaires pour compter le float getPrixTTC() ; //retourne PrixHT*1.2
};
nombre de voitures créées
c) Ecrire un programme Test qui permet de :
 Créer une voiture v1 de matricule "1234-A-50", de marque "Marqx", son prix HT est 15000, son
année de modèle est 2007 et de nombre de places = 4.
 Créer une voiture v2 à partir de v1, afficher les références de v2 et le nombre de voitures créées.
 tester les fonctions membres des deux classes.

Exercice 2
La modélisation de la gestion des contacts dans un établissement a débouché sur le modèle de la classe
« contact » suivante : Contact.h
 numContact : est un entier positif unique qui désigne class contact{
chaque contact. Il doit être incrémenté automatiquement à protected :
chaque création d’un nouveau contact. int Num_contact ;
 nomContact : est le nom du contact. Ce nom ne pourra pas char *Nom_contact ;
être modifié une fois créé. int Age_contact ;
 age_contact : L’âge du contact qui doit être compris entre char *Message_contact ;
18 et 60. public :
 messageContact : Le message envoyé par le contact. static int compteur ;
1) Écrire le code du constructeur par paramètres : le message du contact(char *n,int a) ;
void setAge(int a) ;
contact est initialisé à « Pas de Message … ».
void setMessage(char *m) ;
2) Écrire le code de la méthode « setAge » qui permet de saisir
void afficher() ;} ;
l’âge du contact tout en vérifiant les contraintes sur l’âge.

3) Écrire le code de la méthode « setMessage » qui permet de saisir le message du contact.


4) Écrire le code de la méthode « afficher » qui affiche tous les attributs du contact sous la forme :
On suppose qu’un salarié de cette entreprise peut être aussi un contact interne, ainsi il Numéro :
sera modélisé par la classe « ContactSal» qui héritera publiquement de la classe Nom :
« Contact». Un salarie présente les attributs suivants :matricule(entier), salaire(reel) Age :
et bonContact (bool) Message :

A. La classe « ContactSal» :

Série 3 TD/TP C++ 1/2 A. EL ALLAOUI


ENSAH 2019/2020

1) Écrire le code du constructeur « ContactSal» qui fait appel au constructeur dela classe « contact » et qui
initialise l’attribut « bonContact » à « false ».
2) Le contact sera jugé pertinent si le message du contact est pris en compte par l’établissement. Dans ce
cas l’attribut «bonContact » recevra la valeur « true » et le salaire du contact interne sera augmenté de
10%.
a) Écrire le code de la méthode « setBonContact » qui attribue la valeur « true » à l’attribut
« bonContact ».
b) Écrire une méthode « calculSalaire » qui retourne le salaire du contact interne suivant la valeur de
l’attribut « bonContact ».
3) Surcharger la méthode « affiche » de la classe mère pour afficher tous les Numéro :
attributs de la classe fille. Nom :
Age :
4) Surcharger l’opérateur << pour afficher les informations d’un contact salarié Message :
Matricule :
sous la forme :
Salaire :
5) Tester la classe on créant 4 contacts dont 2 salariés. La lecture des attributs du Est un bon contact :
oui ou non
premier contact se fait par clavier.

Exercice 3 DISTRIBUTEUR DE BOISSONS


1) On veut modéliser un distributeur de boissons. Ce distributeur délivre un seul type de boisson. Pour
obtenir une boisson, il faut rentrer des pièces dans le distributeur et appuyer sur le bouton qui délivre
une boisson dont le prix est de 5 dirhams.
a) Écrire la classe « Distributeur » contenant les méthodes suivantes :
- Le constructeur par défaut qui initialise la variable membre « sommeArgent » à 0
- public void ajoutePiece(float x) qui ajoute une pièce de x dirhams aux pièces éventuellement déjà
introduites dans le distributeur.
- public void delivreBoisson() qui affiche ”Pas assez” si on n’a pas introduit assez d’argent et
”Voilà” dans le cas contraire. Si plus d’argent que nécessaire a été introduit, alors on affiche en
plus le montant de l’argent qui est rendu.
b) Écrire la fonction « main » permettant de tester la classe. Vous pourrez par exemple créer un
distributeur, ajouter 5 pièces de 1 dirham et demander la boisson.
2) Maintenant, on veut modéliser un distributeur qui puisse délivrer plusieurs types de boissons. Pour
obtenir une boisson, il faut, en plus de l’introduction de suffisamment d’argent, appuyer sur une touche
de sélection de boisson avant d’appuyer sur le bouton qui délivre la boisson.
c) Écrire la classe « DistributeurMulti » qui hérite en mode public de la classe « Distributeur » et
qui intègre les méthodes suivantes :
- un constructeur par défaut permettant de créer une machine délivrant un seul type de boisson.
- un constructeur avec argument permettant de créer une machine délivrant n types de boissons
différents (n étant passé en argument).
- la méthode void selection(int t) qui sélectionne le type de boisson t. Si t n’est pas un bon numéro,
on affiche ”Erreur de sélection”.
la méthode void delivreBoisson() : maintenant si aucun type de boisson n’a été sélectionné auparavant,
on affiche ”Sélectionnez une boisson”, sinon on fait comme avant.
d) Écrire la fonction main permettant de tester la classe « DistributeurMulti ». Vous pourrez par
exemple créer un « DistributeurMulti » de 3 types, ajouter 6 pièces de 1 dirham et demander la
boisson de type 2.

Série 3 TD/TP C++ 2/2 A. EL ALLAOUI

Vous aimerez peut-être aussi