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ácilCrearás una calculadora sencilla de carrito de compras que demuestra cómo funcionan juntas diferentes estructuras de datos en una aplicación real.
Crea un programa que establezca la base de 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 tipo string que represente el nombre de la tienda
- Leer varios pares de entradas que representen los nombres de los productos y sus precios (la entrada terminará cuando recibas
"products_done") - Crear un Map para almacenar los productos disponibles, usando sus nombres como claves y sus precios como valores
- Crear una List vacía para representar el carrito de compras
- Mostrar la información de la configuración inicial y verificar que las estructuras de datos se hayan inicializado correctamente
- Imprimir el informe de configuración de la tienda exactamente en el formato que se muestra a continuación
Por ejemplo, si el nombre de la tienda es "Fresh Market" y los productos incluyen "Apple" con un precio de 1.50, "Banana" con un precio de 0.80, "Orange" con un precio de 2.00 y "Milk" con un precio de 3.25, tu programa debe 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 un precio de 999.99, "Mouse" con un precio de 25.50 y "Keyboard" con un precio de 75.00, tu programa debe 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 un precio de 12.99, "Magazine" con un precio de 4.50, "Textbook" con un precio de 89.00, "Comic" con un precio de 3.99 y "Journal" con un precio de 15.75, tu programa debe 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), además de una List vacía de Strings para el carrito de compras. Encuentra los artículos más caro y más barato comparando todos los precios del mapa de productos. Calcula el precio promedio dividiendo la suma de todos los precios entre el número de productos. Redondea el promedio a 2 decimales para mostrarlo. El formato de entrada será: nombre de la tienda, seguido de nombres de productos y precios alternados (como strings que deben convertirse a doubles), y terminará 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 únicaPractica por tu cuenta: Compilador de Dart online