Menu
Coddy logo textTech

Configuração do Projeto

Parte da seção Lógica & Fluxo do Journey de Dart da Coddy. Lição 33 de 65.

challenge icon

Desafio

Fácil

Você construirá uma calculadora simples de carrinho de compras que demonstra como diferentes estruturas de dados funcionam em conjunto em uma aplicação real.

Crie um programa que estabeleça a base para um sistema de calculadora de carrinho de compras inicializando as estruturas de dados essenciais necessárias para uma aplicação de comércio eletrônico. Seu programa deve:

  1. Ler uma entrada do tipo string representando o nome da loja
  2. Ler vários pares de entradas representando os nomes dos produtos e seus preços (a entrada terminará quando você receber "products_done")
  3. Criar um Map para armazenar os produtos disponíveis, usando seus nomes como chaves e os preços como valores
  4. Criar uma List vazia para representar o carrinho de compras
  5. Exibir as informações da configuração inicial e verificar se as estruturas de dados foram inicializadas corretamente
  6. Imprimir o relatório de configuração da loja exatamente no formato mostrado abaixo

Por exemplo, se o nome da loja for "Fresh Market" e os produtos incluírem "Apple" com preço 1.50, "Banana" com preço 0.80, "Orange" com preço 2.00, "Milk" com preço 3.25, seu programa deverá produzir:

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

Se o nome da loja for "Tech Store" e os produtos incluírem "Laptop" com preço 999.99, "Mouse" com preço 25.50, "Keyboard" com preço 75.00, seu programa deverá produzir:

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

Se o nome da loja for "Book Corner" e os produtos incluírem "Novel" com preço 12.99, "Magazine" com preço 4.50, "Textbook" com preço 89.00, "Comic" com preço 3.99, "Journal" com preço 15.75, seu programa deverá produzir:

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

Seu programa deve criar um Map com chaves do tipo String (nomes dos produtos) e valores do tipo double (preços), além de uma List vazia de Strings para o carrinho de compras. Encontre os itens mais caro e mais barato comparando todos os preços no mapa de produtos. Calcule o preço médio dividindo a soma de todos os preços pelo número de produtos. Arredonde a média para 2 casas decimais na exibição. O formato da entrada será: nome da loja, depois nomes e preços de produtos alternados (como strings que precisam ser convertidas para doubles), terminando com "products_done".

Experimente você mesmo

import 'dart:io';

void main() {
  // Ler o nome da loja
  String? storeName = stdin.readLineSync();
  
  // Inicializar estruturas de dados
  Map<String, double> products = {};
  List<String> shoppingCart = [];
  
  // Ler produtos até "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!);
    
    // Adicionar produto ao mapa
    products[productName] = price;
  }
  
  // TODO: Escreva seu código abaixo para calcular estatísticas e gerar o relatório
  
  // Imprimir o relatório de configuração da loja
  // Sua saída deve corresponder exatamente ao formato mostrado nos exemplos
}

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de Dart online