Мне нужно разработать калькулятор для расчета пошлины на провоз товаров в Java. Как правильно оформить и представить данные, которые я хочу использовать?

Как написать программу-калькулятор для расчёта пошлины на провоз товара, учитывая следующие правила: 1 копейка начисляется за каждый рубль цены товара, а также 100 рублей за каждый килограмм веса? Пошлина должна вычисляться с учётом того, что копейки в итоговой сумме не учитываются, а только рубли. Например, для товара стоимостью 546 рублей и весом 3 кг итоговая пошлина составит 305 рублей. 

Программа должна приветствовать пользователя, запрашивать цену товара в рублях и его вес в килограммах (оба значения — целые числа) и выводить рассчитанную сумму пошлины. 

Далее, нужно вынести логику расчёта пошлины в отдельный статический метод, который: 
- будет принимать два параметра: цену и вес товара (целые числа);
- будет возвращать рассчитанную сумму пошлины.

Как правильно организовать вывод данных, например: 
```
Введите цену товара (в руб.): 546 
Введите вес товара (в кг.): 3 
Размер пошлины (в руб.) составит: 305 
```

Вот пример реализации на языке Java: 
```java
import java.util.Scanner;

class Main {
    public static int calculateCustoms(int price,int weight) {
        int result = price/100 + weight*100;
        return result;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Введите цену товара (в руб.):");
        int price = scanner.nextInt();
        System.out.print("Введите вес товара (в кг.):");
        int weight = scanner.nextInt();
        int duty = calculateCustoms(price, weight);
        System.out.println("Размер пошлины (в руб.) составит: " + duty);
    }
}
```
  • 3 ноября 2024 г. 21:22
Ответы на вопрос 1
Ваше описание задачи и само решение являются хорошей основой для реализации калькулятора пошлины на провоз товаров в Java. Давайте немного доработаем ваш код и улучшения. 

Вот улучшенная версия программы с комментариями:

```java
import java.util.Scanner;

class CustomsCalculator {

    // Метод для расчёта пошлины
    public static int calculateCustoms(int price, int weight) {
        // Пошлина = целая часть от (цена) + (100 рублей за каждый кг веса)
        int dutyFromPrice = price; // Копейки от цены уже игнорируются из-за целочисленного деления
        int dutyFromWeight = weight * 100;
        int result = dutyFromPrice + dutyFromWeight;
        return result; // Возврат итоговой суммы пошлины
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Приветствие пользователя
        System.out.println("Добро пожаловать в калькулятор пошлины на провоз товара!");

        // Ввод стоимости товара
        System.out.print("Введите цену товара (в руб.): ");
        int price = scanner.nextInt();

        // Ввод веса товара
        System.out.print("Введите вес товара (в кг.): ");
        int weight = scanner.nextInt();

        // Вызов метода расчета пошлины и вывод результата
        int duty = calculateCustoms(price, weight);
        System.out.println("Размер пошлины (в руб.) составит: " + duty);
        
        // Закрытие сканера
        scanner.close();
    }
}
```

### Объяснение:
1. **Статический метод `calculateCustoms`**:
   - Метод принимает два параметра: стоимость и вес товара.
   - Он рассчитывает пошлину, складывая стоимость товара (игнорируя копейки) и добавляя 100 рублей за каждый килограмм веса.
   - Итоговая сумма пошлины возвращается.

2. **Метод `main`**:
   - Создаёт экземпляр `Scanner` для считывания ввода от пользователя.
   - Приветствует пользователя и запрашивает его ввод: цену и вес товара.
   - Вызывает метод `calculateCustoms` для вычисления пошлины и выводит результат на экран.
   - Завершает работу, закрывая `Scanner` (что хорошая практика для освобождения ресурсов).

### Запуск программы:
Когда вы запустите эту программу, она выведет приглашение для ввода, затем запишет введенные значения и предоставит итоговую сумму пошлины, как указано в вашем примере. 

Это должно хорошо соответствовать вашим требованиям и будет легко расширить в будущем, если вы захотите добавить больше функциональности.
Похожие вопросы