Vous êtes sur la page 1sur 2

EXAMEN TP

ECUE : Programmation Orientée Objets et Java Classe(s) :L2DSI3


Enseignante : Mme Cheikh.E Documents autorisés : Oui Non
Calculatrice autorisée : Oui Non
Date : 12/01/2021 Durée : 1h 30mn Nombre de pages : 2

Problème :
On désire programmer une application de gestion des épreuves de lancement de poids entre les
étudiants de toutes les villes de la Tunisie. Soit le diagramme de classes suivant :
Epreuve
- nomEpreuve : chaîne de caractères
- <<final>> RECORD_A_BATTRE= 17.12 mètres (réel)
<<interface>> - tabLanceur : ArrayList de Lanceur
IRésultat +constructeur ( )
+getInformation() : chaîne de caractères +LesLanceursBattantsRecord() : ArrayList de Lanceur
+résultatMeilleur(r : IRésultat) : booléen +changerResultat (Lanceur) : booléen
+afficherEpreuve( )

RésultatLancement

- distance : réel Lanceur


- dateRésultat : chaîne de caractères
+ constructeur( ) - numEtud : chaîne de caractères
+getDistance() : réel - nom : chaînes de caractères
- prénom : chaînes de caractères
- ville : chaîne de caractères
- résultatLanceur : RésultatLancement
+constructeur ( )
+setNom( chaîne de caractères)
+getRésultat() : ResultatLancement
+equals(o : Object) : booléen
+toString( ) : chaîne de caractères
Avec :
L’interface IResultat est l’interface que doit implémenter la classe ResultatLancement pour
donner les informations du résultat de chaque lanceur et vérifier pour deux résultats donnés
quel est le meilleur résultat.
Partie n°1 : (16 Points)
1. Écrire le code java de l’interface IResultat. (0.5 Point)
2. Écrire le code java de la classe ResultatLancement sachant que son constructeur initialise tous
les attributs par des valeurs passées en paramètres. (2 Points)
3. Écrire le code java de la classe Lanceur sachant que :
 constructeur ( ) : initialise les trois attributs numEtud, ville et résultatLanceur par des
valeurs passées en paramètres. (1 Point)
 setNom() : change le nom d’un lanceur et getResultat () : retourne le résultat de lancement
d’un lanceur. (0.5 Point)
 equals (o : Object) : vérifie si deux lanceurs sont identiques (c’est-à-dire ont le même
numEtud). (1 Point)

1
 toString() : retourne une description des attributs d’un lanceur(numEtud, nom, prénom,
ville, résultatLanceur) séparés par un espace. (1 Point)
4. Ecrire le code de la classe Epreuve caractérisée par son nomEpreuve, son
RECORD_A_BATTRE et un tableau qui mémorise tous les lanceurs qui ont participé à une
épreuve.
Les méthodes à définir sont :
 constructeur ( ) : initialise les deux attributs nomEpreuve et tabLanceur par des valeurs
passées en paramètres. (1 Point)
 LesLanceursBattantsRecord () : retourne un tableau des lanceurs qui ont battu le record.
(1.5 Points)
 changerResultat (Lanceur) : change le résultat d’un lanceur bien déterminé s’il existe
(2.5 Points)
 afficherEpreuve ( ) : affiche tous les attributs d’une épreuve (nomEpreuve, son record et
tous les lanceurs qui ont battu le record s’ils existent). (2 Points)

Partie n°2 : (4 Points)


5. Écrire le code de la classe Test réduite à une méthode main qui permet de :
 Créer les deux lanceurs suivants : (1.5 Points)
 Lanc1 (” 1”,”Toumi”, ” Tunis ”, (10.5,”5/5/2016”))
 Lanc2 (”9”, ”Benmoustfa”, ”Sousse ”, (18.1, ”6/5/2016”))

 Créer une Epreuve nommé EpreuveLance qui contient les deux lanceurs déjà citées ci-
dessus. (1 Point)

5. Soit le lanceur Lanc3 (”15”,”Tlili”,”Bizerte”, ( 16.7, ”5/5/2016”)) (1.5 Points)

Annexe

Dans le package java.util : ArrayList est une classe générique avec paramètre le type des
éléments
ArrayList<typeElem>()
//retourne la taille effectif du tableau int size()
//retourne l’élément d’indice i <typeElem> get(int i)
//ajoute e au tableau void add( <typeElem> e)

Exemple d’utilisation de ArrayList :

//déclaration d’un tableau de produits ArrayList<Produit> tabProduit ;


//dans le constructeur de stock
public stock()
{ tabProduit =new ArrayList<Produit>() ; }
//pour connaitre la taille du tableau
int n= tabProduit .size() ;
//pour accèder à un élément du tableau
Produit p= tabProduit .get(i) ;
//pour ajouter un élément au tableau
tabProduit .add(p) ;

Vous aimerez peut-être aussi