Menu
Coddy logo textTech

Calcul du coût total

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

challenge icon

Défi

Facile

Créez un programme qui poursuit le projet de calculateur de panier d'achat en implémentant la fonctionnalité permettant de calculer le coût total de tous les articles du panier. En vous appuyant sur la gestion du panier de la leçon précédente, votre programme doit :

  1. Utiliser le Map du catalogue de produits existant et la List du panier d'achat remplie lors de la configuration précédente
  2. Lire plusieurs entrées de chaînes de caractères représentant les articles que les clients souhaitent ajouter à leur panier (l'entrée se terminera lorsque vous recevrez "cart_done")
  3. Pour chaque article, vérifier s'il existe dans le catalogue de produits en utilisant containsKey()
  4. Si l'article existe, l'ajouter à la List du panier d'achat en utilisant la méthode add()
  5. Calculer le coût total en parcourant la liste du panier et en recherchant le prix de chaque article dans la map des produits
  6. Additionner tous les prix pour obtenir le coût total final
  7. Afficher le rapport de calcul du panier dans le format exact indiqué ci-dessous

Par exemple, si le magasin propose les produits "Apple" à 1.50, "Banana" à 0.80, "Orange" à 2.00, "Milk" à 3.25, et que les clients souhaitent ajouter "Apple", "Banana", "Apple", "Milk", votre programme doit afficher :

Shopping Cart Operations:
Adding 'Apple': Item added to cart successfully
Adding 'Banana': Item added to cart successfully
Adding 'Apple': Item added to cart successfully
Adding 'Milk': Item added to cart successfully
Cart Contents: [Apple, Banana, Apple, Milk]
Cost Calculation:
Apple: $1.50
Banana: $0.80
Apple: $1.50
Milk: $3.25
Total Cost: $7.05
Cart Summary:
Total items in cart: 4
Unique products in cart: 3
Items successfully added: 4
Items not found: 0
Cart Status: Ready for checkout

Si le magasin propose les produits "Laptop" à 999.99, "Mouse" à 25.50, "Keyboard" à 75.00, et que les clients souhaitent ajouter "Mouse", "Keyboard", "Mouse", "Monitor", votre programme doit afficher :

Shopping Cart Operations:
Adding 'Mouse': Item added to cart successfully
Adding 'Keyboard': Item added to cart successfully
Adding 'Mouse': Item added to cart successfully
Adding 'Monitor': Item not available in store
Cart Contents: [Mouse, Keyboard, Mouse]
Cost Calculation:
Mouse: $25.50
Keyboard: $75.00
Mouse: $25.50
Total Cost: $126.00
Cart Summary:
Total items in cart: 3
Unique products in cart: 2
Items successfully added: 3
Items not found: 1
Cart Status: Ready for checkout

Si le magasin propose les produits "Novel" à 12.99, "Magazine" à 4.50, "Textbook" à 89.00, et que les clients souhaitent ajouter "Novel", "Magazine", "Novel", "Textbook", "Dictionary", votre programme doit afficher :

Shopping Cart Operations:
Adding 'Novel': Item added to cart successfully
Adding 'Magazine': Item added to cart successfully
Adding 'Novel': Item added to cart successfully
Adding 'Textbook': Item added to cart successfully
Adding 'Dictionary': Item not available in store
Cart Contents: [Novel, Magazine, Novel, Textbook]
Cost Calculation:
Novel: $12.99
Magazine: $4.50
Novel: $12.99
Textbook: $89.00
Total Cost: $119.48
Cart Summary:
Total items in cart: 4
Unique products in cart: 3
Items successfully added: 4
Items not found: 1
Cart Status: Ready for checkout

Votre programme doit parcourir chaque article de la liste du panier d'achat, rechercher son prix dans la map du catalogue de produits et ajouter ce prix à un total cumulé. Utilisez une boucle pour traiter chaque article du panier et accumuler le coût total. Affichez le prix individuel de chaque article pendant la phase de calcul du coût. Formatez tous les prix pour afficher exactement 2 décimales. Le format d'entrée sera : les noms des articles à ajouter au panier, se terminant par "cart_done".

Essayez vous-même

import 'dart:io';

void main() {
  // Product catalog with items and prices
  Map<String, double> productCatalog = {
    'Apple': 1.50,
    'Banana': 0.80,
    'Orange': 2.00,
    'Milk': 3.25,
    'Laptop': 999.99,
    'Mouse': 25.50,
    'Keyboard': 75.00,
    'Novel': 12.99,
    'Magazine': 4.50,
    'Textbook': 89.00
  };
  
  // Shopping cart to store selected items
  List<String> shoppingCart = [];
  
  // Counters for tracking operations
  int successfulAdditions = 0;
  int itemsNotFound = 0;
  
  print("Shopping Cart Operations:");
  
  // Read items until "cart_done" is received
  String? item;
  while ((item = stdin.readLineSync()) != "cart_done") {
    if (item != null) {
      if (productCatalog.containsKey(item)) {
        shoppingCart.add(item);
        successfulAdditions++;
        print("Adding '$item': Item added to cart successfully");
      } else {
        itemsNotFound++;
        print("Adding '$item': Item not available in store");
      }
    }
  }
  
  // Display cart contents
  print("Cart Contents: $shoppingCart");
  
  // Calculate unique products
  Set<String> uniqueProducts = shoppingCart.toSet();
  
  // Display cart summary
  print("Cart Summary:");
  print("Total items in cart: ${shoppingCart.length}");
  print("Unique products in cart: ${uniqueProducts.length}");
  print("Items successfully added: $successfulAdditions");
  print("Items not found: $itemsNotFound");
  print("Cart Status: Ready for checkout");
}

Toutes les leçons de Logique & Flux