-
Notifications
You must be signed in to change notification settings - Fork 0
/
Banking.java
154 lines (130 loc) · 4.69 KB
/
Banking.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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
import java.util.Scanner;
import java.util.ArrayList;
class Account {
private int balance;
private String name;
private String accNo;
private String type;
private boolean status;
private ArrayList<Transaction> transactionHistory;
public Account(String name, String accNo, String type) {
this.name = name;
this.accNo = accNo;
this.type = type;
balance = 0;
transactionHistory = new ArrayList<>();
}
public void deposit(int amount){
balance += amount;
System.out.println();
System.out.println("Amount deposited successfully");
}
public void withdraw(int amount){
if(amount > balance){
System.out.println();
System.out.println("Insufficient balance");
status = false;
} else {
balance -= amount;
System.out.println();
System.out.println("Amount withdrawn successfully");
status = true;
}
}
public void balance(){
System.out.println();
System.out.println("Balance: " + balance);
}
public String getaccNo(){
return accNo;
}
public boolean getstatus(){
return status;
}
public void addTransaction(Transaction t) {
transactionHistory.add(t);
}
public ArrayList<Transaction> getTransactionHistory() {
return transactionHistory;
}
}
class Transaction {
private String accNo;
private String type;
private int amount;
private boolean status;
public Transaction(String accNo, String type, int amount, boolean status) {
this.accNo = accNo;
this.type = type;
this.amount = amount;
this.status = status;
}
public void display() {
System.out.println();
System.out.println("Transaction history");
//give as a table format
System.out.println("Account No: " + accNo + " | Type: " + type + " | Amount: " + amount + " | Status: " + status);
}
}
public class Banking {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("------------------");
System.out.println("1. Create account");
System.out.println("2. Deposit");
System.out.println("3. Withdraw");
System.out.println("4. Balance");
System.out.println("5. Transaction history");
System.out.println("6. Exit");
Account acc = null;
while (true) {
System.out.println();
System.out.print("Enter your choice: ");
int choice = sc.nextInt();
switch (choice) {
case 1:
System.out.println();
System.out.print("Enter name: ");
String name = sc.next();
System.out.print("Enter account no: ");
String accNo = sc.next();
System.out.print("Enter account type: ");
String type = sc.next();
acc = new Account(name, accNo, type);
break;
case 2:
System.out.println();
System.out.print("Enter amount to deposit: ");
int amount = sc.nextInt();
acc.deposit(amount);
Transaction depositTransaction = new Transaction(acc.getaccNo(), "Deposit", amount, acc.getstatus());
acc.addTransaction(depositTransaction);
break;
case 3:
System.out.println();
System.out.print("Enter amount to withdraw: ");
amount = sc.nextInt();
acc.withdraw(amount);
Transaction withdrawTransaction = new Transaction(acc.getaccNo(), "Withdraw", amount, acc.getstatus());
acc.addTransaction(withdrawTransaction);
break;
case 4:
acc.balance();
break;
case 5:
ArrayList<Transaction> history = acc.getTransactionHistory();
for (Transaction t : history) {
t.display();
}
break;
case 6:
sc.close();
System.exit(0);
break;
default:
System.out.println();
System.out.println("Invalid choice");
}
}
}
}