import tkinter as tk
from tkinter import messagebox
from time import gmtime, strftime
def is_number(s):
try:
float(s)
return 1
except ValueError:
return 0
def check_acc_nmb(num):
try:
fpin=open(num+".txt",'r')
except FileNotFoundError:
[Link]("Error","Invalid Credentials!\nTry Again!")
return 0
[Link]()
return
def home_return(master):
[Link]()
Main_Menu()
def write(master,name,oc,pin):
if( (is_number(name)) or (is_number(oc)==0) or (is_number(pin)==0)or
name==""):
[Link]("Error","Invalid Credentials\nPlease try again.")
[Link]()
return
f1=open("Accnt_Record.txt",'r')
accnt_no=int([Link]())
accnt_no+=1
[Link]()
f1=open("Accnt_Record.txt",'w')
[Link](str(accnt_no))
[Link]()
fdet=open(str(accnt_no)+".txt","w")
[Link](pin+"\n")
[Link](oc+"\n")
[Link](str(accnt_no)+"\n")
[Link](name+"\n")
[Link]()
frec=open(str(accnt_no)+"-[Link]",'w')
[Link]("Date Credit Debit
Balance\n")
[Link](str(strftime("[%Y-%m-%d] [%H:%M:%S] ",gmtime()))+" "+oc+"
"+oc+"\n")
[Link]()
[Link]("Details","Your Account Number is:"+str(accnt_no))
[Link]()
return
def crdt_write(master,amt,accnt,name):
if(is_number(amt)==0):
[Link]("Error","Invalid Credentials\nPlease try again.")
[Link]()
return
fdet=open(accnt+".txt",'r')
pin=[Link]()
camt=int([Link]())
[Link]()
amti=int(amt)
cb=amti+camt
fdet=open(accnt+".txt",'w')
[Link](pin)
[Link](str(cb)+"\n")
[Link](accnt+"\n")
[Link](name+"\n")
[Link]()
frec=open(str(accnt)+"-[Link]",'a+')
[Link](str(strftime("[%Y-%m-%d] [%H:%M:%S] ",gmtime()))+"
"+str(amti)+" "+str(cb)+"\n")
[Link]()
[Link]("Operation Successfull!!","Amount Credited
Successfully!!")
[Link]()
return
def debit_write(master,amt,accnt,name):
if(is_number(amt)==0):
[Link]("Error","Invalid Credentials\nPlease try again.")
[Link]()
return
fdet=open(accnt+".txt",'r')
pin=[Link]()
camt=int([Link]())
[Link]()
if(int(amt)>camt):
[Link]("Error!!","You dont have that amount left in your
account\nPlease try again.")
else:
amti=int(amt)
cb=camt-amti
fdet=open(accnt+".txt",'w')
[Link](pin)
[Link](str(cb)+"\n")
[Link](accnt+"\n")
[Link](name+"\n")
[Link]()
frec=open(str(accnt)+"-[Link]",'a+')
[Link](str(strftime("[%Y-%m-%d] [%H:%M:%S] ",gmtime()))+" "+"
"+str(amti)+" "+str(cb)+"\n")
[Link]()
[Link]("Operation Successfull!!","Amount Debited
Successfully!!")
[Link]()
return
def Cr_Amt(accnt,name):
creditwn=[Link]()
[Link]("600x300")
[Link]("Credit Amount")
[Link](bg="SteelBlue1")
fr1=[Link](creditwn,bg="blue")
l_title=[Link](creditwn,text="BANK MANAGEMENT
SYSTEM",relief="raised",width=2000,padx=600,pady=0,fg="white",bg="blue4",justi
fy="center",anchor="center")
l_title.config(font=("Arial","50","bold"))
l_title.pack(side="top")
l1=[Link](creditwn,relief="raised",font=("Times",16),text="Enter Amount
to be credited: ")
e1=[Link](creditwn,relief="raised")
[Link](side="top")
[Link](side="top")
b=[Link](creditwn,text="Credit",font=("Times",16),relief="raised",command=l
ambda:crdt_write(creditwn,[Link](),accnt,name))
[Link](side="top")
[Link]("<Return>",lambda
x:crdt_write(creditwn,[Link](),accnt,name))
def De_Amt(accnt,name):
debitwn=[Link]()
[Link]("600x300")
[Link]("Debit Amount")
[Link](bg="SteelBlue1")
fr1=[Link](debitwn,bg="blue")
l_title=[Link](debitwn,text="BANK MANAGEMENT
SYSTEM",relief="raised",width=2000,padx=600,pady=0,fg="white",bg="blue4",justi
fy="center",anchor="center")
l_title.config(font=("Arial","50","bold"))
l_title.pack(side="top")
l1=[Link](debitwn,relief="raised",font=("Times",16),text="Enter Amount
to be debited: ")
e1=[Link](debitwn,relief="raised")
[Link](side="top")
[Link](side="top")
b=[Link](debitwn,text="Debit",font=("Times",16),relief="raised",command=lam
bda:debit_write(debitwn,[Link](),accnt,name))
[Link](side="top")
[Link]("<Return>",lambda x:debit_write(debitwn,[Link](),accnt,name))
def disp_bal(accnt):
fdet=open(accnt+".txt",'r')
[Link]()
bal=[Link]()
[Link]()
[Link]("Balance",bal)
def disp_tr_hist(accnt):
disp_wn=[Link]()
disp_wn.geometry("900x600")
disp_wn.title("Transaction History")
disp_wn.configure(bg="SteelBlue1")
fr1=[Link](disp_wn,bg="blue")
l_title=[Link](disp_wn,text="BANK MANAGEMENT
SYSTEM",relief="raised",width=2000,padx=600,pady=0,fg="white",bg="blue4",justi
fy="center",anchor="center")
l_title.config(font=("Arial","50","bold"))
l_title.pack(side="top")
fr1=[Link](disp_wn)
[Link](side="top")
l1=[Link](disp_wn,text="Your Transaction
History:",font=("Times",16),padx=100,pady=20,width=1000,bg="blue4",fg="SteelBl
ue1",relief="raised")
[Link](side="top")
fr2=[Link](disp_wn)
[Link](side="top")
frec=open(accnt+"-[Link]",'r')
for line in frec:
l=[Link](disp_wn,anchor="w",text=line,relief="raised",width=2000)
[Link](side="top")
b=[Link](disp_wn,text="Quit",relief="raised",command=disp_wn.destroy)
[Link](side="top")
[Link]()
def logged_in_menu(accnt,name):
rootwn=[Link]()
[Link]("1600x500")
[Link]("CopyAssignment Bank | Welcome - "+name)
[Link](background='SteelBlue1')
fr1=[Link](rootwn)
[Link](side="top")
l_title=[Link](rootwn,text="BANK MANAGEMENT
SYSTEM",relief="raised",width=2000,padx=600,pady=0,fg="white",bg="blue4",justi
fy="center",anchor="center")
l_title.config(font=("Arial","50","bold"))
l_title.pack(side="top")
label=[Link](text="Logged in as:
"+name,relief="raised",bg="blue3",font=("Times",16),fg="white",anchor="center"
,justify="center")
[Link](side="top")
img2=[Link](file="[Link]")
myimg2=[Link](2,2)
img3=[Link](file="[Link]")
myimg3=[Link](2,2)
img4=[Link](file="[Link]")
myimg4=[Link](2,2)
img5=[Link](file="[Link]")
myimg5=[Link](2,2)
b2=[Link](image=myimg2,command=lambda: Cr_Amt(accnt,name))
[Link]=myimg2
b3=[Link](image=myimg3,command=lambda: De_Amt(accnt,name))
[Link]=myimg3
b4=[Link](image=myimg4,command=lambda: disp_bal(accnt))
[Link]=myimg4
b5=[Link](image=myimg5,command=lambda: disp_tr_hist(accnt))
[Link]=myimg5
img6=[Link](file="[Link]")
myimg6=[Link](2,2)
b6=[Link](image=myimg6,relief="raised",command=lambda: logout(rootwn))
[Link]=myimg6
[Link](x=100,y=150)
[Link](x=100,y=220)
[Link](x=900,y=150)
[Link](x=900,y=220)
[Link](x=500,y=400)
def logout(master):
[Link]("Logged Out","You Have Been Successfully Logged
Out!!")
[Link]()
Main_Menu()
def check_log_in(master,name,acc_num,pin):
if(check_acc_nmb(acc_num)==0):
[Link]()
Main_Menu()
return
if( (is_number(name)) or (is_number(pin)==0) ):
[Link]("Error","Invalid Credentials\nPlease try again.")
[Link]()
Main_Menu()
else:
[Link]()
logged_in_menu(acc_num,name)
def log_in(master):
[Link]()
loginwn=[Link]()
[Link]("600x300")
[Link]("Log in")
[Link](bg="SteelBlue1")
fr1=[Link](loginwn,bg="blue")
l_title=[Link](loginwn,text="BANK MANAGEMENT
SYSTEM",relief="raised",width=2000,padx=600,pady=0,fg="white",bg="blue4",justi
fy="center",anchor="center")
l_title.config(font=("Arial","50","bold"))
l_title.pack(side="top")
l1=[Link](loginwn,text="Enter Name:",font=("Times",16),relief="raised")
[Link](side="top")
e1=[Link](loginwn)
[Link](side="top")
l2=[Link](loginwn,text="Enter account
number:",font=("Times",16),relief="raised")
[Link](side="top")
e2=[Link](loginwn)
[Link](side="top")
l3=[Link](loginwn,text="Enter your
PIN:",font=("Times",16),relief="raised")
[Link](side="top")
e3=[Link](loginwn,show="*")
[Link](side="top")
b=[Link](loginwn,text="Submit",command=lambda:
check_log_in(loginwn,[Link]().strip(),[Link]().strip(),[Link]().strip()))
[Link](side="top")
b1=[Link](text="HOME",font=("Times",16),relief="raised",bg="blue4",fg="whit
e",command=lambda: home_return(loginwn))
[Link](side="top")
[Link]("<Return>",lambda
x:check_log_in(loginwn,[Link]().strip(),[Link]().strip(),[Link]().strip()))
def Create():
crwn=[Link]()
[Link]("600x300")
[Link]("Create Account")
[Link](bg="SteelBlue1")
fr1=[Link](crwn,bg="blue")
l_title=[Link](crwn,text="BANK MANAGEMENT
SYSTEM",relief="raised",width=2000,padx=600,pady=0,fg="white",bg="blue4",justi
fy="center",anchor="center")
l_title.config(font=("Arial","50","bold"))
l_title.pack(side="top")
l1=[Link](crwn,text="Enter Name:",font=("Times",16),relief="raised")
[Link](side="top")
e1=[Link](crwn)
[Link](side="top")
l2=[Link](crwn,text="Enter opening
credit:",font=("Times",16),relief="raised")
[Link](side="top")
e2=[Link](crwn)
[Link](side="top")
l3=[Link](crwn,text="Enter desired
PIN:",font=("Times",16),relief="raised")
[Link](side="top")
e3=[Link](crwn,show="*")
[Link](side="top")
b=[Link](crwn,text="Submit",font=("Times",16),command=lambda:
write(crwn,[Link]().strip(),[Link]().strip(),[Link]().strip()))
[Link](side="top")
[Link]("<Return>",font=("Times",16),command=lambda
x:write(crwn,[Link]().strip(),[Link]().strip(),[Link]().strip()))
return
def Main_Menu():
rootwn=[Link]()
[Link]("1600x500")
[Link]("Bank Management System - CopyAssignment")
[Link](background='SteelBlue1')
fr1=[Link](rootwn)
[Link](side="top")
l_title=[Link](text="BANK MANAGEMENT SYSTEM
",relief="raised",width=2000,padx=600,pady=0,fg="white",bg="blue4",justify="ce
nter",anchor="center")
l_title.config(font=("Verdana","40","bold"))
l_title.pack(side="top")
imgc1=[Link](file="C:/Users/prana/teacher's assistant/[Link]")
imglo=[Link](file="C:/Users/prana/teacher's assistant/[Link]")
imgc=[Link](2,2)
imglog=[Link](2,2)
b1=[Link](image=imgc,command=Create)
[Link]=imgc
b2=[Link](image=imglog,command=lambda: log_in(rootwn))
[Link]=imglog
img6=[Link](file="C:/Users/prana/teacher's assistant/[Link]")
myimg6=[Link](2,2)
b6=[Link](image=myimg6,command=[Link])
[Link]=myimg6
[Link](x=800,y=300)
[Link](x=800,y=200)
[Link](x=920,y=400)
[Link]()
Main_Menu()