Java Bank Transfer App

This project is a simple Java application that allows users to perform fund transfers between two bank accounts. The program uses a console-based menu to choose transfer options.

Java Code Snippet

                    

import java.util.Scanner;

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

        // Create two bank account objects
        Account account1 = new Account(1500, "John Doe", 1234456);
        Account account2 = new Account(2500, "Mike Sanders", 678954);

        // Main menu loop
        while (true) {
            System.out.println("Choose an option:");
            System.out.println("1. Transfer from account 1 to account 2");
            System.out.println("2. Transfer from account 2 to account 1");
            System.out.println("3. Quit");

            // Handle user input
            int choice = input.nextInt();
            input.nextLine(); // Consume the newline character

            switch (choice) {
                case 1:
                    performTransfer(account1, account2, input);
                    break;
                case 2:
                    performTransfer(account2, account1, input);
                    break;
                case 3:
                    printAccountSummary(account1, account2);
                    System.out.println("Exiting the program. Goodbye!");
                    System.exit(0);
                default:
                    System.out.println("Invalid choice. Please enter a valid option.");
            }
        }
    }

    // Helper method to perform fund transfer
    private static void performTransfer(Account source, Account destination, Scanner input) {
        System.out.print("Enter the amount to transfer: ");
        double amount = input.nextDouble();
        source.transfer(destination, amount);
        System.out.println("Transfer successful!");
        printAccountSummary(source, destination);
    }

    // Helper method to print account summary
    private static void printAccountSummary(Account account1, Account account2) {
        System.out.println("\nAccount Summary:");
        System.out.println("1. " + account1);
        System.out.println("2. " + account2 + "\n");
    }
}

class Account {
    private double totalBalance;
    private String name;
    private long acctNum;

    public Account(double initBal, String owner, long number) {
        totalBalance = initBal;
        name = owner;
        acctNum = number;
    }

    public void withdraw(double amount) {
        if (totalBalance >= amount)
            totalBalance -= amount;
        else
            System.out.println("Insufficient funds");
    }

    public void deposit(double amount) {
        totalBalance += amount;
    }

    public double getBalance() {
        return totalBalance;
    }

    public String toString() {
        return "Name: " + name + "\nAccount Number: " + acctNum + "\nBalance: $" + totalBalance;
    }

    public void transfer(Account destination, double amount) {
        if (totalBalance >= amount) {
            withdraw(amount);
            destination.deposit(amount);
            System.out.println("Transfer successful!");
        } else {
            System.out.println("Insufficient funds for the transfer.");
        }
    }
}

                    
                

Project Images

Pseudocode Flowchart

Image 3

Ouput Image

Image 4