Exercice 1: Génie Informatique 1: Programmation Orienté Objet en C++ Série #3 TD/TP
Exercice 1: Génie Informatique 1: Programmation Orienté Objet en C++ Série #3 TD/TP
Exercice 1: Génie Informatique 1: Programmation Orienté Objet en C++ Série #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.
A. La classe « ContactSal» :
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.