/
1091950
/
Task11
Обзор
Документация
Войти
/
1091950
/
Task11
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Main.java
80 строк
4 KB
1091950
upload files
27 дек 2025, 20:26
27 дек 2025, 20:26
d03917e
Код
Авторство
О чём код?
import java.util.*; public class Main { public static void main(String[] args) { // Создаём карту стоимости доставки за 1 кг по адресам Map<Address, Integer> costPerAddress = new HashMap<>(); // Заполняем мапу тестовыми адресами и ценами (руб/кг) costPerAddress.put(new Address("Россия", "Мурманск"), 150); costPerAddress.put(new Address("Россия", "Волгоград"), 150); costPerAddress.put(new Address("Россия", "Москва"), 500); costPerAddress.put(new Address("Россия", "Севастополь"), 200); costPerAddress.put(new Address("Германия", "Берлин"), 300); costPerAddress.put(new Address("Китай", "Шанхай"), 350); costPerAddress.put(new Address("Япония", "Токио"), 500); costPerAddress.put(new Address("США", "Нью-Йорк"), 550); Scanner scanner = new Scanner(System.in); int totalCost = 0; Set<String> deliveredCountries = new HashSet<>(); // для учёта уникальных стран System.out.println("Сервис доставки товаров по всему миру"); System.out.println("Для завершения введите пустую строку вместо страны"); while (true) { System.out.println("\nЗаполнение нового заказа."); // Ввод страны System.out.print("Введите страну: "); String country = scanner.nextLine().trim(); if (country.isEmpty()) { break; // Завершение цикла } // Ввод города System.out.print("Введите город: "); String city = scanner.nextLine().trim(); // Ввод веса System.out.print("Введите вес (кг): "); String weightInput = scanner.nextLine().trim(); double weight; try { weight = Double.parseDouble(weightInput); if (weight <= 0) { System.out.println("Вес должен быть положительным числом!"); continue; } } catch (NumberFormatException e) { System.out.println("Некорректный формат веса!"); continue; } // Создаём адрес Address address = new Address(country, city); // Проверяем, обслуживается ли адрес if (costPerAddress.containsKey(address)) { int pricePerKg = costPerAddress.get(address); int deliveryCost = (int) (pricePerKg * weight); totalCost += deliveryCost; // Добавляем страну в набор уникальных стран deliveredCountries.add(country); System.out.println("Стоимость доставки составит: " + deliveryCost + " руб."); System.out.println("Общая стоимость всех доставок: " + totalCost + " руб."); System.out.println("Количество уникальных стран: " + deliveredCountries.size()); } else { System.out.println("Доставки по этому адресу нет"); } } System.out.println("\nРабота сервиса завершена."); System.out.println("Итоговая общая стоимость доставок: " + totalCost + " руб."); System.out.println("Количество уникальных стран: " + deliveredCountries.size()); scanner.close(); } }