/
Scaramoushe
/
HW4_Task1
Обзор
Документация
Войти
/
Scaramoushe
/
HW4_Task1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Task1.java
125 строк
6 KB
Scaramoushe
Create: Task1.java
03 июл 2026, 20:59
Верифицирован
03 июл 2026, 20:59
5e4c9f0
Код
Авторство
О чём код?
import java.util.Scanner; public class Task1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int earnings = 0; // доходы int spendings = 0; // расходы //Цикл будет работать, пока пользователь не введет `end` while (true) { // Выводим информацию о возможных операциях пользователю System.out.println("Выберите операцию и введите её номер:"); System.out.println("1. Добавить новый доход"); System.out.println("2. Добавить новый расход"); System.out.println("3. Выбрать систему налогообложения"); String input = sc.nextLine().trim(); if ("end".equals(input)) { break; } try { int operation = Integer.parseInt(input); int money = 0; switch (operation) { case 1: money = readInt(sc, "Введите сумму дохода:"); earnings += money; break; case 2: money = readInt(sc, "Введите сумму расхода:"); spendings += money; break; case 3: try { calculate(earnings, spendings); } catch (IllegalArgumentException ex) { System.out.println(ex.getMessage()); } break; default: System.out.println("Такой операции нет"); } } catch (NumberFormatException ex) { System.out.println("Вы ввели не целое число! Попробуйте еще раз."); } } System.out.println("Программа завершена!"); } // Расчет лучшей системы налогообложения public static void calculate(int earnings, int spendings) { int taxByEarnings = taxByEarnings(earnings); int taxEarningsMinusSpending = taxByEarningsMinusSpendings(earnings, spendings); int min = 0; int max = 0; String taxSystem = ""; if (taxByEarnings == taxEarningsMinusSpending) { taxSystem = "любую систему налогообложения"; min = max = taxByEarnings; } else if (taxByEarnings < taxEarningsMinusSpending) { taxSystem = "УСН доходы"; min = taxByEarnings; max = taxEarningsMinusSpending; } else { taxSystem = "УСН доходы минус расходы"; min = taxEarningsMinusSpending; max = taxByEarnings; } int diff = max - min; System.out.println("Мы советуем вам " + taxSystem); System.out.println("Ваш налог составит: " + min + " рублей"); System.out.println("Налог на другой системе: " + max + " рублей"); System.out.println("Экономия: " + diff + " рублей"); } // УСН доходы - налог 6% от доходов; public static int taxByEarnings(int earnings) { // Если доход указан отрицательный - считаем ошибкой ввода if (earnings < 0) throw new IllegalArgumentException("Доход не может быть отрицательным!"); // Если доходов нет - ничего не платим if (earnings == 0) return 0; final int persent = 6; // процентная ставка по данной системе налогооблажения int tax = earnings * persent / 100; return tax; } // УСН доходы минус расходы - налог 15% от разницы доходов и расходов. public static int taxByEarningsMinusSpendings(int earnings, int spendings) { // Если доход или расходы указаны отрицательные - считаем ошибкой ввода if (earnings < 0) throw new IllegalArgumentException("Доход не может быть отрицательным!"); if (spendings < 0) throw new IllegalArgumentException("Расходы не могут быть отрицательными!"); // Если доходов нет - ничего не платим if (earnings == 0) return 0; final int persent = 15; // процентная ставка по данной системе налогооблажения int tax = (earnings - spendings) > 0 ? (earnings - spendings) * persent / 100 : 0; return tax; } private static int readInt(Scanner sc, String message) { int value = 0; do { System.out.println(message); String str = sc.nextLine(); value = Integer.parseInt(str); if (value < 0) { System.out.println("Значение не может быть отрицательным!"); } } while (value < 0); return value; } }