-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathBankingSystem.java
More file actions
144 lines (122 loc) · 5.14 KB
/
BankingSystem.java
File metadata and controls
144 lines (122 loc) · 5.14 KB
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
import java.util.Scanner;
public class BankingSystem{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int choice;
int[] accountNumbers = {20031004, 20030911, 20030831};
double[] balances = {500.0, 1000.0, 1300.0};
do{
System.out.println("\n=== Banking System Menu ===");
System.out.println("1. Deposit");
System.out.println("2. Balance Inquiry");
System.out.println("3. Withdraw");
System.out.println("4. Transfer Money");
System.out.println("5. Exit");
System.out.print("Enter Your Choice: ");
choice = scan.nextInt();
switch (choice){
case 1:
deposit(scan, accountNumbers, balances);
break;
case 2:
balanceInquiry(scan, accountNumbers, balances);
break;
case 3:
withdraw(scan, accountNumbers, balances);
break;
case 4:
transferMoney(scan, accountNumbers, balances); // Call transferMoney
break;
case 5:
System.out.println("Exiting the system. Thank you!");
break;
default:
System.out.println("Invalid choice. Please try again.");
}
} while (choice != 5);
scan.close();
}
static int findAccount(int[] accountNumbers, int accountNumber) {
for (int i = 0; i < accountNumbers.length; i++) {
if (accountNumbers[i] == accountNumber) {
return i;
}
}
return -1; // Account not found
}
static void deposit(Scanner scanner, int[] accountNumber, double[] balances) {
System.out.print("Enter account number: ");
int accountNumbers = scanner.nextInt();
int index = findAccount(accountNumber, accountNumbers);
if (index != -1) {
System.out.print("Enter deposit amount: ");
double amount = scanner.nextDouble();
if (amount > 0) {
balances[index] += amount;
System.out.printf("Deposit successful.%nNew balance: %.2f%n" , balances[index]);
} else {
System.out.println("Invalid amount. Please enter a positive value.");
}
} else {
System.out.println("Account not found.");
}
}
static void withdraw(Scanner scanner, int[] accountNumbers, double[] balances) {
System.out.print("Enter account number: ");
int accountNumber = scanner.nextInt();
int index = findAccount(accountNumbers, accountNumber);
if (index != -1) {
System.out.print("Enter withdrawal amount: ");
double amount = scanner.nextDouble();
if (amount > 0 && amount <= balances[index]) {
balances[index] -= amount;
System.out.printf("Withdrawal successful.%nNew balance: %.2f%n" , balances[index]);
} else {
System.out.println("Invalid amount or insufficient balance.");
}
} else {
System.out.println("Account not found.");
}
}
static void balanceInquiry(Scanner scanner, int[] accountNumbers, double[] balances) {
System.out.print("Enter account number: ");
int accountNumber = scanner.nextInt();
int index = findAccount(accountNumbers, accountNumber);
if (index != -1) {
System.out.printf("Account Balance: %.2f%n" , balances[index]);
} else {
System.out.println("Account not found.");
}
}
/**
* Transfers money between accounts.
*
* @param scanner Scanner object for user input.
* @param accountNumbers Array of account numbers.
* @param balances Array of account balances.
*/
public static void transferMoney(Scanner scanner, int[] accountNumbers, double[] balances) {
System.out.print("Enter sender's account number: ");
int senderAccount = scanner.nextInt();
System.out.print("Enter receiver's account number: ");
int receiverAccount = scanner.nextInt();
System.out.print("Enter amount to transfer: ");
double amount = scanner.nextDouble();
int senderIndex = -1, receiverIndex = -1;
for (int i = 0; i < accountNumbers.length; i++) {
if (accountNumbers[i] == senderAccount) senderIndex = i;
if (accountNumbers[i] == receiverAccount) receiverIndex = i;
}
if (senderIndex == -1 || receiverIndex == -1) {
System.out.println("One or both account numbers are invalid.");
return;
}
if (balances[senderIndex] < amount) {
System.out.println("Insufficient balance in sender's account.");
return;
}
balances[senderIndex] -= amount;
balances[receiverIndex] += amount;
System.out.printf("Transfer successful! $%.2f transferred from account %d to account %d.%n", amount, senderAccount, receiverAccount);
}
}