Vous êtes sur la page 1sur 3

Université Mohammed I

Ecole Supérieure de Technologie d’Oujda


Département de Génie Informatique
Année universitaire 2022/2023
2ème année Informatique de Gestion

TP N° : 8

Exercice 1:
1- Ecrire une classe Point formée de deux réels (abscisse et ordonnée) et d’un nom, qui
est un caractère. Ecrire les méthodes :
– init qui permet d’initialiser un point avec une abscisse, une ordonnée et un nom;
– print qui affiche les caractéristiques d’un point ;
– translate qui pratique la translation d’un point selon deux valeurs de type double.
2- Ecrire une fonction nommée distant calculant la distance entre deux points.

Exercice 2:
Le but de cet exercice est d’écrire une classe Compte pour gérer les comptes bancaires d’un
certain nombre de clients. Les informations suivantes sont disponibles sur ces comptes :
- un compte est défini par trois informations : le numéro du compte, le nom du client et le
solde ;
- un même client peut avoir plusieurs comptes.
Écrire la classe Compte en donnant des méthodes d’initialisation, de consultation du
compte, de retrait et de dépôt.

Exercice 3:
On veut à présent écrire une classe Banque pour gérer les comptes des différents clients.
Cette nouvelle classe définira par conséquent un tableau comptes contenant tous les
comptes que l’on désire gérer. Cette classe devra définir les méthodes suivantes :
add(Compte c); // ajoute un compte à la liste des comptes à gérer
delete(int numero); // supprime le compte dont le numéro est donné par numero
Compte ;
getCompte(int numero); // retourne le compte dont le numéro est donné par numero

Écrire la classe Banque.

Exercice 4:
1- Définissez une classe Cercle(). Les objets construits à partir de cette classe seront des
cercles de tailles variées. En plus de la méthode constructeur (qui utilisera donc un
paramètre rayon), vous définirez une méthode surface(), qui devra renvoyer la surface
du cercle.
2- Définissez ensuite une classe Cylindre() dérivée de la précédente. Le constructeur de
cette nouvelle classe comportera les deux paramètres rayon et hauteur. Vous y
ajouterez une méthode volume() qui devra renvoyer le volume du cylindre
rappel : volume d’un cylindre = surface de section × hauteur.
3- Complétez l’exercice précédent en lui ajoutant encore une classe Cone(), qui devra
dériver cette fois de la classe Cylindre(), et dont le constructeur comportera lui aussi
les deux paramètres rayon et hauteur. Cette nouvelle classe possédera sa propre
méthode volume(), laquelle devra renvoyer le volume du cône
rappel : volume d’un cône = volume du cylindre correspondant divisé par 3.

1
Université Mohammed I
Ecole Supérieure de Technologie d’Oujda
Département de Génie Informatique
Année universitaire 2022/2023
2ème année Informatique de Gestion

Projet :
PARTIE 1 :
Une entreprise souhaite gérer les salaires de ces employés. Pour cela, elle crée une classe
Employe ayant les caractéristiques suivantes :
– Une donnée membre nom
– Une donnée membre prenom
– Une donnée membre age
– Une donnée membre anciennete (le nombre d’années de la personne dans
l’entreprise)
– Une méthode calculer_base_salaire() qui calcule la base du salaire de la personne.
– Une méthode print() qui affiche la personne avec sa profession
– Une méthode calculer_salaire() qui calcule le salaire de la personne (base de
salaire plus 10% par année d’ancienneté)
– Le constructeur associé
On souhaite pouvoir définir les classes dérivées de Employe suivantes :
– Une classe Commercial ayant une donnée membre double chiffre_affaire et deux données
statiques constantes double BASE et double PART. La base de salaire est donnée par la
formule suivante :
BASE+chiffre_affaire*PART

– Une classe Technicien ayant une donnée membre int nb_unité_produite et trois données
statiques constantes double BASE, double PART et double GAIN_UNITE. La base de salaire
est donnée par la formule suivante :
BASE+nb_unité_produite*PART*GAIN_UNITE
– Une classe Manutentionnaire ayant une donnée membre int Nb_heures et une donnée
statique constante double BASE_SALAIRE_HORAIRE. La base de salaire est donnée par la
formule suivante :
BASE_SALAIRE_HORAIRE*Nb_heures.

1. Implémenter les différentes classes et tester-les.

PARTIE 2:
On souhaite créer de nouvelles classes dérivées de Commercial :
– Vendeur dont le salaire est calculé comme un Commercial
– Représentant dont le salaire est calculé comme un Manutentionnaire
1. Implémenter ces deux classes et tester-les.
2. Il-y-t-il de la duplication de code entre Manutentionnaire et Représentant ? Si oui,
comment y remédier ?

PARTIE 3:
On souhaite créer de nouvelles classes dérivées d’Employé correspondant aux employés avec
prime de risque (un montant différent pour chaque employé qui est rajouté à la base de
salaire) : ManutentionnaireARisque et TechnicienARisque.
1. Comment éviter la duplication de code pour la gestion des primes de risque dans ces deux
classes ?
2. Implémenter ces deux classes et tester-les.

2
Université Mohammed I
Ecole Supérieure de Technologie d’Oujda
Département de Génie Informatique
Année universitaire 2022/2023
2ème année Informatique de Gestion

PARTIE 4:
On souhaite créer une classe Personnel contenant :
– Un tableau d’Employés.
– Une méthode embaucher() qui ajoute un employé
– Une méthode void licencie() qui supprime un employé donné en argument.
– Une méthode licencie() qui supprime tous les employés
– Une méthode afficher_salaires() qui affiche le salaire de tous les employés
– Une méthode salaire_moyen() qui calcule le salaire moyen des employés
– Un constructeur
1. Implémenter cette classe et tester-la.

Vous aimerez peut-être aussi