Configuración del proyecto
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 33 de 65.
Desafío
FácilConstruirás un calculador de carrito de compras sencillo que demuestra cómo funcionan juntas diferentes estructuras de datos en una aplicación real.
Crea un programa que establezca la base para un sistema de calculadora de carrito de compras inicializando las estructuras de datos esenciales necesarias para una aplicación de comercio electrónico. Tu programa debe:
- Leer una entrada de cadena que represente el nombre de la tienda
- Leer múltiples pares de entradas que representen nombres de productos y sus precios (la entrada terminará cuando recibas
"products_done") - Crear un Map para almacenar los productos disponibles con sus nombres como claves y los precios como valores
- Crear una List vacía para representar el carrito de compras
- Mostrar la información de configuración inicial y verificar que las estructuras de datos estén inicializadas correctamente
- Imprimir el informe de configuración de la tienda en el formato exacto que se muestra a continuación
Por ejemplo, si el nombre de la tienda es "Fresh Market" y los productos incluyen "Apple" con precio 1.50, "Banana" con precio 0.80, "Orange" con precio 2.00, "Milk" con precio 3.25, tu programa debería mostrar:
Store: Fresh Market
Product Catalog Setup:
Available Products: {Apple: 1.5, Banana: 0.8, Orange: 2.0, Milk: 3.25}
Shopping Cart Initialized: []
System Status:
Total products available: 4
Cart status: Empty
Most expensive item: Milk ($3.25)
Cheapest item: Banana ($0.80)
Average product price: $1.84
Setup Status: Shopping cart system ready for customersSi el nombre de la tienda es "Tech Store" y los productos incluyen "Laptop" con precio 999.99, "Mouse" con precio 25.50, "Keyboard" con precio 75.00, tu programa debería mostrar:
Store: Tech Store
Product Catalog Setup:
Available Products: {Laptop: 999.99, Mouse: 25.5, Keyboard: 75.0}
Shopping Cart Initialized: []
System Status:
Total products available: 3
Cart status: Empty
Most expensive item: Laptop ($999.99)
Cheapest item: Mouse ($25.50)
Average product price: $366.83
Setup Status: Shopping cart system ready for customersSi el nombre de la tienda es "Book Corner" y los productos incluyen "Novel" con precio 12.99, "Magazine" con precio 4.50, "Textbook" con precio 89.00, "Comic" con precio 3.99, "Journal" con precio 15.75, tu programa debería mostrar:
Store: Book Corner
Product Catalog Setup:
Available Products: {Novel: 12.99, Magazine: 4.5, Textbook: 89.0, Comic: 3.99, Journal: 15.75}
Shopping Cart Initialized: []
System Status:
Total products available: 5
Cart status: Empty
Most expensive item: Textbook ($89.00)
Cheapest item: Comic ($3.99)
Average product price: $25.25
Setup Status: Shopping cart system ready for customersTu programa debe crear un Map con claves de tipo String (nombres de productos) y valores de tipo double (precios), y una List de Strings vacía para el carrito de compras. Encuentra los artículos más caros y más baratos comparando todos los precios en el mapa de productos. Calcula el precio promedio dividiendo la suma de todos los precios por el número de productos. Redondea el promedio a 2 decimales para la visualización. El formato de entrada será: nombre de la tienda, luego nombres de productos y precios alternados (como cadenas que deben convertirse a doubles), terminando con "products_done".
Pruébalo tú mismo
import 'dart:io';
void main() {
// Leer el nombre de la tienda
String? storeName = stdin.readLineSync();
// Inicializar estructuras de datos
Map<String, double> products = {};
List<String> shoppingCart = [];
// Leer productos hasta "products_done"
while (true) {
String? input = stdin.readLineSync();
if (input == "products_done") {
break;
}
String productName = input!;
String? priceInput = stdin.readLineSync();
double price = double.parse(priceInput!);
// Añadir producto al mapa
products[productName] = price;
}
// TODO: Escribe tu código a continuación para calcular estadísticas y generar el informe
// Imprimir el informe de configuración de la tienda
// Tu salida debe coincidir exactamente con el formato mostrado en los ejemplos
}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 única