IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Agence de location


Sujet :

Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Agence de location
    Bonjour. Je suis un debutant en Java et je bloque sur un exercice donné par le prof, j'y ai passé deux jours successifs mais j'arrive même pas à debuter. Je vous serai gré de m'expliquer un peu cet exo

    Exercice: Une agence de location (rental agency en anglais) de voitures (car) offre à ses clients la possibilité de choisir
    voiture louée en fonction de différents critères. Les voitures sont définies par une marque (brand), un nom
    de modèle (model), une année de production (production year) et un prix de location à la journée (daily rental
    price
    ). Pour simplifier les deux premiers paramètres seront des objets de la classe String, le troisième sera de
    type int et le dernier de type double. Deux voitures sont considérées égales si tous leurs attributs sont égaux.
    La classe Car contiendra donc les propriétés suivantes :
    • String brand
    • String model
    • int productionYear
    • double dailyRentalPrice


    Elle contiendra aussi le constructeur :
    • public Car(String brand, String model, int productionYear, int dailyrentalPrice)


    ainsi que les méthodes :
    • public String brand()
    • public String model()
    • public int productionYear()
    • public double dailyRentalprice()
    • public boolean equals(o : Object)
    • public String toString()

    La classe RentalAgency contiendra une propriété List<Car> cars, un constructeur public RentalAgency() ainsi que les méthodes suivantes (pour le moment) :
    • public void add(Car car)
    • public void remove(Car car)
    • public boolean contains(Car car).

    On souhaite pouvoir sélectionner parmi les voitures à louer toutes les voitures satisfaisant un critère
    (criterion) donné. Programmez une méthode selectByBrand dans la classe RentalAgency dont le
    résultat est la liste des véhicules de l’agence dont la marque est la même que celle passée en paramètre
    de la méthode.
    1. -
    2. -
    3. -
    4. De la même façon programmez une méthode selectByMaxPrice de la classe RentalAgency dont le
      résultat est la liste des véhicules dont le prix de location à la journée est inférieure au prix passé en
      paramètre de la méthode.
    5. Comparez ces deux méthodes, qu’en pensez-vous ? Imaginez d’autres critères pouvant être sélectionnés.
    6. On veut maintenant définir la notion de critère de sélection pour les voitures. Un critère peut être satisfait
      par une voiture, cela signifie que le critère filtre (ou sélectionne) cette voiture. Définir une interface dans
      le but (futur) de généraliser les deux méthodes.
    7. On pourrait imaginer d’autres applications, où l’on veut filtrer des appartements, des ordinateurs, . . .
      Modifier l’interface pour la rendre générique. Cette interface existe en Java sous le nom Predicate<T>.
    8. Programmez une classe MaxPriceCriterion. Les instances de cette classe sont des critères imposant un
      prix maximum sur les voitures. Cette classe doit passer avec succès le test suivant :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      public class MaxPriceCriterionTest {
        @Test
        public void testIsSatisfied() {
          Predicate<Car> cheap = new MaxPriceCriterion(100);
          Car c90 = new Car("Tim","Oleon",2015,90);
          Car c120 = new Car("Tim","Oleon",2016,120);
          assertTrue(cheap.test(c90));
          assertFalse(cheap.test(c120));
        }
      }
      Ajoutez une méthode select dans la classe RentalAgency qui corresponde à :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      /**
      * return the list of cars of this agency that satisfy the specified
      * {@code criterion}. The returned cars are then << filtered >> by the criterion.
      *
      * @param criterion the criterion that the selected cars must satisfy
      * @return the list of cars of this agency that satisfy the given criterion
      */
      public List<Car> select(Predicate<Car> criterion)
      En supposant que RentalAgency agency a été initialisée, quelles instructions permettent d’afficher
      toutes les voitures de cette agence dont le prix est inférieur à 100 ?
    9. -
    10. On peut naturellement souhaiter faire des intersections de critères, ce qui revient à appliquer le et
      logique entre les critères. On obtient alors un nouveau critère qui est satisfait lorsque tous les critères qui
      le composent sont satisfaits. Définissez une classe InterCriterion qui permet de définir des critères par
      intersection de plusieurs critères. On donnera un constructeur prenant deux critères, et un constructeur
      prenant une collection de critères.
    11. Comment afficher maintenant toutes les voitures de marque “Tim” et de prix inférieur à 100 ?

    Ecrire une classe test pour tester toutes les méthodes

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 085
    Points : 8 004
    Points
    8 004
    Par défaut
    Qu'a tu déjà coder, et sur quoi bloque tu exactement ?

    (Penses à la mise en forme c'est presque illisible)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Désolé pour la mise en forme.
    Je bloque à partir du numero 4.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 085
    Points : 8 004
    Points
    8 004
    Par défaut
    Ok, montres nous ce que tu as déjà fait. Le point 4 étant déjà assumé résolu partielement par les éléments précédents celui-ci.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 104
    Points : 140
    Points
    140
    Par défaut
    Bonjour,
    Si le point "Programmez une méthode selectByBrand dans la classe RentalAgency dont le résultat est la liste des véhicules de l’agence dont la marque est la même que celle passée en paramètre de la méthode." a déjà été traité, le point "De la même façon programmez une méthode selectByMaxPrice de la classe RentalAgency dont le résultat est la liste des véhicules dont le prix de location à la journée est inférieure au prix passé en paramètre de la méthode." ne devrait poser aucune difficulté.
    Dans les deux cas, l'algorithme est le même. C'est uniquement l'information testée qui change : le prix de location à la journée au lieu de la marque.

Discussions similaires

  1. [MCD] Agence de location
    Par Geff's dans le forum Schéma
    Réponses: 40
    Dernier message: 17/07/2018, 20h14
  2. [MCD] Agence de location
    Par free_01_binairy dans le forum Schéma
    Réponses: 14
    Dernier message: 21/03/2017, 19h35
  3. diagramme cas d'utilisation d'une agence de location de voiture
    Par zaydouni dans le forum Cas d'utilisation
    Réponses: 1
    Dernier message: 22/04/2013, 12h08
  4. [Turbo Pascal] Fichiers/Enregistrements : gestion d'une agence de location de voitures
    Par Besoinaide dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 06/04/2013, 15h50
  5. cas d'utilisation: gestion d'une agence de location de voiture
    Par mitouti dans le forum Cas d'utilisation
    Réponses: 2
    Dernier message: 17/03/2010, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo