Menu
Coddy logo textTech

Configurazione del progetto

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 33 di 65.

challenge icon

Sfida

Facile

Realizzerai 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:

  1. Leggere una stringa di input che rappresenta il nome del negozio
  2. Leggere più coppie di input che rappresentano i nomi dei prodotti e i relativi prezzi (l'input terminerà quando riceverai "products_done")
  3. Creare una Map per memorizzare i prodotti disponibili, usando i loro nomi come chiavi e i prezzi come valori
  4. Creare una List vuota per rappresentare il carrello della spesa
  5. Visualizzare le informazioni iniziali di configurazione e verificare che le strutture dati siano inizializzate correttamente
  6. 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 customers

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

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

Il 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

Esercitati da solo: Compilatore Dart online