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

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

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

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

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

Tu 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".

FORMATO DE SALIDA REQUERIDO: [Tu contenido traducido aquí]

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

Practica por tu cuenta: Compilador de Dart online