-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.java
137 lines (115 loc) · 3.31 KB
/
main.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
import java.util.HashMap;
import java.util.Map;
class Account {
private String accountNumber;
private String accountHolderName;
private double balance;
public Account(String accountNumber, String accountHolderName) {
this.accountNumber = accountNumber;
this.accountHolderName = accountHolderName;
this.balance = 0.0;
}
public String getAccountNumber() {
return accountNumber;
}
public String getAccountHolderName() {
return accountHolderName;
}
public double getBalance() {
return balance;
}
public void deposit(double amount) {
balance += amount;
}
public void withdraw(double amount) {
if (balance >= amount) {
balance -= amount;
} else {
System.out.println("Insufficient balance");
}
}
public void transfer(Account recipient, double amount) {
if (balance >= amount) {
withdraw(amount);
recipient.deposit(amount);
System.out.println("Transfer successful");
} else {
System.out.println("Insufficient balance for transfer");
}
}
}
class Bank {
private Map<String, Account> accounts;
public Bank() {
accounts = new HashMap<>();
}
public void createAccount(String accountNumber, String accountHolderName) {
if (!accounts.containsKey(accountNumber)) {
Account account = new Account(accountNumber, accountHolderName);
accounts.put(accountNumber, account);
System.out.println("Account created successfully");
} else {
System.out.println("Account already exists");
}
}
public Account getAccount(String accountNumber) {
return accounts.get(accountNumber);
}
}
class UserInterface {
private Bank bank;
public UserInterface(Bank bank) {
this.bank = bank;
}
public void displayMenu() {
System.out.println("Banking System Menu");
System.out.println("1. Create Account");
System.out.println("2. Deposit");
System.out.println("3. Withdraw");
System.out.println("4. Transfer");
System.out.println("5. Exit");
}
public void processChoice(int choice) {
switch (choice) {
case 1:
createAccount();
break;
case 2:
deposit();
break;
case 3:
withdraw();
break;
case 4:
transfer();
break;
case 5:
System.out.println("Exiting...");
System.exit(0);
default:
System.out.println("Invalid choice");
}
}
private void createAccount() {
// Code for creating an account
}
private void deposit() {
// Code for depositing funds
}
private void withdraw() {
// Code for withdrawing funds
}
private void transfer() {
// Code for transferring funds
}
}
public class Main {
public static void main(String[] args) {
Bank bank = new Bank();
UserInterface ui = new UserInterface(bank);
while (true) {
ui.displayMenu();
// Get user choice and call processChoice method
}
}
}