/
DanLiz456
/
DZ17
Обзор
Документация
Войти
/
DanLiz456
/
DZ17
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
DeliveryService.java
62 строки
3 KB
Даниил Ушаков
upload files
01 дек 2025, 08:56
01 дек 2025, 08:56
c558ba2
Код
Авторство
О чём код?
import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.Scanner; public class DeliveryService { private Map<Address, Double> costPerAddress; public DeliveryService(Map<Address, Double> costPerAddress) { this.costPerAddress = costPerAddress; } public double calculateDeliveryCost(Address address, double weightInKg) { if (!costPerAddress.containsKey(address)) { throw new IllegalArgumentException("Доставка по данному адресу не осуществляется."); } return costPerAddress.get(address) * weightInKg; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // Создаем несколько адресов Address moscowRussia = new Address("Россия", "Москва"); Address kazanRussia = new Address("Россия", "Казань"); Address londonEngland = new Address("Англия", "Лондон"); // Карта стоимости доставки Map<Address, Double> costPerAddress = new HashMap<>(); costPerAddress.put(moscowRussia, 100.0); // Стоимость доставки 1 кг в Москву costPerAddress.put(kazanRussia, 200.0); // Стоимость доставки 1 кг в Казань costPerAddress.put(londonEngland, 300.0); // Стоимость доставки 1 кг в Лондон DeliveryService deliveryService = new DeliveryService(costPerAddress); double totalDeliveryCost = 0; while (true) { System.out.println("\nЗаполнение нового заказа.\nВведите страну:"); String country = scanner.nextLine(); if ("end".equalsIgnoreCase(country)) break; System.out.println("Введите город:"); String city = scanner.nextLine(); System.out.println("Введите вес (кг):"); double weightInKg = scanner.nextDouble(); // считываем вес в килограммах scanner.nextLine(); // очищаем буфер ввода Address address = new Address(country, city); try { double deliveryCost = deliveryService.calculateDeliveryCost(address, weightInKg); System.out.printf("Стоимость доставки составит: %.2f руб.%n", deliveryCost); totalDeliveryCost += deliveryCost; System.out.printf("Общая стоимость всех доставок: %.2f руб.%n", totalDeliveryCost); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } } } }