Настройка проекта
Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 33 из 65.
Задание
ЛегкоВы создадите простой калькулятор корзины покупок, который демонстрирует, как различные структуры данных работают вместе в реальном приложении.
Создайте программу, которая закладывает основу для системы калькулятора корзины покупок, инициализируя основные структуры данных, необходимые для приложения электронной коммерции. Ваша программа должна:
- Прочитать строковый ввод, представляющий название магазина
- Прочитать несколько пар входных данных, представляющих названия продуктов и их цены (ввод закончится, когда вы получите
"products_done") - Создать Map для хранения доступных продуктов с их названиями в качестве ключей и ценами в качестве значений
- Создать пустой List для представления корзины покупок
- Отобразить информацию о начальной настройке и убедиться, что структуры данных инициализированы правильно
- Вывести отчет о настройке магазина в точном формате, показанном ниже
Например, если название магазина — "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: Напишите ниже свой код для расчета статистики и создания отчета
// Вывод отчета о настройке магазина
// Ваш вывод должен точно соответствовать формату, показанному в примерах
}Все уроки раздела Логика и управление потоком
1Продвинутая работа со списками
Свойства списка: first и lastСостояние списка: isEmpty и isNotEmptyРазворот спискаДобавление в список: insertУдаление из списка: removeWhereПоиск в списке: indexOfСортировка спискаПеремешивание спискаИтоги — Органайзер списков4Продвинутая работа с Map
Итерация по MapПроверка ключей и значенийСвойства Map: keys и valuesУсловное добавление: putIfAbsentУдаление записей из MapВложенные MapИтоги — Обновление инвентаря2Функциональные операции со списками
Преобразование с помощью 'map'Фильтрация с помощью 'where'Использование '.toList()'Проверка условий с помощью 'any'Условия с 'every'Поиск с помощью 'firstWhere'Повторение — фильтрация данных5Проект: Калькулятор корзины
Настройка проектаДобавление товаров в корзину3Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостей