Vous êtes sur la page 1sur 2

Exercice

On se propose de concevoir une application pour la gestion d’une partie du personnel de la société
du transport ferroviaire. Pour ce faire, les données suivantes ont été présentées :

 Chaque employé de cette société est identifié par son numéro de carte d'identité (entier
constant) et a un nom (string). Chaque employé doit disposer d'une méthode permettant de
calculer et de retourner son salaire double CalculerSalaire().
 Un employé peut être un agent administratif ou un conducteur.
 Un agent administratif est un employé ayant en plus un nombre d'années d'ancienneté (0
par défaut). Son salaire est égal à 800dt auxquels s'ajoutent 30dt par année d'ancienneté.
 Un conducteur est un employé ayant en plus un trajet parcouru des voyages (entier) qu'il a
effectués pendant toute sa carrière. De plus, chaque conducteur a un historique mensuel de
ses voyages. Cet historique est vide lors de l’instanciation d’un nouveau conducteur et ne
dépassant jamais les 30 voyages par mois. Le salaire mensuel d'un conducteur est de 100dt
par 50 km de trajet (calculé à partir de la liste des voyages du mois).
 Un voyage est caractérisé par un identifiant (chaîne de 6 caractères), un type de véhicule
(train omnibus ou marchandise), deux noms de stations (départ et arrivée) et une distance à
parcourir (un réel).

1. Définir et implémenter la classe Voyage tout en prévoyant les éléments suivants :


a. l'opérateur + permettant de fusionner deux voyages v1 et v2 en un 3ème voyage ayant
comme station de départ celle de v1, comme station d'arrivée celle de v2, comme
identifiant la concaténation des trois premiers caractères du premier voyage et les
trois derniers caractères du deuxième voyage et comme distance à parcourir la
somme des deux trajets de v1 et de v2. Cette fusion n’est possible que si le type du
véhicule est le même.
b. l’opérateur d’injection de flux de sortie (<<) permettant d’afficher toutes les
données relatives au voyage.

2. Définir et implémenter la hiérarchie de classes incluant AgentAdministratif et


Conducteur tout en implémentant pour chacune :
a. un constructeur paramétré.
b. un destructeur si c’est nécessaire.
c. la méthode calculerSalaire si applicable.
d. une méthode nommée void ajouterVoyage(Voyage &v) dans la ou les
classe(s) correspondante(s), permettant d'ajouter un voyage pour le mois courant
tout en mettant à jour les données qui lui sont relatives dans les classes
correspondantes.

3. Implémenter la classe Compagnie_Ferroviaire sachant que celle-ci a un nom (seul


attribut passé lors de son instanciation) et regroupe un ensemble d'employés. La classe
Compagnie_Ferroviaire doit disposer des méthodes suivantes :
a. calculerChargeSalariale qui calcule et retourne la somme des salaires
mensuels de tous ses employés.
b. une méthode permettant d’ajouter un employé (de n’importe quel type) à la
compagnie. Avant de faire l’insertion, il faut s’assurer que cet employé n’a pas été
inséré avant.

Vous aimerez peut-être aussi