Menu
Coddy logo textTech

Récapitulatif - Mise à jour de l'inventaire

Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 32 sur 65.

challenge icon

Défi

Facile

Créez un programme qui gère un système d'inventaire d'entrepôt en suivant les niveaux de stock des produits, en vérifiant les articles existants, en ajoutant de nouveaux produits en toute sécurité et en mettant à jour les quantités. Votre programme doit :

  1. Lire une entrée de type chaîne de caractères représentant le nom de l'entrepôt
  2. Lire plusieurs paires d'entrées représentant les noms des produits et leurs quantités de stock actuelles (l'entrée se terminera lorsque vous recevrez "inventory_done")
  3. Lire une entrée de type chaîne de caractères représentant un produit dont il faut vérifier l'existence
  4. Lire une entrée de type chaîne de caractères représentant un nouveau produit à ajouter avec un stock par défaut
  5. Lire une entrée de type chaîne de caractères représentant un produit à réapprovisionner
  6. Lire une entrée de type chaîne de caractères représentant la quantité supplémentaire à ajouter au produit réapprovisionné
  7. Créer une Map pour stocker les noms des produits comme clés et leurs quantités de stock comme valeurs
  8. Utiliser containsKey() pour vérifier si le produit spécifié existe dans l'inventaire
  9. Utiliser putIfAbsent() pour ajouter le nouveau produit avec un stock par défaut de 50 unités
  10. Mettre à jour la quantité de stock du produit réapprovisionné en ajoutant la quantité supplémentaire
  11. Afficher le rapport de gestion de l'inventaire exactement au format indiqué ci-dessous

Par exemple, si le nom de l'entrepôt est "Central Warehouse", que l'inventaire comprend "Laptops" avec 25 unités, "Mice" avec 150 unités, "Keyboards" avec 75 unités, que le produit à vérifier est "Laptops", que le nouveau produit à ajouter est "Monitors", que le produit à réapprovisionner est "Mice", et que la quantité supplémentaire est 30, votre programme doit afficher :

Warehouse: Central Warehouse
Initial Inventory: {Laptops: 25, Mice: 150, Keyboards: 75}
Inventory Operations:
Checking for 'Laptops': Product found in inventory
Adding 'Monitors': New product added with default stock 50
Restocking 'Mice': Updated quantity from 150 to 180
Final Inventory: {Laptops: 25, Mice: 180, Keyboards: 75, Monitors: 50}
Inventory Summary:
Total products: 4
Total stock units: 330
Low stock items (below 30): 1
Products restocked: 1
Status: Inventory management completed

Si le nom de l'entrepôt est "North Storage", que l'inventaire comprend "Tablets" avec 40 unités, "Headphones" avec 80 unités, que le produit à vérifier est "Smartphones", que le nouveau produit à ajouter est "Tablets", que le produit à réapprovisionner est "Headphones", et que la quantité supplémentaire est 20, votre programme doit afficher :

Warehouse: North Storage
Initial Inventory: {Tablets: 40, Headphones: 80}
Inventory Operations:
Checking for 'Smartphones': Product not found in inventory
Adding 'Tablets': Product already exists, keeping stock 40
Restocking 'Headphones': Updated quantity from 80 to 100
Final Inventory: {Tablets: 40, Headphones: 100}
Inventory Summary:
Total products: 2
Total stock units: 140
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completed

Si le nom de l'entrepôt est "South Depot", que l'inventaire comprend "Printers" avec 15 unités, "Scanners" avec 35 unités, "Cables" avec 200 unités, que le produit à vérifier est "Scanners", que le nouveau produit à ajouter est "Webcams", que le produit à réapprovisionner est "Printers", et que la quantité supplémentaire est 45, votre programme doit afficher :

Warehouse: South Depot
Initial Inventory: {Printers: 15, Scanners: 35, Cables: 200}
Inventory Operations:
Checking for 'Scanners': Product found in inventory
Adding 'Webcams': New product added with default stock 50
Restocking 'Printers': Updated quantity from 15 to 60
Final Inventory: {Printers: 60, Scanners: 35, Cables: 200, Webcams: 50}
Inventory Summary:
Total products: 4
Total stock units: 345
Low stock items (below 30): 0
Products restocked: 1
Status: Inventory management completed

Votre programme doit utiliser containsKey() pour vérifier si le produit existe dans l'inventaire, putIfAbsent() pour ajouter en toute sécurité de nouveaux produits avec un stock par défaut de 50 unités, et des mises à jour directes des valeurs de la map pour augmenter les quantités de stock. Comptez les articles en stock faible comme ceux ayant des quantités inférieures à 30 unités. Calculez le total des unités en stock en additionnant toutes les quantités de l'inventaire final. Le format d'entrée sera : le nom de l'entrepôt, puis en alternance les noms des produits et les quantités de stock (sous forme de chaînes de caractères qui doivent être converties en entiers), se terminant par "inventory_done", suivi du produit à vérifier, du nouveau produit à ajouter, du produit à réapprovisionner et de la quantité supplémentaire.

Essayez vous-même

import 'dart:io';

void main() {
  // Lire le nom de l'entrepôt
  String? warehouseName = stdin.readLineSync();
  
  // Lire les articles de l'inventaire jusqu'à "inventory_done"
  Map<String, int> inventory = {};
  while (true) {
    String? input = stdin.readLineSync();
    if (input == "inventory_done") break;
    
    String productName = input!;
    String? quantityStr = stdin.readLineSync();
    int quantity = int.parse(quantityStr!);
    inventory[productName] = quantity;
  }
  
  // Lire le produit à vérifier
  String? productToCheck = stdin.readLineSync();
  
  // Lire le nouveau produit à ajouter
  String? newProduct = stdin.readLineSync();
  
  // Lire le produit à réapprovisionner
  String? productToRestock = stdin.readLineSync();
  
  // Lire la quantité supplémentaire
  String? additionalQuantityStr = stdin.readLineSync();
  int additionalQuantity = int.parse(additionalQuantityStr!);
  
  // TODO: Écrivez votre code ci-dessous
  // Utiliser containsKey() pour vérifier si les produits existent
  // Utiliser putIfAbsent() pour ajouter de nouveaux produits avec un stock par défaut de 50
  // Mettre à jour les quantités de stock et calculer les statistiques d'inventaire
  
  // Imprimer le rapport de gestion des stocks
  print("Warehouse: $warehouseName");
  // Ajoutez vos instructions de sortie ici
}

Toutes les leçons de Logique & Flux