TP8 : Gestion des commandes dans une épicerie en ligne
Objectifs
Ce TP a pour but de développer une application Java pour gérer les commandes d'une
épicerie en ligne. Vous utiliserez des concepts avancés de programmation, notamment :
1. Programmation Orientée Objet (POO) : Modélisation des produits, clients et
commandes.
2. Streams et lambdas : Pour trier, filtrer, et effectuer des opérations sur les collections
de données.
3. Gestion des exceptions : Pour gérer les erreurs de commandes.
4. JavaFX : Pour créer une interface utilisateur.
Fonctionnalités
1. Gestion des produits : Ajouter, rechercher et afficher les produits disponibles dans
l'épicerie.
2. Gestion des clients : Ajouter et afficher les informations des clients.
3. Gestion des commandes :
o Permettre aux clients de passer des commandes en sélectionnant les
produits.
o Calculer le montant total de la commande.
4. Utilisation de Streams et Lambdas :
o Trier les produits par prix ou par nom.
o Filtrer les produits disponibles en fonction de critères spécifiques (exemple :
prix inférieur à une certaine valeur).
o Calculer les statistiques sur les commandes (exemple : total des ventes,
produit le plus vendu).
5. Interface graphique avec JavaFX :
o Afficher la liste des produits et des commandes.
o Formulaire pour ajouter des clients et passer des commandes.
1
Partie 1 : Modélisation des classes de base
1. Classe Produit
o Attributs :
nom
prix
quantiteEnStock
o Méthodes :
reduction(double pourcentage) : Applique une réduction sur le prix du
produit.
disponible() : Retourne true si le produit est en stock.
2. Classe Client
o Attributs :
nom
email
3. Classe Commande
o Attributs :
client (instance de la classe Client)
produitsCommandes (liste de produits commandés avec les quantités)
montantTotal (calculé automatiquement)
4. Classe Epicerie
o Contient les listes de produits, clients, et commandes.
o Méthodes pour :
Ajouter un produit.
Passer une commande.
Calculer les statistiques sur les commandes (ex : total des ventes,
client le plus actif).
Partie 2 : Utilisation de Streams et Lambdas
Ajoutez les fonctionnalités suivantes à l’application à l’aide de Streams et Lambdas :
1. Tri des produits :
2
o Par prix croissant ou décroissant.
o Par nom alphabétique.
2. Filtrage des produits :
o Afficher uniquement les produits en stock.
o Afficher les produits avec un prix inférieur à une valeur donnée.
3. Statistiques sur les commandes :
o Total des ventes réalisées.
o Produit le plus vendu.
o Client ayant passé le plus de commandes.
4. Manipulation des collections :
o Regrouper les produits par catégorie.
o Calculer le stock total disponible.
Partie 3 : Interface graphique avec JavaFX
1. Gestion des produits :
o Créez un formulaire pour ajouter des produits.
o Affichez la liste des produits dans une table avec des colonnes pour le nom, le
prix et la quantité en stock.
o Ajoutez un champ pour filtrer les produits (par exemple, afficher uniquement
les produits en stock).
2. Gestion des clients :
o Créez un formulaire pour ajouter des clients.
o Affichez la liste des clients avec leurs noms et emails.
3. Statistiques :
o Ajoutez une section affichant les statistiques calculées avec les Streams (ex :
total des ventes, produit le plus vendu)