Calcolare il costo totale
Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 35 di 65.
Sfida
FacileCrea 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:
- Usare la Map del catalogo prodotti e la List del carrello già popolata dalla configurazione precedente
- Leggere più input di tipo stringa che rappresentano gli articoli che i clienti desiderano aggiungere al carrello (l’input terminerà quando ricevi
"cart_done") - Per ogni articolo, verificare se esiste nel catalogo prodotti usando
containsKey() - Se l’articolo esiste, aggiungerlo alla List del carrello usando il metodo
add() - Calcolare il costo totale scorrendo la lista del carrello e cercando il prezzo di ogni articolo nella mappa dei prodotti
- Sommare tutti i prezzi per ottenere il costo totale finale
- 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 checkoutSe 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 checkoutSe 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 checkoutIl 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
1Manipolazione avanzata delle liste
Proprietà delle liste: primo e ultimoStato della lista: isEmpty e isNotEmpInvertire una listaAggiungere a una lista: insertRimozione dalla lista: removeWhereRicerca in una lista: indexOfOrdinare una listaMescolare una listaRiepilogo - Organizzatore di liste4Manipolazione avanzata delle mappe
Iterare su una mappaVerificare chiavi e valoriProprietà delle mappe: chiavi e valoriAggiunta condizionale: putIfAbsentRimuovere elementi da una mappaMappe annidateRiepilogo - Aggiornamento dell'inventario2Operazioni funzionali sulle liste
Trasformare con 'map'Filtrare con 'where'Usare '.toList()'Verificare condizioni con 'any'Condizioni con 'every'Trovare con 'firstWhere'Riepilogo - Filtraggio dei dati5Progetto: Calcolo del carrello
Configurazione del progettoAggiungere articoli al carrello3Insiemi
Che cos'è un insieme?Creare un insiemeAggiungere e rimuovere elementi dagli insiemiVerificare la presenza di elementi in un insiemeConvertire una lista in un insiemeUnione di insiemiIntersezione di insiemiDifferenza tra insiemiRiepilogo - Lista degli ospiti uniciEsercitati da solo: Compilatore Dart online