Académique Documents
Professionnel Documents
Culture Documents
Exercice 1 :
Nous souhaitons réaliser une solution de gestion d’une agence de location de Voitures. Les
classes principales de ce programme sont : la classe Voiture, la classe Client et la classe
Agence. On vous propose quelques codes incomplets pouvant vous guider à implémenter
les classes. S’il y a d’autres classes à développer n’hésitez pas à les écrire.
Une voiture est caractérisée par son immatriculation, sa marque et son prix. Deux voitures
sont égales s’ils ont la même immatriculation et la même marque.
Un client est caractérisé par un code, un nom et un prénom. Deux clients sont égaux s’ils ont
le même code.
Cette agence a mis à la disposition de ces clients la possibilité de louer plusieurs voitures,
pour cela on a créé une classe ListVoitures qui permet de stocker un ensemble de voiture
dans une liste. Cette classe permet d’ajouter, de supprimer une voiture et d’afficher la liste
des voitures.
Q3. Compléter la classe ListVoitures ? (8 points)
public class ListVoitures {
private List<Voiture> voitures;
public ListVoitures(List<Voiture> voitures) {
//à compléter
}
public ListVoitures() {
//à compléter
}
public List<Voiture> getVoitures() {
//à compléter
}
public void setVoitures(List<Voiture> voitures) {
//à compléter
}
public void ajoutVoiture(Voiture v) throws VoitureException{
// à compléter en tenant compte de l’exception qui affiche un message lorsque la voiture à
//ajouter existe déjà
}
public void supprimeVoiture(Voiture v) throws VoitureException{
// à compléter en tenant compte de l’exception qui affiche un message lorsque la voiture à
//supprimer n’existe pas
}
public Iterator<Voiture> iterateur(){
return voitures.iterator();
}
public int size(){
return voitures.size();
}
public void affiche(){
// à completer
}
}
On définit l’exception VoitureException comme suit :
Cette agence offre à ces clients la possibilité de choisir les voitures à louer en fonction de
différents critères. Il est possible de sélectionner dans la liste des voitures à louer toutes les
voitures satisfaisant un critère donné. On définit l’interface Critère ainsi :
Une agence est caractérisée par un nom, un parking de type ListVoiture qui permet
d'enregistrer les voitures de l'agence de location et un ClientVoitureLoue de type Map (la
partie clé est Client, la partie valeur est ListVoitures) qui permet d'enregistrer pour chaque
client la liste des voitures actuellement louées.
Exercice 2 : (6 points)
Examinez attentivement le code Java suivant. Certaines lignes provoquent une erreur.
1. class A
2. {
3. protected void affiche() {
4. System.out.println(this) ;
5. }
6. public void a() {
7. System.out.print("a de A dans ");
8. affiche();
9. }
10. public void b() {
11. System.out.print("b de A dans ");
12. affiche() ;
13. }
14. }
15. class B extends A
16. {
17. public void b() {
18. super();
19. System.out.print("b de B dans ") ;
20. affiche();
21. }
22. public void c() {
23. super.c();
24. System.out.print("c de B dans ") ;
25. affiche();
26. }
27. }
28. public class Exercice
29. {
30. public static void main(String[] args) {
31. A a1 = new A();
32. A b1 = new B();
33. B a2 = new A();
34. B b2 = new B();
35. a1.a();
36. b1.a();
37. a2.a();
38. b2.a();
39. a1.b();
40. b1.b();
41. a2.b();
42. b2.b();
43. a1.c();
44. b1.c();
45. a2.c();
46. b2.c();
47. ((B) a1).c();
48. ((B) b1).c();
49. ((B) a2).c();
50. ((B) b2).c();
51. }
52. }
Six erreurs ont été détectées dans ce programme. Donnez une explication pour chaque
erreur en indiquant si l'erreur se produit à l'exécution ou à la compilation
Bon travail