Initiation à la Programmation 2 (IP2) TP2
université PARIS . DIDEROT
PARIS 7
Exercice 1
1. Créer une classe Testcontenant le code suivant.
1 c l a s s T e s t {
3 p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { /* A C O M P L E T E R */
5 }
}
2. Créer une autre classeEtudiant contenant le code suivant.
c l a s s E t u d i a n t
2 {
f i n a l S t r i n g p r e n o m ; // le prenom ,
4 f i n a l S t r i n g nom ; // le nom et
d o u b l e n o te ; // la n o te de l ’ e t u d i a n t ( sur 2 0 ) .
s t a t i c int n o m b r e d E t u d i a n t s = 0; // le n o m b r e d ’ e t u d i a n t s d a n s la c l a s s e .
8 s t a t i c d o u b l e s o m m e D e s N o t e s = 0; // la s o m m e des n o t e s des e t u d i a n t s .
10 /* A C O M P L E T E R */
}
3. Que signifie les mots clefs static et final (Répondre dans un commentaire dans le fichier Test.java).
4. Ajouter à la classe Etudiantun constructeur Etudiant(String prenom, String nom, double note) qui
— initialise chacun des trois attributs (nom,prenom,note) avec l’argument approprié
— augmentenombredEtudiants de 1 et ajoute àsommeDesNotesla note de l’élève courant.
Tester le constructeur en ajoutant les lignes suivantes dans le mainde la classeTest.
1 E t u d i a n t v i c t o r = new E t u d i a n t ( " V i c t o r " , " M a r s a u l t " , 8 . 2 5 ) ; E t u d i a n t v i c t o r i a = new E t u d i a n t ( " V i c t o r i a " , " M a r c e a u " , 1 1 . 7 5 ) ;
3 S y s t e m . out . p r i n t l n ( " nb ␣ d ’ e t u d i a n t s : ␣ " + E t u d i a n t . n o m b r e d E t u d i a n t s );
// nb d ’ e t u d i a n t s : 2
5 S y s t e m . out . p r i n t l n ( " s o m m e ␣ des ␣ n o t e s : ␣ " + E t u d i a n t . s o m m e D e s N o t e s );
// s o m m e des n o t e s : 20
Créer un troisièmeEtudiantavec votre nom, votre prénom et la note 14.25 ; puis afficher à nouveau les variables statiques nombredEtudiants etsommeDesNotes.
5. Ajouter à la classe Etudiantune méthode void affiche() qui affiche les informations relative à l’élève courant (this)) sous le format "<nom> <prenom> : <note>".
Tester en ajoutant les lignes suivantes dans main.
v i c t o r . a f f i c h e (); // M a r s a u l t V i c t o r : 8 . 2 5
2 v i c t o r i a . a f f i c h e (); // M a r c e a u V i c t o r i a : 1 1 . 7 5
1
6. Ecrire une méthode boolean passage() qui renvoie true si l’élève peut passer dans la classe supérieure, c’est-à-dire si sa note est supérieure ou égale à 10.
Tester.
7. Ecrire une méthode static double moyenne() qui renvoie la moyenne de tous les élèves.
Tester.
8. Ecrire une méthode boolean meilleurQueLaMoyenne()qui renvoie truesi la note de l’élève est supérieure à la moyenne de la classe.
Tester.
9. Ajouter une méthode void modifieNote(double nouvelleNote)qui remplace l’ancienne note de l’élève par nouvelleNote. (Attention à ne pas oublier de modifier sommeDesNotes de façon adéquate.)
Tester, par exemple avec les lignes suivantes.
v i c t o r i a . m o d i f i e N o t e ( 1 9 . 5 ) ;
2 v i c t o r i a . a f f i c h e ();
// M a r c e a u V i c t o r i a : 1 9 . 5
4 S y s t e m . out . p r i n t l n ( " m o y e n n e : ␣ " + E t u d i a n t . m o y e n n e ( ) ) ; // m o y e n n e : 14
6 // [ Si la c l a s s e ne c o n t i e n t que Victor , V i c t o r i a et vous - m e m e .]
Exercice 2 (Facultatif)
1. Créer une nouvelle classe Trio comme suit.
c l a s s T r i o {
2 E t u d i a n t [] m e m b r e s ; /* A C O M P L E T E R */
4 }
2. Ajouter un constructeur Trio(Etudiant e1, Etudiant e2, Etudiant e3)qui initialise l’attri- but membres à un tableau de trois éléments contenant les troisEtudiantdonnés en argument.
Tester dans Testen créant un trio contenant victor, victoria et vous-même.
3. Ecrire une méthode Etudiant premier() qui renvoie l’élève du trio ayant la meilleure note.
Tester sur le trio créé à la question précédente ; la fonction doit renvoyer victoria.
4. Ajouter une méthode int classement(String prenom, String nom)qui renvoie le classement à l’intérieur du trio de l’élève dont les nom et prénom sont donnés en argument. S’il a la meilleure note du trio, renvoyer 1, s’il est deuxième renvoyer 2, etc. Si aucun élève du trio ne porte ces nom et prénom, renvoyer 0.
Tester.
5. Ajouter une méthode double moyenne() qui renvoie la moyenne des notes des membres du trio et une méthode boolean meilleurQueLaMoyenne() qui renvoie true si la moyenne du trio est supérieure à la moyenne de la classe.
Tester.
2