Configurazione del progetto
Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 33 di 65.
Sfida
FacileRealizzerai un semplice calcolatore del carrello della spesa che dimostra come diverse strutture dati lavorano insieme in un'applicazione reale.
Crea un programma che imposta le basi di un sistema per il calcolo del carrello della spesa inizializzando le strutture dati essenziali necessarie per un'applicazione di e-commerce. Il programma dovrebbe:
- Leggere una stringa di input che rappresenta il nome del negozio
- Leggere più coppie di input che rappresentano i nomi dei prodotti e i relativi prezzi (l'input terminerà quando riceverai
"products_done") - Creare una Map per memorizzare i prodotti disponibili, usando i loro nomi come chiavi e i prezzi come valori
- Creare una List vuota per rappresentare il carrello della spesa
- Visualizzare le informazioni iniziali di configurazione e verificare che le strutture dati siano inizializzate correttamente
- Stampare il resoconto di configurazione del negozio nel formato esatto mostrato di seguito
Per esempio, se il nome del negozio è "Fresh Market" e i prodotti includono "Apple" con prezzo 1.50, "Banana" con prezzo 0.80, "Orange" con prezzo 2.00, "Milk" con prezzo 3.25, il programma dovrebbe produrre:
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 il nome del negozio è "Tech Store" e i prodotti includono "Laptop" con prezzo 999.99, "Mouse" con prezzo 25.50, "Keyboard" con prezzo 75.00, il programma dovrebbe produrre:
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 il nome del negozio è "Book Corner" e i prodotti includono "Novel" con prezzo 12.99, "Magazine" con prezzo 4.50, "Textbook" con prezzo 89.00, "Comic" con prezzo 3.99, "Journal" con prezzo 15.75, il programma dovrebbe produrre:
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 customersIl programma deve creare una Map con chiavi String (nomi dei prodotti) e valori double (prezzi), e una List vuota di String per il carrello della spesa. Trova i prodotti più costoso e più economico confrontando tutti i prezzi nella mappa dei prodotti. Calcola il prezzo medio dividendo la somma di tutti i prezzi per il numero di prodotti. Arrotonda il prezzo medio a 2 cifre decimali per visualizzarlo. Il formato dell'input sarà: nome del negozio, poi nomi dei prodotti e prezzi alternati (come stringhe da convertire in double), fino a "products_done".
Provalo tu
import 'dart:io';
void main() {
// Leggi il nome del negozio
String? storeName = stdin.readLineSync();
// Inizializza le strutture dati
Map<String, double> products = {};
List<String> shoppingCart = [];
// Leggi i prodotti fino a "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!);
// Aggiungi il prodotto alla mappa
products[productName] = price;
}
// TODO: Scrivi il tuo codice qui sotto per calcolare le statistiche e generare il report
// Stampa il report di configurazione del negozio
// L'output deve corrispondere esattamente al formato mostrato negli esempi
}Tutte le lezioni di Logica e flusso
1Manipolazione avanzata delle liste
Proprietà delle liste: primo e ultimoStato della lista: isEmpty e isNotEmpInvertire una listaAggiungere a una lista: insertRimozione dalla lista: removeWhereRicerca in una lista: indexOfOrdinare una listaMescolare una listaRiepilogo - Organizzatore di liste4Manipolazione avanzata delle mappe
Iterare su una mappaVerificare chiavi e valoriProprietà delle mappe: chiavi e valoriAggiunta condizionale: putIfAbsentRimuovere elementi da una mappaMappe annidateRiepilogo - Aggiornamento dell'inventario2Operazioni funzionali sulle liste
Trasformare con 'map'Filtrare con 'where'Usare '.toList()'Verificare condizioni con 'any'Condizioni con 'every'Trovare con 'firstWhere'Riepilogo - Filtraggio dei dati5Progetto: Calcolo del carrello
Configurazione del progettoAggiungere articoli al carrello3Insiemi
Che cos'è un insieme?Creare un insiemeAggiungere e rimuovere elementi dagli insiemiVerificare la presenza di elementi in un insiemeConvertire una lista in un insiemeUnione di insiemiIntersezione di insiemiDifferenza tra insiemiRiepilogo - Lista degli ospiti uniciEsercitati da solo: Compilatore Dart online