Revision PDF
Revision PDF
Revision PDF
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.
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.
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.
1
- louer une voiture à un client.
- retourner une voiture louée par un client,
- retourner la liste des voitures selon un critère défini
- retourner l’ensemble des clients qui ont loué une (des) voiture(s)
- retourner la liste des voitures actuellement en état de location - afficher les clients
et leurs voitures louées.
Remarque :
2
public class Voiture { public class Client { private int
private int immariculation; code; private
String nom;
private String marque; private float private String
prenom;
prixLocation; public Voiture(int public Client(int code, String
immariculation, nom, String prenom) {
String marque, float prixLocation) { //à complèter
// à compléter }
}
public int getImmariculation() { public int getCode() {
return code;
return immariculation; }
} public void setCode(int code) {
public void setImmariculation(int this.code = code;
immariculation) { this.immariculation }
= immariculation; public String getNom() {
} return nom;
public String getMarque() { }
return marque; public void setNom(String nom) {
} this.nom = nom;
public void setMarque(String marque) { }
public String getPrenom() {
this.marque = marque; return prenom;
} }
public void setPrenom(String
public float getPrixLocation() {
prenom) {
return prixLocation;
this.prenom = prenom;
}
}
public void setPrixLocation(float
public int hashCode() {
prixLocation) { this.prixLocation =
//à completer
prixLocation;
}
public boolean equals(Object
}
obj) {
public int hashCode() {
//à completer
//à completer
}
}
public String toString(){
public boolean
//à completer
equals(Object obj) {
}}
//à completer
}
public String toString(){
//à completer
}
}
3
ss CritereMarque implements Critere { public class CriterePrix implements
private String marque; public Critere { private float prix; public
CritereMarque(String marque) { CriterePrix(float prix) {
this.marque = marque; this.prix = prix;
} }
public boolean estSatisfaitPar(Voiture public boolean estSatisfaitPar(Voiture v) {
v) { //à Compléter
// à compléter }
} }
}
4
public class ListVoitures { public class Agence {
private List<Voiture> voitures; public private String nom; private ListVoitures
ListVoitures(List<Voiture> voitures) { vs; private Map<Client, ListVoitures>
//à compléter
ClientVoitureLoue; public Agence(String nom)
}
{
public ListVoitures() {
//à completer
//à compléter
}
}
public void ajoutVoiture(Voiture v)
public List<Voiture> getVoitures() { throws VoitureException{
//à compléter // à completer
} }
public void setVoitures(List<Voiture> public void suppVoiture(Voiture
voitures) { v)throws VoitureException{
//à compléter //à completer
} }
5
// à completer
}
public Map<Client, ListVoitures>
triNomCroissant(){
// à completer
}
}