Menu
Coddy logo textTech

Настройка проекта

Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 33 из 65.

challenge icon

Задание

Легко

Вы создадите простой калькулятор корзины покупок, который демонстрирует, как различные структуры данных работают вместе в реальном приложении.

Создайте программу, которая закладывает основу для системы калькулятора корзины покупок, инициализируя основные структуры данных, необходимые для приложения электронной коммерции. Ваша программа должна:

  1. Прочитать строковый ввод, представляющий название магазина
  2. Прочитать несколько пар входных данных, представляющих названия продуктов и их цены (ввод закончится, когда вы получите "products_done")
  3. Создать Map для хранения доступных продуктов с их названиями в качестве ключей и ценами в качестве значений
  4. Создать пустой List для представления корзины покупок
  5. Отобразить информацию о начальной настройке и убедиться, что структуры данных инициализированы правильно
  6. Вывести отчет о настройке магазина в точном формате, показанном ниже

Например, если название магазина — "Fresh Market", а продукты включают "Apple" с ценой 1.50, "Banana" с ценой 0.80, "Orange" с ценой 2.00, "Milk" с ценой 3.25, ваша программа должна вывести:

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

Если название магазина — "Tech Store", а продукты включают "Laptop" с ценой 999.99, "Mouse" с ценой 25.50, "Keyboard" с ценой 75.00, ваша программа должна вывести:

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

Если название магазина — "Book Corner", а продукты включают "Novel" с ценой 12.99, "Magazine" с ценой 4.50, "Textbook" с ценой 89.00, "Comic" с ценой 3.99, "Journal" с ценой 15.75, ваша программа должна вывести:

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

Ваша программа должна создать Map со строковыми ключами (названия продуктов) и значениями типа double (цены), а также пустой List строк для корзины покупок. Найдите самый дорогой и самый дешевый товары, сравнив все цены в карте продуктов. Рассчитайте среднюю цену, разделив сумму всех цен на количество продуктов. Округлите среднее значение до 2 знаков после запятой для отображения. Формат ввода будет следующим: название магазина, затем чередующиеся названия продуктов и цены (в виде строк, которые необходимо преобразовать в double), заканчивающиеся строкой "products_done".

Попробуйте сами

import 'dart:io';

void main() {
  // Чтение названия магазина
  String? storeName = stdin.readLineSync();
  
  // Инициализация структур данных
  Map<String, double> products = {};
  List<String> shoppingCart = [];
  
  // Чтение товаров до "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!);
    
    // Добавление товара в карту
    products[productName] = price;
  }
  
  // TODO: Напишите ниже свой код для расчета статистики и создания отчета
  
  // Вывод отчета о настройке магазина
  // Ваш вывод должен точно соответствовать формату, показанному в примерах
}

Все уроки раздела Логика и управление потоком