Révision de Gestion d'Agence de Location de Voitures

Programmation, Mathématiques, Gestion · course

Voir tous les documents en gestion et économie

Révision

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.

Q1. Compléter la classe Voiture ?

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.

Q2. Compléter la classe Client ?

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 ?

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 :

public interface Critere {

boolean estSatisfaitPar(Voiture v);

}

Q4. Compléter la classe CritereMarque (Choix selon la marque) ?

Q5. Compléter la classe CriterePrix (Choix selon le prix) ?

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.

Les fonctions standard pour la gestion de location de voiture sont :

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.

Q6. Compléter la classe Agence ?

Q7. Compléter la méthode qui effectue le tri selon le code du client ?

Q8. Compléter la méthode qui effectue le tri selon le nom du client ?

Remarque :

  • Vous avez, en annexe, quelques codes incomplets pouvant vous guidé à

implémenter les classes. S’il y a d’autres classes à développer n’hésitez pas à les

écrire.

2

Publicité

public class Voiture {

private int immariculation;

private String marque;

private float

public Voiture(int

prixLocation;

immariculation,

String marque, float prixLocation) {

// à compléter

}

public int getImmariculation() {

return immariculation;

}

public void setImmariculation(int

public class Client { private int

code; private

String nom;

private String

prenom;

public Client(int code, String

nom, String prenom) {

//à complèter

}

public int getCode() {

return code;

}

public void setCode(int code) {

this.code = code;

this.immariculation

}

immariculation) {

= immariculation;

}

public String getMarque() {

return marque;

}

public void setMarque(String marque) {

this.marque = marque;

}

public float getPrixLocation() {

return prixLocation;

}

public void setPrixLocation(float

this.prixLocation =

prixLocation) {

prixLocation;

}

public int hashCode() {

Publicité

//à completer

}

public boolean

equals(Object obj) {

//à completer

}

public String toString(){

//à completer

}

}

public String getNom() {

return nom;

}

public void setNom(String nom) {

this.nom = nom;

}

public String getPrenom() {

return prenom;

}

public void setPrenom(String

prenom) {

this.prenom = prenom;

}

public int hashCode() {

//à completer

}

public boolean equals(Object

obj) {

//à completer

}

public String toString(){

//à completer

}}

3

ss CritereMarque implements Critere {

private String marque; public

CritereMarque(String marque) {

this.marque = marque;

}

public boolean estSatisfaitPar(Voiture

v) {

// à compléter

}

}

public class CriterePrix implements

Critere { private float prix; public

CriterePrix(float prix) {

this.prix = prix;

Publicité

}

public boolean estSatisfaitPar(Voiture v) {

//à Compléter

}

}

4

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 class Agence {

private String nom; private ListVoitures

vs; private Map<Client, ListVoitures>

ClientVoitureLoue; public Agence(String nom)

{

//à completer

}

public void ajoutVoiture(Voiture v)

throws VoitureException{

// à completer

}

public void suppVoiture(Voiture

v)throws VoitureException{

//à completer

}

public void ajoutVoiture(Voiture v)

throws VoitureException{

public void loueClientVoiture(Client cl,

Voiture

//à compléter

}

public void

supprimeVoiture(Voiture v) throws

VoitureException{

// à compléter

}

public Iterator<Voiture>

Publicité

iterateur(){ return voitures.iterator();

}

public int size(){

return voitures.size();

}

public void affiche(){

// à completer

}

}

v)throws

VoitureException{

// à completer

}

public void retourClientVoiture(Client

cl , Voiture v) throws

VoitureException{

// à completer

}

public List<Voiture>

selectVoitureSelonCritere(Critere c){

//à completer

}

public Set<Client>

ensembleClientsLoueurs(){

// à completer

}

public Collection<ListVoitures>

collectionVoituresLouees(){

// à completer

}

public void

afficheLesClientsEtLeursListesVoitures(){

//à compléter

}

public Map<Client, ListVoitures>

triCodeCroissant(){

5

// à completer

}

public Map<Client, ListVoitures>

triNomCroissant(){

// à completer

}

}

6