Menu
Coddy logo textTech

Calcolare il costo totale

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 35 di 65.

challenge icon

Sfida

Facile

Crea un programma che prosegua il progetto del calcolatore del carrello implementando la funzionalità per calcolare il costo totale di tutti gli articoli nel carrello. Partendo dalla gestione del carrello della lezione precedente, il tuo programma dovrebbe:

  1. Usare la Map del catalogo prodotti e la List del carrello già popolata dalla configurazione precedente
  2. Leggere più input di tipo stringa che rappresentano gli articoli che i clienti desiderano aggiungere al carrello (l’input terminerà quando ricevi "cart_done")
  3. Per ogni articolo, verificare se esiste nel catalogo prodotti usando containsKey()
  4. Se l’articolo esiste, aggiungerlo alla List del carrello usando il metodo add()
  5. Calcolare il costo totale scorrendo la lista del carrello e cercando il prezzo di ogni articolo nella mappa dei prodotti
  6. Sommare tutti i prezzi per ottenere il costo totale finale
  7. Visualizzare il resoconto del calcolo del carrello nel formato esatto mostrato qui sotto

Per esempio, se il negozio ha i prodotti "Apple" a 1.50, "Banana" a 0.80, "Orange" a 2.00, "Milk" a 3.25 e i clienti vogliono aggiungere "Apple", "Banana", "Apple", "Milk", il tuo programma dovrebbe produrre:

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

Se il negozio ha i prodotti "Laptop" a 999.99, "Mouse" a 25.50, "Keyboard" a 75.00 e i clienti vogliono aggiungere "Mouse", "Keyboard", "Mouse", "Monitor", il tuo programma dovrebbe produrre:

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

Se il negozio ha i prodotti "Novel" a 12.99, "Magazine" a 4.50, "Textbook" a 89.00 e i clienti vogliono aggiungere "Novel", "Magazine", "Novel", "Textbook", "Dictionary", il tuo programma dovrebbe produrre:

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

Il tuo programma deve scorrere ogni articolo nella lista del carrello, cercarne il prezzo nella mappa del catalogo prodotti e aggiungere tale prezzo a un totale progressivo. Usa un ciclo per elaborare ogni articolo del carrello e accumulare il costo totale. Visualizza il prezzo di ogni singolo articolo durante la fase di calcolo dei costi. Formatta tutti i prezzi in modo che mostrino esattamente 2 cifre decimali. Il formato dell’input sarà: nomi degli articoli da aggiungere al carrello, terminati da "cart_done".

Provalo tu

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");
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online