Menu
Coddy logo textTech

Suppression de stock

Fait partie de la section Logique et Flux du Journey C++ de Coddy — leçon 33 sur 56.

challenge icon

Défi

Facile

Complétez votre système de suivi d'inventaire en implémentant la fonctionnalité permettant de retirer du stock des articles existants. Cette leçon démontre comment diminuer en toute sécurité les quantités d'inventaire tout en empêchant les niveaux de stock de descendre en dessous de zéro et en gérant les articles qui n'existent pas dans l'inventaire.

Commencez avec l'inventaire initial suivant :

  • apples : 50
  • bananas : 30
  • oranges : 25

Les entrées suivantes seront fournies :

  • Un entier n représentant le nombre d'opérations de retrait de stock à effectuer
  • Ensuite, n paires d'entrées :
    • Une chaîne de caractères représentant le nom de l'article
    • Un entier représentant la quantité à retirer

Votre programme doit :

  1. Commencer avec l'inventaire initial listé ci-dessus
  2. Lire le nombre d'opérations de retrait de stock
  3. Pour chaque opération, lire un nom d'article et la quantité à retirer
  4. Utiliser la méthode .count() pour vérifier si l'article existe dans la map d'inventaire
  5. Si l'article n'existe pas, afficher un message d'erreur
  6. Si l'article existe, vérifier si le retrait de la quantité rendrait le stock négatif
  7. Si le retrait entraînait un stock négatif, afficher un message d'erreur
  8. Si le retrait est valide, soustraire la quantité du stock actuel et afficher un message de confirmation
  9. Après toutes les opérations, afficher l'inventaire final montrant tous les articles et leurs quantités mises à jour

Utilisez le format de sortie exact suivant :

Pour un retrait de stock réussi :

Removed [quantity] [item_name]. New total: [new_total]

Pour les articles non trouvés :

Error: [item_name] not found in inventory

Pour un stock insuffisant :

Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stock

Inventaire final :

Final Inventory:\n[item1]: [quantity1]\n[item2]: [quantity2]\n[item3]: [quantity3]\n...

L'inventaire final doit être affiché par ordre alphabétique des noms d'articles. Utilisez inventory.count(itemName) pour vérifier si un article existe avant de tenter de retirer du stock. Ne soustrayez de l'inventaire que si l'article existe et que le stock actuel est supérieur ou égal à la quantité retirée. Utilisez inventory[itemName] -= quantity pour soustraire la quantité du stock existant.

Essayez vous-même

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main() {
    // Initialize inventory with existing items
    map<string, int> inventory;
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    inventory["grapes"] = 40;
    
    int n;
    cin >> n;
    
    for (int i = 0; i < n; i++) {
        string itemName;
        cin >> itemName;
        
        if (inventory.count(itemName)) {
            cout << itemName << ": " << inventory[itemName] << " in stock" << endl;
        } else {
            cout << itemName << ": Item not found" << endl;
        }
    }
    
    cout << "Total items in inventory: " << inventory.size() << endl;
    
    return 0;
}

Toutes les leçons de Logique et Flux