Enset de Mohammedia GLSID 2ème année / GLBDCC 2ème année
Examen en JAVA – partie 1
Exercice 1 :
Soit le diagramme de classe suivant :
Et soit le Programme suivant :
public class Program {
public static void main(String[] args) {
[Link]("Task1----------------------");
new EtudiantDB();
[Link]([Link](2));
[Link]("Task2----------------------");
new MatiereDB();
[Link]([Link](1));
[Link]("Task3----------------------");
Etudiant et1=[Link](1);
Etudiant et2=[Link](2);
Matiere mat1=[Link](1);
Matiere mat2=[Link](2);
Note note1=new Note(et1, mat1, 14);
Note note2=new Note(et1, mat2, 15);
Note note3=new Note(et2, mat1, 13);
Note note4=new Note(et2, mat2, 12);
[Link]("Task4----------------------");
NoteDB nbd=new NoteDB();
[Link](note1);
[Link](note2);
[Link](note3);
[Link](note4);
[Link](nbd);
}
1
}
Le constructeur de la classe EtudiantDB est le suivant :
public EtudiantDB(){
[Link](1, new Etudiant(1, "AA", "AAA"));
[Link](2, new Etudiant(1, "BB", "BBB"));
[Link](3, new Etudiant(1, "CC", "CCC"));
[Link](4, new Etudiant(1, "DD", "DDD"));
}
Le constructeur de la classe MatiereDB est le suivant :
public MatiereDB(){
[Link](new Matiere(1, "Java", 0.6));
[Link](new Matiere(2, "UML", 0.4));
Question 1 :
Sans modifier le code fourni,
Compléter l’implémentation de manière à se référer au diagramme de classes et
au Programme fourni pour obtenir le résultat suivant :
Question 2 :
Proposer une solution pour afficher le résultat par ordre décroissant de note.
2
Exercice 2 :
Soit le diagramme de classes suivant :
Soit la classe Program suivante ayant le main qui montre une utilisation du
diagramme ci-dessus
public class Program {
public static void main(String[] args) {
Calcul c=new Calcul();
[Link]([Link](1, 4, '*'));//1*2*3*4=24
[Link]([Link](2, 6, '+'));//2+3+4+5+6=20
[Link]([Link](4, 1, '*'));//1*2*3*4=24
[Link]([Link](6, 2, '+'));//2+3+4+5+6=20
}
}
1. Implémenter le diagramme de classes ci-dessus pour donner le même résultat montré en
commentaire
2. Implémenter la méthode doOperation(int a,int b) de Sum sachant qu’elle doit calculer la somme
des entiers entre a et b (a et b incluses)
3. Implémenter la méthode doOperation(int a,int b) de Multipliy sachant qu’elle doit calculer la
multiplication des entiers entre a et b (a et b incluses)
4. Le constructeur de la classe Context doit initialiser l’attribut Operation
5. Implémenter la méthode executeOperation(int a,int b) sachant qu’elle fait appel à doOperation(a,b)
sur la référence de Sum ou Multiply (selon l’opérateur)
6. Implémenter la méthode getResult(int a,int b,char c) de la classe Calcul qui fait appel à
executeOperation(int a,int b).
Si c=’+’ alors la méthode doOperation(a,b) de Sum qui sera exécutée et c=’*’ alors la méthode
doOperation(a,b) de Multiply qui sera exécuté.