Configuração do Projeto
Parte da seção Lógica & Fluxo do Journey de Dart da Coddy. Lição 33 de 65.
Desafio
FácilVocê 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:
- Ler uma entrada do tipo string representando o nome da loja
- Ler vários pares de entradas representando os nomes dos produtos e seus preços (a entrada terminará quando você receber
"products_done") - Criar um Map para armazenar os produtos disponíveis, usando seus nomes como chaves e os preços como valores
- Criar uma List vazia para representar o carrinho de compras
- Exibir as informações da configuração inicial e verificar se as estruturas de dados foram inicializadas corretamente
- 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 customersSe 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 customersSe 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 customersSeu 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
1Manipulação Avançada de Listas
Propriedades de Lista: first & lastEstado da Lista: isEmpty & isNotEmptyInvertendo uma ListaAdicionando a uma Lista: insertRemoção em Listas: removeWhereBuscando em uma Lista: indexOfOrdenando uma ListaEmbaralhando uma ListaRecapitulação - Organizador de Listas4Manipulação Avançada de Mapas
Iterando sobre um MapVerificando Chaves e ValoresPropriedades do Map: keys & valuesAdição Condicional: putIfAbsentRemovendo Entradas de um MapMaps AninhadosRecapitulação - Atualização de Inventário2Operações Funcionais em Listas
Transformando com 'map'Filtrando com 'where'Usando '.toList()'Verificando Condições com 'any'Condições com 'every'Encontrando com 'firstWhere'Recapitulação - Filtragem de Dados5Projeto: Cálculo de Carrinho de Compras
Configuração do ProjetoAdicionando Itens ao Carrinho3Conjuntos
O que é um Conjunto?Criando um ConjuntoAdicionando e Removendo de ConjuntosVerificando Elementos em um ConjuntoConvertendo uma Lista para um ConjuntoUnião de ConjuntosInterseção de ConjuntosDiferença de ConjuntosRecapitulação - Lista de Convidados ÚnicosPratique por conta própria: Compilador de Dart online