Atelier 3 : Système de Gestion d'Inventaire avec Classes
Objectif
Créer un système de gestion d'inventaire qui utilise les classes, les tableaux d'objets et les constructeurs. Cet atelier met l'emphase sur la création et la manipulation de classes, tout en réutilisant les concepts de tableaux vus précédemment.
Contexte
Vous devez développer un programme Java qui simule un système d'inventaire pour un magasin d'électronique. Le programme doit permettre de :
- Créer des produits avec leurs caractéristiques
- Stocker plusieurs produits dans un tableau
- Afficher l'inventaire complet
- Rechercher des produits
- Calculer la valeur totale de l'inventaire
Partie 1 : Création de la Classe Produit
Créez une classe Produit qui représente un article en inventaire.
Attributs requis :
String nom- Le nom du produitString categorie- La catégorie (ex: "Ordinateur", "Téléphone", "Accessoire")double prix- Le prix unitaireint quantite- La quantité en stockString code- Un code unique (ex: "ORD001", "TEL002")
Constructeur
Créez un constructeur qui initialise tous les attributs :
public Produit(String code, String nom, String categorie, double prix, int quantite) {
this.code = code;
this.nom = nom;
this.categorie = categorie;
this.prix = prix;
this.quantite = quantite;
}
Méthodes à implémenter
-
afficherInfo()- Affiche toutes les informations du produit de façon formatée[ORD001] Ordinateur portable Dell (Ordinateur)Prix: 899.99$ | Quantité: 15 | Valeur: 13499.85$ -
calculerValeurStock()- Retourne la valeur totale de ce produit en stock (prix × quantité) -
estEnRupture()- Retournetruesi la quantité est 0,falsesinon -
ajouterStock(int quantiteAjoutee)- Ajoute la quantité spécifiée au stock -
retirerStock(int quantiteRetiree)- Retire la quantité spécifiée du stock (si suffisante)
Partie 2 : Tableau d'Objets Produit
Dans votre classe Main, créez un tableau pour stocker plusieurs produits.
2.1 Déclaration et création du tableau
public class Main {
public static void main(String[] args) {
// Créer un tableau de 5 produits
Produit[] inventaire = new Produit[5];
// Créer et stocker les produits
inventaire[0] = new Produit("ORD001", "Ordinateur portable Dell", "Ordinateur", 899.99, 15);
inventaire[1] = new Produit("TEL001", "iPhone 15 Pro", "Téléphone", 1299.99, 8);
inventaire[2] = new Produit("ACC001", "Souris sans fil Logitech", "Accessoire", 49.99, 32);
inventaire[3] = new Produit("ORD002", "MacBook Air M2", "Ordinateur", 1499.99, 5);
inventaire[4] = new Produit("ACC002", "Clavier mécanique RGB", "Accessoire", 129.99, 0);
}
}
2.2 Parcourir le tableau avec une boucle for
Créez une méthode afficherInventaire(Produit[] inventaire) qui parcourt le tableau et affiche chaque produit :
Partie 3 : Méthodes de Recherche et Statistiques
3.1 Rechercher un produit par code
Créez une méthode qui recherche un produit dans le tableau par son code :
/**
* Recherche un produit dans l'inventaire par son code.
*
* @param inventaire Le tableau de produits
* @param code Le code du produit recherché
* @return Le produit trouvé, ou null si non trouvé
*/
public Produit rechercherParCode(String code) {
// Votre code ici
// Parcourir le tableau et comparer les codes
// Retourner le produit si trouvé, null sinon
}
3.2 Calculer la valeur totale de l'inventaire
Créez une méthode qui calcule la valeur totale de tous les produits :
/**
* Calcule la valeur totale de l'inventaire.
*
* @param inventaire Le tableau de produits
* @return La somme des valeurs de tous les produits
*/
public double calculerValeurTotale(Produit[] inventaire) {
// Votre code ici
// Utiliser une boucle pour additionner calculerValeurStock() de chaque produit
}
3.3 Lister les produits en rupture de stock
Créez une méthode qui affiche tous les produits dont la quantité est 0 :
/**
* Affiche tous les produits en rupture de stock.
*
* @param inventaire Le tableau de produits
*/
public void afficherRupturesStock() {
System.out.println("=== PRODUITS EN RUPTURE ===");
// Votre code ici
// Parcourir et afficher uniquement si estEnRupture() retourne true
}
3.4 Compter les produits par catégorie
Créez une méthode qui compte combien de produits appartiennent à une catégorie donnée :
/**
* Compte le nombre de produits d'une catégorie donnée.
*
* @param inventaire Le tableau de produits
* @param categorie La catégorie à rechercher
* @return Le nombre de produits dans cette catégorie
*/
public int compterParCategorie(Produit[] inventaire, String categorie) {
// Votre code ici
}
Partie 4 : Menu Interactif (Optionnel - Bonus)
Créez un menu permettant à l'utilisateur d'interagir avec l'inventaire :
========== MENU INVENTAIRE ==========
1. Afficher tout l'inventaire
2. Rechercher un produit par code
3. Afficher la valeur totale
4. Afficher les ruptures de stock
5. Ajouter du stock à un produit
6. Retirer du stock d'un produit
7. Ajouter un nouveau produit
8. Retirer un produit
9. Compter les produits par catégorie
0. Quitter
=====================================
Votre choix :
Utilisez :
- Une boucle
whilepour répéter le menu - Un
switchpour gérer les choix - Un
Scannerpour lire les entrées utilisateur
Exemple de Sortie Attendue
========== INVENTAIRE ==========
[ORD001] Ordinateur portable Dell (Ordinateur)
Prix: 899.99$ | Quantité: 15 | Valeur: 13499.85$
--------------------------------
[TEL001] iPhone 15 Pro (Téléphone)
Prix: 1299.99$ | Quantité: 8 | Valeur: 10399.92$
--------------------------------
[ACC001] Souris sans fil Logitech (Accessoire)
Prix: 49.99$ | Quantité: 32 | Valeur: 1599.68$
--------------------------------
[ORD002] MacBook Air M2 (Ordinateur)
Prix: 1499.99$ | Quantité: 5 | Valeur: 7499.95$
--------------------------------
[ACC002] Clavier mécanique RGB (Accessoire)
Prix: 129.99$ | Quantité: 0 | Valeur: 0.00$
--------------------------------
Valeur totale de l'inventaire: 32999.40$
=== PRODUITS EN RUPTURE ===
[ACC002] Clavier mécanique RGB (Accessoire)
Prix: 129.99$ | Quantité: 0 | Valeur: 0.00$
Recherche du produit "TEL001":
[TEL001] iPhone 15 Pro (Téléphone)
Prix: 1299.99$ | Quantité: 8 | Valeur: 10399.92$
Nombre de produits dans la catégorie "Ordinateur": 2