Menu
Coddy logo textTech

Configuración del proyecto

Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 33 de 65.

challenge icon

Desafío

Fácil

Construirá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:

  1. Leer una entrada de cadena que represente el nombre de la tienda
  2. Leer múltiples pares de entradas que representen nombres de productos y sus precios (la entrada terminará cuando recibas "products_done")
  3. Crear un Map para almacenar los productos disponibles con sus nombres como claves y los precios como valores
  4. Crear una List vacía para representar el carrito de compras
  5. Mostrar la información de configuración inicial y verificar que las estructuras de datos estén inicializadas correctamente
  6. 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 customers

Si 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 customers

Si 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 customers

Tu 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