Vous êtes sur la page 1sur 4

‫اﻟﻤﺪرﺳﺔ اﻟﻌﻠﯿﺎ اﻟﺪوﻟﯿﺔ اﻟﺨﺎﺻﺔ ﻟﻠﺘﻜﻨﻮﻟﻮﺟﯿﺎ ﺑﺼﻔﺎﻗﺲ‬

Institut International de Technologie à Sfax

Examen session Principale Année universitaire 2017-2018


Niveau d'Etude: 1 ère année

Filière : Génie Informatique Date : 16/05/2018


Matière: Programmation Orientée Objet Durée: 2 h
Nombres de pages: 3 Documents : Autorisés
Enseignant responsable: Saïd TAKTAK Non Autorisés

Exercice 1 (7 pts)
Vous allez gérer les comptes utilisateurs d’un réseau social tel que Facebook (FB).
Un utilisateur est caractérisé par :
- Adresse email (String) qui permet d’identifier de façon unique chaque utilisateur
- Amis : un tableau d’utilisateur de taille max égale à 100.
- Nbre_Amis (int)
Pour des raisons de simplification, nous nous limitions à ces 3 attributs de visibilité « public ».

Définir la class Utilisateur qui contient les méthodes suivantes


- Un constricteur qui initialise tous les attributs de la classe.
- ajouter_ami( ) : permet d’ajouter un utilisateur passé en paramètre à la liste des amis de l’utilisateur
courant.
- sont_des_amis( ) : prend en paramètre deux utilisateurs et retourne true si les deux utilisateurs sont des
amis et false sinon. NB : deux utilisateurs A et B sont considérés comme amis si seulement si
l’utilisateur A appartient à la liste des amis de l’utilisateur B et l’utilisateur B appartient à la liste des
amis de l’utilisateur A.
- amis_en_commun( ): prend en paramètre un utilisateur et retourne le nombre d’amis en commun avec
l’utilisateur courant.
- ami_le_plus_proche( ): retourne l’utilisateur (appartenant à liste des amis (c’est-à-dire les amis de rand
1 pour l’utilisateur courant ) et des amis des amis de l’utilisateur courant (c’est-à-dire les amis de rand
2 pour l’utilisateur courant )) et qui a le plus d’amis en commun avec l’utilisateur courant.

Exercice 2 (13 pts) employée : classe abstraite car ces attribut ne sont pas des attribut statique

Vous allez programmer le calcul des salaires hebdomadaires des employés d'une entreprise.
Un employé est caractérisé par son nom et son âge. Nous distinguons différentes catégories d’employées :

- Des employés (ouvriers) qui sont payés suivant le nombre d'heures qu'ils ont travaillé dans la semaine.
Ils sont payés à un certain tarif horaire et leurs heures supplémentaires (au-delà de 39 heures) sont payées
30 % de plus que les heures normales.
- Des employés (commerciaux) sont payés avec une somme fixe à laquelle on ajoute 1 % du chiffre
d'affaires qu'ils ont fait dans la semaine.

-1-
Employés

1) Employe est une Interface ou classe Abstraite ou classe concrète (c’est-à-dire non abstraite) ?

Expliquez votre choix

2) codez la (classe ou Interface) Employe dotée :

• des attributs nécessaires,


• d'une méthode calculerSalaire retournant le salaire d’un employé
• d'une méthode toString retournant une chaine de caractère qui présente les caractéristiques d’un
employé.
• d'un constructeur prenant en paramètre l'ensemble des attributs nécessaires. . Ce constructeur lève une
exception AgeException (si l’âge de l’employé est inférieur à 18 ans).

3) Code la classe d’exception AgeException qui contient


• L’attribut âge (entier)
• Un constructeur qui initialise l’attribut âge
• Une méthode toString() qui affiche un message d’erreur indiquant l’âge de l’employé.

4) Codez les classes des différents types d’employés (EmployeOuvrier, EmployéCommercial) en


respectant les conditions suivantes :

• Chaque classe doit contenir les attributs qui leur sont spécifiques ainsi que le codage approprié des
méthodes calculerSalaire et toString (en ajoutant la définition des attributs spécifique pour chaque
classe ainsi que le salaire de l’employé).
• Chaque sous-classe est dotée de constructeur prenant en argument l'ensemble des attributs nécessaires.
• Les attributs ne doivent pas être publics.

Employés à risque

Certains employés du secteur ouvrier sont appelés à fabriquer et manipuler des produits dangereux. Après
plusieurs négociations syndicales, ces derniers parviennent à adhérer à la catégorie des employés à risque et
bénéficier ainsi d’une prime de risque hebdomadaire.

5) Ajouter à votre programme une interface pour les employés à risque (EmployéRisque) contenant une
méthode calculerPrime permettant d’associer une prime mensuelle à un employé. Cette prime vaut le
nombre d’heures de travail multipliées par 0,5 dinars.
6) Réécrire la classe EmployéOuvrier qui doit contenir le codage approprié de la méthode calculerPrime
et la méthode calculerSalaire (où on va ajouter la prime au salaire initial)

Personnel

Satisfait de la hiérarchie proposée, notre directeur souhaite maintenant l'exploiter pour afficher le salaire de tous
ses employés ainsi que le salaire moyen.
‫اﻟﻤﺪرﺳﺔ اﻟﻌﻠﯿﺎ اﻟﺪوﻟﯿﺔ اﻟﺨﺎﺻﺔ ﻟﻠﺘﻜﻨﻮﻟﻮﺟﯿﺎ ﺑﺼﻔﺎﻗﺲ‬
Institut International de Technologie à Sfax

Examen session Principale Année universitaire 2017-2018


Niveau d'Etude: 1 ère année

Filière : Génie Informatique Date : 16/05/2018


Matière: Programmation Orientée Objet Durée: 2 h
Nombres de pages: 3 Documents : Autorisés
Enseignant responsable: Saïd TAKTAK Non Autorisés

7) Ajoutez une classe Personnel contenant un tableau d'employés (tabEmp[]) de taille maximale 100 ainsi
que le nombre d’employés (initialisé à 0). Définissez le constructeur de la classe Personnel et les
méthodes suivantes :

• void ajouterEmploye(Employe e) qui ajoute un employé « e » au tableau.

• void ListerEmploye()qui affiche une description de chaque employé ainsi que son type (Employé :
ouvrier, ou commercial).

• double salaireMoyen() qui affiche le salaire moyen de tous les employés

8) Définissez la classe Test qui contient la méthode main() :

• Créez une instance de la classe Personnel et deux employés de type différents

• Ajoutez ces employés au personnel

• Afficher la liste des employés ainsi que la moyenne des salaires.

-1-

Vous aimerez peut-être aussi