Vous êtes sur la page 1sur 4

E.C.

POO Mme Cheikh Eya

TD1 : PROGRAMMATION ORIENTEE OBJET

EXERCICE 1

On se propose de gérer les stages des étudiants de l’ISET. Pour ce faire, on dispose déjà
de deux classes Etudiant et Date décrites comme suit :

Etudiant Date
- matricule : entier - jour : entier
- nom : chaîne de caractères - mois : entier
- prénom : chaîne de caractères - année : entier
- groupe : chaîne de caractères + constructeur (…..)
+ constructeur (….) +toString () : chaîne
+ toString () : chaîne +setJour(entier)
+ setNomPrenom(chaine,chaine) +setMois(enier)
+ setGroupe(chaine) +setAnnée(entier)
Avec Constructeur : permet d’initialiser tous les attributs(pour la classe Etudiant et Date)
toString () : une méthode qui retourne une chaîne de caractères et + publique et - privé

La classe Stage, que nous souhaitons implémenter en JAVA est décrite comme suit :

Stage
- numStage : entier
- nbStage : entier
- etud : Etudiant
- dateSoutenance : Date
- noteSoutenance : Réel
- noteRapport : Réel
+ entreprise : chaîne de caractères

+ constructeur (…..) (e : Etudiant, ns : réel, nr :réel, entreprise : chaîne de caractères)


+setDateSoutenance (Date)
+setResultat (noterapport, notesoutenance : réel)
+estValidé () : booléen
+affiche ()
- nbStage est un attribut statique
- Le constructeur de la classe Stage permet d’initialiser l’étudiant, l’entreprise
correspondante au stage, la note de soutenance, la note du rapport ainsi que le
numéro de stage qui doit être calculé pour refléter son ordre lors de la création.
- La méthode estValidé permet de vérifier si le stage est validé ou non. Un stage est
validé si et seulement si
la note de soutenance * 0.4 + la note du rapport *0.6 ≥ 10

1 L2-DSI/SEM/RSI Département Tech. Info ISET RADES


E.C. POO Mme Cheikh Eya

- La méthode affiche permet d’afficher les caractéristiques d’un stage (le numéro du
stage, l’étudiant, la date de soutenance, les notes de la soutenance et du rapport).

 Ecrire en JAVA la classe Stage en supposant l’existence des deux classes Etudiant
et Date.

EXERCICE 2
Créer la classe Personne

Personne
- nom: chaîne de caractères
- prénom: chaîne de caractères
- profession : chaîne de caractères
- âge :entier

+sePresenter( )

et terminer le programme suivant pour avoir le résultat attendu


class Test
{ public static void main(String [] args)
{ Personne [ ] TabPersonne=new Personne[3];
….
for (int i=0;i<3;i++)
{ ……
System.out.println(“Nom=”+……..);
}
}
}
Résultat de l’exécution:
Nom= Besbes, Prénom= Ahmed
Nom= Ben zekri, Prénom= Sami
Nom= Torjmen, Prénom= Fahd

EXERCICE 3
Pour la classe « Jeux » définie comme suit :

2 L2-DSI/SEM/RSI Département Tech. Info ISET RADES


E.C. POO Mme Cheikh Eya

class Jeux {
public static int nombre;
public int nb;
public Jeux(int i) {nombre++;
nb=nombre+i;}}
Qu’affichera le code suivant ?
Jeux j1=new Jeux(1);
Jeux j2=new Jeux(0);
Jeux j= j2;
System.out.println(j.nombre + “ et “ + j.nb);

Exercice 4
On désire programmer une application de gestion des compétitions de course 1000 mètres entre
les étudiants de l’ISET. Cette compétition se passe une fois par année. Pour ce faire, on dispose
de la classe Etud_Coureur suivante :
Etud_Coureur
- numEtud : entier
- <<static>> nombre : entier
- nomPrénom : chaine de caractères
- aDéjaParticipé : booléen
- durée : entier
+ constructeur (…)
+ getDurée() : entier
+ setDurée(entier)
+ getParticipé() : booléen
+ setParticipé(booléen)
+ comparer(Etud_Coureur) : booléen
+ toString() : chaîne de caractères

Et on souhaite définir la classe Compétition suivante :

Compétition
- désignationComp : chaine de caractères
- dateComp : chaîne de caractères
- <<final>> RECORD_A_BATTRE =132 secondes (entier)
- tabEtud : tableau de 20 étudiants coureurs
- nombreCoureur : entier
+ constructeur(….)
+ ajouterCoureur() : booléen
+ getRecord() : entier
+ getMedailleOr() : Etud_Coureur
+ recordBattu() : booléen
+ afficher()

3 L2-DSI/SEM/RSI Département Tech. Info ISET RADES


E.C. POO Mme Cheikh Eya

NB : + : publique, – : privé.

Question n°1 :
Écrire le code Java de la classe Etud_Coureur, sachant que :
 constructeur : permet d’initialiser tous les attributs par des valeurs passées en
paramètres sauf les attributs numEtud qui doit être calculé pour refléter son ordre lors
de la création, l’attribut aDéjaParticipé à false et l’attribut durée à 0.
 getParticipé() : retourne si l’étudiant coureur a déjà participé à une autre compétition.

 comparer(Etud_Coureur) : permet de vérifier si un étudiant coureur donné est plus


rapide qu’un autre.

 toString() : retourne les attributs numEtud, nomPrénom et la durée s’il a déjà participé
à une compétition et numEtud et nomPrénom s’il participe pour la première fois.

Question n°2 :
Écrire le code Java de la classe Compétition, sachant que :
 RECORD_A_BATTRE : représente la durée record à atteindre.
 nombreCoureur : représente le nombre de coureurs qui ont effectivement participé à
la compétition.
 constructeur : initialise les deux attributs désignationComp et dateComp par des valeurs
passées en paramètres.
 ajouterCoureur(e : Etud_Coureur) : ajoute un étudiant au tableau tabEtud que s’il n’a
pas déjà participé à une compétition antérieure. Si c’est le cas ce dernier va devenir
alors parmi les participants à la compétition.
 getMedailleOr() : retourne l’étudiant coureur qui a gagné.
 recordBattu() : vérifie si le vainqueur a déjà battu le record.
 afficher() : affiche la désignation de la compétition, la date de la compétition,
l’étudiant coureur qui a emporté la médaille et s’il a battu le record.
Question n°3 :
Créer une classe Test réduite à une méthode main dans laquelle :
 on crée la compétition ISET2015 qui s’est déroulée le 12/11/2015.
 on ajoute 20 objets Etud_Coureur dont les attributs sont saisis au clavier.
 on affiche le résultat de la compétition.

4 L2-DSI/SEM/RSI Département Tech. Info ISET RADES

Vous aimerez peut-être aussi