Classe Medecin Heritage C++

EXERCICE CORRIGE C++ / NOTION D'HERITAGE

 Partie A : La Classe Medecin (1+0.5pt x 7-4.5pts)

Un Medecin est défini par son matricule, son nom et son salaire mensuel. Le matricule est un entier géré uniquement par la classe. Pour ce faire, cette classe possède un membre statique nbreMedecins initialisé à zéro et incrémenté à chaque création de médecin par un constructeur.

Question A1 : Définir la classe ainsi décrite.

On suppose que le fichier medecin.h contient les entêtes des méthodes suivantes :

- Medecin(std::string nom, double salaire); // Constructeur à deux arguments
- double getSalaire() const; // Accesseur en consultation sur le salaire
- void setSalaire(double salaire); // Accesseur en modification sur le salaire
- static int getNbreMedecins(); // Accesseur en consultation sur le nombre de médecins
- virtual void affichage() const; // Affiche le matricule, le nom et le salaire du médecin à l'écran
- static Medecin lireMedecin(); // Lit un nom et un salaire puis retourne ce médecin
- bool operator==(const Medecin &med); // Deux médecins sont égaux s'ils ont le même matricule

Question A2 : Donner un corps à chacune des méthodes.

---

#### Partie B : La Classe MedecinSpecialiste (1+0.5pt x 3=2.5pt)

MedecinSpecialiste est une classe fille de Medecin qui comprend un membre contenant la spécialité du médecin.

Question B1 : Définir la classe ainsi décrite (le fichier medecinSpecialiste.h).

Question B2 : Définir un constructeur qui prend en argument le nom, le salaire et la spécialité.

Question B3 : Redéfinir la méthode héritée affichage().

Question B4 : Définir la méthode suivante : static MedecinSpecialiste lireMedecinSpecialiste();.

---

#### Partie C : Liste Contiguë de Médecins (1pt x 5 = 5pts)

Une liste de médecins comprend les champs suivants :

(1) un tableau de médecins (tab),

(2) la taille du tableau (taille),

(3) la position de la prochaine case libre du tableau (libre). Si libre est égale à zéro alors tab est vide. Si libre est égale à taille alors tab est plein. Le membre libre indique aussi le nombre de médecins dans tab.

Définir un destructeur et un constructeur qui prend la taille de la liste à créer, puis crée une liste.

- int ajout(const Medecin &med); // Copie le médecin dans la première case libre de tab et retourne TRUE (pour dire que l'ajout a réussi). La fonction doit retourner FALSE si la liste est pleine.

- int suppression(int matricule); // Recherche et supprime le médecin dont le matricule est donné en argument. En cas de suppression on retourne TRUE. Dans le cas contraire on retourne FALSE.

- void ecrireFichier(const std::string &nomFichier) const; // Copie le contenu de tab dans un fichier.

- void lireFichier(const std::string &nomFichier); // Copie tous les médecins du fichier en argument dans tab.

  • Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam