Untitled
unknown
plain_text
a year ago
7.5 kB
28
Indexable
Never
import java.util.Scanner; public class Praktikum { public static void main(String[] args) { double[] expenses = new double[7]; Scanner scanner = new Scanner(System.in); System.out.println("Сколько денег у вас осталось до зарплаты?"); double moneyBeforeSalary = scanner.nextDouble(); System.out.println("Сколько дней до зарплаты?"); int daysBeforeSalary = scanner.nextInt(); while (true) { printMenu(); int command = scanner.nextInt(); if (command == 1) { convert(scanner, moneyBeforeSalary); } else if (command == 2) { getAdvice(moneyBeforeSalary, daysBeforeSalary); } else if (command == 3) { moneyBeforeSalary = saveExpense(scanner, moneyBeforeSalary, expenses); // Перенесите код ниже в метод saveExpense // Вызовите метод с помощью такой строки: // moneyBeforeSalary = saveExpense(scanner, moneyBeforeSalary, expenses); } else if (command == 4) { printAllExpenses (expenses); // Перенесите обработку команды в метод printAllExpenses, здесь вызовите его } else if (command == 5) { double maxExpense = findMaxExpense (expenses); // Перенесите поиск максимальной траты в метод findMaxExpense // Печать должна остаться здесь — для получения максимальной траты нужно вызвать метод System.out.println("Самая большая сумма расходов на этой неделе составила " + maxExpense + " руб."); } else if (command == 0) { System.out.println("Выход"); break; } else { System.out.println("Извините, такой команды пока нет."); } } } public static void printAllExpenses (double [] expenses) { // Объявите и реализуйте здесь метод printAllExpenses for (int i = 0; i < expenses.length; i++) { System.out.println("День " + (i + 1) + ". Потрачено " + expenses[i] + " рублей"); } } public static double findMaxExpense (double [] expenses) { // Напишите метод findMaxExpense — он должен возвращать значение максимальной траты double maxExpense = 0; for (int i = 0; i < expenses.length; i++) { if (expenses[i] > maxExpense) { maxExpense = expenses[i]; } } return maxExpense; } public static void printMenu() { System.out.println("Что вы хотите сделать? "); System.out.println("1 - Конвертировать валюту"); System.out.println("2 - Получить совет"); System.out.println("3 - Ввести трату"); System.out.println("4 - Показать траты за неделю"); System.out.println("5 - Показать самую большую сумму расходов за неделю"); System.out.println("0 - Выход"); } public static void getAdvice(double moneyBeforeSalary, int daysBeforeSalary) { if (moneyBeforeSalary < 3000) { System.out.println("Сегодня лучше поесть дома. Экономьте, и вы дотянете до зарплаты!"); } else if (moneyBeforeSalary < 10000){ if (daysBeforeSalary < 10) { System.out.println("Окей, пора в Макдак!"); } else { System.out.println("Сегодня лучше поесть дома. Экономьте, и вы дотянете до зарплаты!"); } } else if (moneyBeforeSalary < 30000) { if (daysBeforeSalary < 10) { System.out.println("Неплохо! Прикупите долларов и зайдите поужинать в классное место. :)"); } else { System.out.println("Окей, пора в Макдак!"); } } else { if (daysBeforeSalary < 10) { System.out.println("Отлично! Заказывайте крабов!"); } else { System.out.println("Неплохо! Прикупите долларов и зайдите поужинать в классное место. :)"); } } } public static void convert(Scanner scanner, double moneyBeforeSalary) { double rateUSD = 78.5; double rateEUR = 85; double rateJPY = 0.74; System.out.println("Ваши сбережения: " + moneyBeforeSalary + " RUB"); System.out.println("В какую валюту хотите конвертировать? Доступные варианты: 1 - USD, 2 - EUR, 3 - JPY."); int currency = scanner.nextInt(); if (currency == 1) { System.out.println("Ваши сбережения в долларах: " + moneyBeforeSalary / rateUSD); } else if (currency == 2) { System.out.println("Ваши сбережения в евро: " + moneyBeforeSalary / rateEUR); } else if (currency == 3) { System.out.println("Ваши сбережения в иенах: " + moneyBeforeSalary / rateJPY); } else { System.out.println("Неизвестная валюта"); } } public static double saveExpense(Scanner scanner, double moneyBeforeSalary, double [] expenses) { /* Добавьте здесь метод saveExpense, который будет сохранять значение расходов пользователя. saveExpense также должен возвращать новое значение остатка средств. */ System.out.println("За какой день вы хотите ввести трату: 1-ПН, 2-ВТ, 3-СР, 4-ЧТ, 5-ПТ, 6-СБ, 7-ВС?"); int day = scanner.nextInt(); System.out.println("Введите размер траты:"); double expense = scanner.nextDouble(); moneyBeforeSalary = moneyBeforeSalary - expense; expenses[day - 1] = expenses[day - 1] + expense; System.out.println("Значение сохранено! Ваш текущий баланс в рублях: " + moneyBeforeSalary); if (moneyBeforeSalary < 1000) { System.out.println("На вашем счету осталось совсем немного. Стоит начать экономить!"); } return moneyBeforeSalary; } }