1
+ import random
2
+
3
+
4
+ class Account :
5
+ # Construct an Account object
6
+ def __init__ (self , id , balance = 0 , annualInterestRate = 3.4 ):
7
+ self .id = id
8
+ self .balance = balance
9
+ self .annualInterestRate = annualInterestRate
10
+
11
+ def getId (self ):
12
+ return self .id
13
+
14
+ def getBalance (self ):
15
+ return self .balance
16
+
17
+ def getAnnualInterestRate (self ):
18
+ return self .annualInterestRate
19
+
20
+ def getMonthlyInterestRate (self ):
21
+ return self .annualInterestRate / 12
22
+
23
+ def withdraw (self , amount ):
24
+ self .balance -= amount
25
+
26
+ def deposit (self , amount ):
27
+ self .balance += amount
28
+
29
+ def getMonthlyInterest (self ):
30
+ return self .balance * self .getMonthlyInterestRate ()
31
+
32
+
33
+ def main ():
34
+ # Creating accounts
35
+ accounts = []
36
+ for i in range (1000 , 9999 ):
37
+ account = Account (i , 0 )
38
+ accounts .append (account )
39
+
40
+ # ATM Processes
41
+
42
+
43
+ while True :
44
+
45
+ # Reading id from user
46
+ id = int (input ("\n Enter account pin: " ))
47
+
48
+ # Loop till id is valid
49
+ while id < 1000 or id > 9999 :
50
+ id = int (input ("\n Invalid Id.. Re-enter: " ))
51
+
52
+ # Iterating over account session
53
+ while True :
54
+
55
+ # Printing menu
56
+ print ("\n 1 - View Balance \t 2 - Withdraw \t 3 - Deposit \t 4 - Exit " )
57
+
58
+ # Reading selection
59
+ selection = int (input ("\n Enter your selection: " ))
60
+
61
+ # Getting account object
62
+ for acc in accounts :
63
+ # Comparing account id
64
+ if acc .getId () == id :
65
+ accountObj = acc
66
+ break
67
+
68
+ # View Balance
69
+ if selection == 1 :
70
+ # Printing balance
71
+ print (accountObj .getBalance ())
72
+
73
+ # Withdraw
74
+ elif selection == 2 :
75
+ # Reading amount
76
+ amt = float (input ("\n Enter amount to withdraw: " ))
77
+ ver_withdraw = input ("Is this the correct amount, Yes or No ? " + str (amt ) + " " )
78
+
79
+ if ver_withdraw == "Yes" :
80
+ print ("Verify withdraw" )
81
+ else :
82
+ break
83
+
84
+ if amt < accountObj .getBalance ():
85
+ # Calling withdraw method
86
+ accountObj .withdraw (amt )
87
+ # Printing updated balance
88
+ print ("\n Updated Balance: " + str (accountObj .getBalance ()) + " n" )
89
+ else :
90
+ print ("\n You're balance is less than withdrawl amount: " + str (accountObj .getBalance ()) + " n" )
91
+ print ("\n Please make a deposit." );
92
+
93
+ # Deposit
94
+ elif selection == 3 :
95
+ # Reading amount
96
+ amt = float (input ("\n Enter amount to deposit: " ))
97
+ ver_deposit = input ("Is this the correct amount, Yes, or No ? " + str (amt ) + " " )
98
+
99
+ if ver_deposit == "Yes" :
100
+ # Calling deposit method
101
+ accountObj .deposit (amt );
102
+ # Printing updated balance
103
+ print ("\n Updated Balance: " + str (accountObj .getBalance ()) + " n" )
104
+ else :
105
+ break
106
+
107
+ elif selection == 4 :
108
+ print ("nTransaction is now complete." )
109
+ print ("Transaction number: " , random .randint (10000 , 1000000 ))
110
+ print ("Current Interest Rate: " , accountObj .annualInterestRate )
111
+ print ("Monthly Interest Rate: " , accountObj .annualInterestRate / 12 )
112
+ print ("Thanks for choosing us as your bank" )
113
+ exit ()
114
+
115
+ # Any other choice
116
+ else :
117
+ print ("nThat's an invalid choice." )
118
+
119
+ # Main function
120
+ main ()
0 commit comments