Examen Java

ENIT · Programming · exam

Browse all programmation documents

Établissement : ENIT

Matière : Java

Année universitaire : 2016/2017

Enseignant : Mohamed Ramzi Haddad

Examen - Session principale

Classes : 2AINFO

Durée : 2h

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

Advertisement

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

Advertisement

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

Advertisement

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.

implémenter les méthodes dont les signatures ont été citées dans l’énoncé.

b.

c. Doter toute personne de la méthode toString qui retourne une chaine de caractères regroupant son

Advertisement

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 ;