Menu
Coddy logo textTech

Konfiguracja projektu

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 33 z 65.

challenge icon

Wyzwanie

Łatwy

Będziesz tworzyć prosty kalkulator koszyka zakupowego, który pokazuje, jak różne struktury danych współpracują ze sobą w rzeczywistej aplikacji.

Utwórz program, który przygotowuje podstawy systemu kalkulatora koszyka zakupowego, inicjalizując niezbędne struktury danych potrzebne w aplikacji e-commerce. Program powinien:

  1. Odczytać ciąg znaków reprezentujący nazwę sklepu
  2. Odczytać wiele par danych wejściowych reprezentujących nazwy produktów i ich ceny (dane wejściowe zakończą się po otrzymaniu "products_done")
  3. Utworzyć Mapę do przechowywania dostępnych produktów, używając ich nazw jako kluczy, a cen jako wartości
  4. Utworzyć pustą Listę reprezentującą koszyk zakupowy
  5. Wyświetlić informacje o początkowej konfiguracji i sprawdzić, czy struktury danych zostały prawidłowo zainicjalizowane
  6. Wypisać raport konfiguracji sklepu w dokładnie takim formacie, jak pokazano poniżej

Na przykład, jeśli nazwa sklepu to "Fresh Market", a wśród produktów są "Apple" w cenie 1.50, "Banana" w cenie 0.80, "Orange" w cenie 2.00 i "Milk" w cenie 3.25, program powinien wypisać:

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

Jeśli nazwa sklepu to "Tech Store", a wśród produktów są "Laptop" w cenie 999.99, "Mouse" w cenie 25.50 i "Keyboard" w cenie 75.00, program powinien wypisać:

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

Jeśli nazwa sklepu to "Book Corner", a wśród produktów są "Novel" w cenie 12.99, "Magazine" w cenie 4.50, "Textbook" w cenie 89.00, "Comic" w cenie 3.99 i "Journal" w cenie 15.75, program powinien wypisać:

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

Program musi utworzyć Mapę z kluczami typu String (nazwy produktów) i wartościami typu double (ceny), a także pustą Listę ciągów znaków na koszyk zakupowy. Znajdź najdroższe i najtańsze produkty, porównując wszystkie ceny w mapie produktów. Oblicz średnią cenę, dzieląc sumę wszystkich cen przez liczbę produktów. Zaokrąglij średnią do 2 miejsc po przecinku na potrzeby wyświetlenia. Format danych wejściowych będzie następujący: nazwa sklepu, a następnie naprzemiennie nazwy produktów i ceny (jako ciągi znaków, które trzeba przekonwertować na liczby typu double), aż do "products_done".

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Wczytaj nazwę sklepu
  String? storeName = stdin.readLineSync();
  
  // Zainicjalizuj struktury danych
  Map<String, double> products = {};
  List<String> shoppingCart = [];
  
  // Wczytuj produkty aż do "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!);
    
    // Dodaj produkt do mapy
    products[productName] = price;
  }
  
  // TODO: Napisz poniżej kod obliczający statystyki i generujący raport
  
  // Wyświetl raport z konfiguracji sklepu
  // Wynik powinien mieć dokładnie taki format, jak pokazano w przykładach
}

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online