import [Link].
ArrayList;
import [Link];
import [Link];
// BankAccount class
class BankAccount {
private String accountNumber;
private String accountHolder;
private double balance;
// Constructor
public BankAccount(String accountNumber, String accountHolder) { // Fixed comma between
parameters
[Link] = accountNumber;
[Link] = accountHolder;
[Link] = 0.0; // Initial balance is set to 0.0
// Deposit money into the account
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
[Link]("Amount deposited successfully. Current Balance: " + balance);
} else {
[Link]("Invalid amount. Please enter a positive number.");
// Withdraw money from the account
public void withdraw(double amount) {
if (amount <= 0) {
[Link]("Invalid amount. Please enter a positive number.");
} else if (amount > balance) {
[Link]("Insufficient balance. Transaction failed.");
} else {
balance -= amount;
[Link]("Amount withdrawn successfully. Remaining Balance: " + balance);
// Transfer money to another bank account
public void transfer(BankAccount otherAccount, double amount) { // Fixed comma between
parameters
if (amount <= balance) {
[Link](amount); // Withdraw from this account
[Link](amount); // Deposit into the other account
[Link]("Transfer successful. New Balance: " + [Link]);
} else {
[Link]("Insufficient balance. Transfer failed.");
// Display account details
public void displayAccountDetails() {
[Link]("Account Number: " + accountNumber + " Account Holder: " +
accountHolder + " Balance: " + balance);
// Getters and Setters
public String getAccountNumber() { return accountNumber; }
public void setAccountNumber(String accountNumber) { [Link] = accountNumber; }
public String getAccountHolder() { return accountHolder; }
public void setAccountHolder(String accountHolder) { [Link] = accountHolder; }
public double getBalance() { return balance; }
// BankManager class
class BankManager {
private List<BankAccount> accounts = new ArrayList<>();
// Create a new bank account
public void createAccount(String accountNumber, String accountHolder) { // Fixed comma
between parameters
BankAccount newAccount = new BankAccount(accountNumber, accountHolder);
[Link](newAccount);
[Link]("New account created for " + accountHolder + " with Account Number: " +
accountNumber);
// Find an account by account number
private BankAccount findAccount(String accountNumber) {
for (BankAccount account : accounts) {
if ([Link]().equals(accountNumber)) {
return account;
return null;
// Deposit money into an account
public void depositToAccount(String accountNumber, double amount) { // Fixed comma between
parameters
BankAccount account = findAccount(accountNumber);
if (account != null) {
[Link](amount);
} else {
[Link]("Account not found.");
// Withdraw money from an account
public void withdrawFromAccount(String accountNumber, double amount) { // Fixed comma
between parameters
BankAccount account = findAccount(accountNumber);
if (account != null) {
[Link](amount);
} else {
[Link]("Account not found.");
// Transfer money between two accounts
public void transferBetweenAccounts(String fromAccountNumber, String toAccountNumber,
double amount) { // Fixed commas between parameters
BankAccount fromAccount = findAccount(fromAccountNumber);
BankAccount toAccount = findAccount(toAccountNumber);
if (fromAccount != null && toAccount != null) {
[Link](toAccount, amount);
} else {
[Link]("One or both accounts not found.");
// Display details for all accounts
public void displayAllAccounts() {
for (BankAccount account : accounts) {
[Link]();
}
// Main class
public class BankingApplication {
private static BankManager manager = new BankManager();
public static void main(String[] args) {
startBanking(); // Start the banking operations
public static void startBanking() {
Scanner scanner = new Scanner([Link]);
while (true) {
[Link]("\\nWelcome to the Banking Application");
[Link]("1. Create New Account");
[Link]("2. Deposit Money");
[Link]("3. Withdraw Money");
[Link]("4. Transfer Money");
[Link]("5. Display Account Details");
[Link]("6. Exit");
[Link]("Enter your choice: ");
int choice = [Link]();
[Link](); // Consume newline
switch (choice) {
case 1:
createAccountUI(scanner);
break;
case 2:
depositUI(scanner);
break;
case 3:
withdrawUI(scanner);
break;
case 4:
transferUI(scanner);
break;
case 5:
[Link]();
break;
case 6:
[Link]("Thank you for using the Banking Application.");
return;
default:
[Link]("Invalid choice. Please choose again.");
private static void createAccountUI(Scanner scanner) {
[Link]("Enter Account Number: ");
String accountNumber = [Link]();
[Link]("Enter Account Holder Name: ");
String accountHolder = [Link]();
[Link](accountNumber, accountHolder); // Fixed commas
}
private static void depositUI(Scanner scanner) {
[Link]("Enter Account Number: ");
String accountNumber = [Link]();
[Link]("Enter Amount to Deposit: ");
double amount = [Link]();
[Link](); // Consume newline
[Link](accountNumber, amount); // Fixed commas
private static void withdrawUI(Scanner scanner) {
[Link]("Enter Account Number: ");
String accountNumber = [Link]();
[Link]("Enter Amount to Withdraw: ");
double amount = [Link]();
[Link](); // Consume newline
[Link](accountNumber, amount); // Fixed commas
private static void transferUI(Scanner scanner) {
[Link]("Enter From Account Number: ");
String fromAccount = [Link]();
[Link]("Enter To Account Number: ");
String toAccount = [Link]();
[Link]("Enter Amount to Transfer: ");
double amount = [Link]();
[Link](); // Consume newline
[Link](fromAccount, toAccount, amount); // Fixed commas