Établissement : ENIT Examen - Session principale
Matière : Java Classes : 2AINFO
Année universitaire : 2016/2017 Durée : 2h
Enseignant : Mohamed Ramzi Haddad Nombre de pages: 1
Problème :
On se propose de développer un programme qui gère les équipes de football. Chaque équipe a un nom et regroupe
un ensemble de personnes identifiées par leurs CINs. Chaque personne peut être :
Un Joueur : est un sportif caractérisé par un nom, le fait qu’il a joué ou non dans une équipe nationale (booléen) et
le fait qu'il est blessé ou non (booléen). Chaque joueur a une qualité de jeu dont la valeur est initialisée à 50 lors de
sa création. Les joueurs sont les seules personnes qui peuvent jouer un match (void jouerUnMatch()) et
augmenter ainsi leurs qualités de jeu de 5%. Un joueur est aussi la seule personne capable de s'entrainer (void
sentrainer()), ce qui augmente sa qualité de jeu de 2% s’il n'est pas blessé. Les joueurs sont comparables entre
eux sur la base de leurs qualités de jeu et leurs états. Pour cela, nous considérons que les joueurs non blessés sont
supérieurs à ceux qui le sont et que plus la valeur de la qualité de jeu est grande, plus le joueur est supérieur.
Un entraineur : est aussi un sportif décrit par un nom et le fait qu’il a joué ou non dans une équipe nationale. Il est
capable d’entrainer des joueurs (void entrainer(CollectionDeJoueurs)). Il est aussi un sélectionneur
capable de sélectionner et de retourner, parmi un ensemble de joueurs passé comme paramètre, les onze meilleurs
sur la base de leurs qualités de jeu et leurs états (i.e. selon le critère de comparaison déjà défini). Pour cela, comme
tout sélectionneur, il devrait proposer la méthode:
CollectionDeJoueurs selectionner(CollectionDeJoueurs).
Un médecin : est un personnel médical caractérisé par un nom et un diplôme, capable de masser les joueurs (void
masser(Joueur)) afin d'augmenter leurs qualités de jeu de 1% s’il ne sont pas blessés. Le médecin est aussi
capable de soigner les joueurs (void soigner(Joueur)) et éliminer ainsi leurs blessures. Similairement à
l'entraineur, le médecin est aussi un sélectionneur. Cependant, il sélectionne tous les joueurs qui sont capables de
jouer un match (non blessés) parmi ceux passés comme paramètre.
Un kinésithérapeute : a les mêmes caractéristiques qu’un médecin, mais ne peut que masser les joueurs (void
masser(Joueur)) de la même manière que le médecin.
Travail demandé :
1. Développer les entités sus-décrites (soulignées) tout en respectant les principes de la POO et en utilisant les
moyens proposés par Java pour avoir un code robuste (encapsulation, polymorphisme, non redondance des
attributs et des traitements, généricité, extensibilité et réutilisabilité). En plus, veiller à :
a. ne proposer que des constructeurs paramétrés pour les classes à proposer et supposer que tous les
accesseurs et les mutateurs sont fournis.
b. implémenter les méthodes dont les signatures ont été citées dans l’énoncé.
c. Doter toute personne de la méthode toString qui retourne une chaine de caractères regroupant son
cin, son nom ainsi que son rôle dans l'équipe.
2. Développer la classe Equipe et sa méthode toString qui retourne le nom de l'équipe ainsi que les
représentations textuelles de ses personnes (retournées par leurs propres toString).
3. Comment peut-on représenter en un seul attribut une réunion de sélectionneurs.
4. On voudrait doter la classe Equipe des méthodes nécessaires pour pouvoir ajouter ou supprimer une
personne. Expliquer brièvement le code à rajouter pour atteindre cet objectif sachant que ces méthodes se
basent sur le CIN de la personne pour déterminer si elle devrait être ajoutée ou supprimée.
Examen Java Bonne chance ;