Calcular el costo total
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy. Lección 35 de 65.
Desafío
FácilCrea un programa que continúe el proyecto de la calculadora del carrito de compras implementando la funcionalidad para calcular el costo total de todos los artículos del carrito. Basándote en la gestión del carrito de la lección anterior, tu programa debe:
- Usar el Map de catálogo de productos existente y el List de carrito de compras rellenado de la configuración anterior
- Leer múltiples entradas de tipo string que representen los artículos que los clientes desean añadir a su carrito (la entrada terminará cuando recibas
"cart_done") - Para cada artículo, comprobar si existe en el catálogo de productos usando
containsKey() - Si el artículo existe, añadirlo al List del carrito de compras usando el método
add() - Calcular el costo total recorriendo la lista del carrito y consultando el precio de cada artículo en el mapa de productos
- Sumar todos los precios para obtener el costo total final
- Mostrar el informe del cálculo del carrito exactamente en el formato que se muestra a continuación
Por ejemplo, si la tienda tiene los productos "Apple" a 1.50, "Banana" a 0.80, "Orange" a 2.00, "Milk" a 3.25, y los clientes desean añadir "Apple", "Banana", "Apple", "Milk", tu programa debe mostrar:
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 checkoutSi la tienda tiene los productos "Laptop" a 999.99, "Mouse" a 25.50, "Keyboard" a 75.00, y los clientes desean añadir "Mouse", "Keyboard", "Mouse", "Monitor", tu programa debe mostrar:
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 checkoutSi la tienda tiene los productos "Novel" a 12.99, "Magazine" a 4.50, "Textbook" a 89.00, y los clientes desean añadir "Novel", "Magazine", "Novel", "Textbook", "Dictionary", tu programa debe mostrar:
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 checkoutTu programa debe recorrer cada artículo de la lista del carrito de compras, consultar su precio en el mapa del catálogo de productos y añadir ese precio a un total acumulado. Usa un bucle para procesar cada artículo del carrito y acumular el costo total. Muestra el precio individual de cada artículo durante la fase de cálculo del costo. Da formato a todos los precios para que muestren exactamente 2 decimales. El formato de entrada será: nombres de artículos que se añadirán al carrito, terminando con "cart_done".
Pruébalo tú mismo
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");
}Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados únicaPractica por tu cuenta: Compilador de Dart online