-
Notifications
You must be signed in to change notification settings - Fork 0
/
assignment1.js
105 lines (86 loc) · 2.52 KB
/
assignment1.js
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
class Transaction {
constructor(type, amount) {
this._type = type;
this._amount = amount;
this._timestamp = new Date();
}
// Getters
get type() {
return this._type;
}
get amount() {
return this._amount;
}
get timestamp() {
return this._timestamp;
}
}
class BankAccount {
constructor(accountNumber, firstName, lastName) {
this._accountNumber = accountNumber;
this._firstName = firstName;
this._lastName = lastName;
this._accountHolder = `${firstName} ${lastName}`;
this._balance = 0;
this._transactions = [];
}
// Getters
get accountNumber() {
return this._accountNumber;
}
get firstName() {
return this._firstName;
}
get lastName() {
return this._lastName;
}
get accountHolder() {
return this._accountHolder;
}
get balance() {
return this._balance;
}
// Methods
deposit(amount) {
// Deposit money into the account
this._balance += amount;
const transaction = new Transaction('Deposit', amount);
this._transactions.push(transaction);
}
withdraw(amount) {
// Withdraw money from the account
if (this._balance >= amount) {
this._balance -= amount;
const transaction = new Transaction('Withdrawal', amount);
this._transactions.push(transaction);
} else {
console.log("Insufficient funds.");
}
}
getTransactions() {
// View transaction history
return this._transactions;
}
}
// Create an instance of BankAccount
const myAccount = new BankAccount(2171396313, "Developer", "Kings");
// Deposit money into the account
myAccount.deposit(100000);
// Withdraw money from the account
myAccount.withdraw(7000);
// Get transaction history
const transactions = myAccount.getTransactions();
// Print account details and transaction history
console.log("Account Details:");
console.log("Account Holder:", myAccount.accountHolder);
console.log("Account Number:", myAccount.accountNumber);
console.log("Balance:", myAccount.balance);
console.log("\nTransaction History:");
transactions.forEach((transaction, index) => {
console.log(`Transaction ${index + 1}:`);
console.log("Type:", transaction.type);
console.log("Amount:", transaction.amount);
console.log("Timestamp:", transaction.timestamp);
console.log("---------------------");
console.log("---------------------");
});