/
vikkkka
/
development_tools_lesson_2
Обзор
Документация
Войти
/
vikkkka
/
development_tools_lesson_2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/Main.java
177 строк
6 KB
Vika
First commit
15 дек 2025, 12:10
15 дек 2025, 12:10
d82b2c6
Код
Авторство
О чём код?
import java.util.Scanner; public class Main { private static Account[] accounts = new Account[10]; public static void main(String[] args) { initializeAccounts(); demonstrateSingleAccount(); runBankApplication(); } private static void initializeAccounts() { for (int i = 0; i < 10; i++) { accounts[i] = new Account(i, 10000); } Account.setAnnualInterestRate(4.5); } private static void demonstrateSingleAccount() { System.out.println("=== Демонстрация работы с конкретным счетом ==="); Account demoAccount = new Account(1155, 300000); Account.setAnnualInterestRate(6.5); System.out.println("Счет создан:"); System.out.println("ID: " + demoAccount.getId()); System.out.println("Начальный баланс: " + demoAccount.getBalance() + " руб."); System.out.println("Дата создания: " + demoAccount.getDateCreated()); demoAccount.withdraw(16500); demoAccount.deposit(50000); System.out.println("\nПосле операций:"); System.out.println("Баланс: " + demoAccount.getBalance() + " руб."); System.out.println("Ежемесячный процент: " + demoAccount.getMonthlyInterest() + " руб."); System.out.println("Дата создания: " + demoAccount.getDateCreated()); System.out.println("===============================================\n"); } private static void runBankApplication() { Scanner scanner = new Scanner(System.in); while (true) { int accountId = getValidAccountId(scanner); if (accountId == -1) { System.out.println("Выход из программы."); break; } processAccount(accounts[accountId], scanner); } scanner.close(); } private static int getValidAccountId(Scanner scanner) { int accountId; while (true) { System.out.print("Введите ID счета: "); if (scanner.hasNextInt()) { accountId = scanner.nextInt(); if (accountId >= 0 && accountId < 10) { return accountId; } else { System.out.println("Неверный ID! Пожалуйста, введите ID от 0 до 9."); } } else { System.out.println("Неверный ввод! Введите целое число."); scanner.next(); } } } private static void processAccount(Account account, Scanner scanner) { int choice; do { displayMenu(); System.out.print("Введите пункт меню: "); if (scanner.hasNextInt()) { choice = scanner.nextInt(); switch (choice) { case 1: // Проверить баланс System.out.println("Баланс равен " + account.getBalance()); break; case 2: // Снять со счета performWithdrawal(account, scanner); break; case 3: // Положить на счет performDeposit(account, scanner); break; case 4: // Выйти System.out.println("Выход из меню счета ID: " + account.getId()); break; default: System.out.println("Неверный пункт меню! Выберите от 1 до 4."); } } else { System.out.println("Неверный ввод! Введите число от 1 до 4."); scanner.next(); // Очистка некорректного ввода choice = 0; } System.out.println(); // Пустая строка для разделения } while (choice != 4); } private static void displayMenu() { System.out.println("Основное меню"); System.out.println("1: проверить баланс счета"); System.out.println("2: снять со счета"); System.out.println("3: положить на счет"); System.out.println("4: выйти"); } private static void performWithdrawal(Account account, Scanner scanner) { System.out.print("Введите сумму для снятия со счета: "); if (scanner.hasNextDouble()) { double amount = scanner.nextDouble(); if (amount > 0) { double oldBalance = account.getBalance(); account.withdraw(amount); if (account.getBalance() < oldBalance) { System.out.println("Снято " + amount + " руб. Новый баланс: " + account.getBalance()); } } else { System.out.println("Неверная сумма для снятия!"); } } else { System.out.println("Неверный ввод! Введите числовое значение."); scanner.next(); } } private static void performDeposit(Account account, Scanner scanner) { System.out.print("Введите сумму для пополнения счета: "); if (scanner.hasNextDouble()) { double amount = scanner.nextDouble(); if (amount > 0) { double oldBalance = account.getBalance(); account.deposit(amount); if (account.getBalance() > oldBalance) { System.out.println("Внесено " + amount + " руб. Новый баланс: " + account.getBalance()); } } else { System.out.println("Неверная сумма для пополнения!"); } } else { System.out.println("Неверный ввод! Введите числовое значение."); scanner.next(); } } }