0% found this document useful (0 votes)
48 views

Cs Project

This Python code defines functions for a basic banking system with account creation, login, transactions, and history viewing capabilities. It uses Tkinter for the GUI and stores account details and transaction records in text files. Key functions include writing new account details to files, crediting/debiting amounts and updating balances and records, and displaying transaction histories. The code provides a framework to create, log in to, and manage bank accounts through a simple GUI interface.

Uploaded by

pranav2923
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views

Cs Project

This Python code defines functions for a basic banking system with account creation, login, transactions, and history viewing capabilities. It uses Tkinter for the GUI and stores account details and transaction records in text files. Key functions include writing new account details to files, crediting/debiting amounts and updating balances and records, and displaying transaction histories. The code provides a framework to create, log in to, and manage bank accounts through a simple GUI interface.

Uploaded by

pranav2923
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

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:
messagebox.showinfo("Error","Invalid Credentials!\nTry Again!")
return 0
fpin.close()
return

def home_return(master):
master.destroy()
Main_Menu()

def write(master,name,oc,pin):

if( (is_number(name)) or (is_number(oc)==0) or (is_number(pin)==0)or


name==""):
messagebox.showinfo("Error","Invalid Credentials\nPlease try again.")
master.destroy()
return

f1=open("Accnt_Record.txt",'r')
accnt_no=int(f1.readline())
accnt_no+=1
f1.close()

f1=open("Accnt_Record.txt",'w')
f1.write(str(accnt_no))
f1.close()

fdet=open(str(accnt_no)+".txt","w")
fdet.write(pin+"\n")
fdet.write(oc+"\n")
fdet.write(str(accnt_no)+"\n")
fdet.write(name+"\n")
fdet.close()
frec=open(str(accnt_no)+"-rec.txt",'w')
frec.write("Date Credit Debit
Balance\n")
frec.write(str(strftime("[%Y-%m-%d] [%H:%M:%S] ",gmtime()))+" "+oc+"
"+oc+"\n")
frec.close()

messagebox.showinfo("Details","Your Account Number is:"+str(accnt_no))


master.destroy()
return

def crdt_write(master,amt,accnt,name):

if(is_number(amt)==0):
messagebox.showinfo("Error","Invalid Credentials\nPlease try again.")
master.destroy()
return

fdet=open(accnt+".txt",'r')
pin=fdet.readline()
camt=int(fdet.readline())
fdet.close()
amti=int(amt)
cb=amti+camt
fdet=open(accnt+".txt",'w')
fdet.write(pin)
fdet.write(str(cb)+"\n")
fdet.write(accnt+"\n")
fdet.write(name+"\n")
fdet.close()
frec=open(str(accnt)+"-rec.txt",'a+')
frec.write(str(strftime("[%Y-%m-%d] [%H:%M:%S] ",gmtime()))+"
"+str(amti)+" "+str(cb)+"\n")
frec.close()
messagebox.showinfo("Operation Successfull!!","Amount Credited
Successfully!!")
master.destroy()
return

def debit_write(master,amt,accnt,name):

if(is_number(amt)==0):
messagebox.showinfo("Error","Invalid Credentials\nPlease try again.")
master.destroy()
return

fdet=open(accnt+".txt",'r')
pin=fdet.readline()
camt=int(fdet.readline())
fdet.close()
if(int(amt)>camt):
messagebox.showinfo("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')
fdet.write(pin)
fdet.write(str(cb)+"\n")
fdet.write(accnt+"\n")
fdet.write(name+"\n")
fdet.close()
frec=open(str(accnt)+"-rec.txt",'a+')
frec.write(str(strftime("[%Y-%m-%d] [%H:%M:%S] ",gmtime()))+" "+"
"+str(amti)+" "+str(cb)+"\n")
frec.close()
messagebox.showinfo("Operation Successfull!!","Amount Debited
Successfully!!")
master.destroy()
return

def Cr_Amt(accnt,name):
creditwn=tk.Tk()
creditwn.geometry("600x300")
creditwn.title("Credit Amount")
creditwn.configure(bg="SteelBlue1")
fr1=tk.Frame(creditwn,bg="blue")
l_title=tk.Message(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=tk.Label(creditwn,relief="raised",font=("Times",16),text="Enter Amount
to be credited: ")
e1=tk.Entry(creditwn,relief="raised")
l1.pack(side="top")
e1.pack(side="top")

b=tk.Button(creditwn,text="Credit",font=("Times",16),relief="raised",command=l
ambda:crdt_write(creditwn,e1.get(),accnt,name))
b.pack(side="top")
creditwn.bind("<Return>",lambda
x:crdt_write(creditwn,e1.get(),accnt,name))

def De_Amt(accnt,name):
debitwn=tk.Tk()
debitwn.geometry("600x300")
debitwn.title("Debit Amount")
debitwn.configure(bg="SteelBlue1")
fr1=tk.Frame(debitwn,bg="blue")
l_title=tk.Message(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=tk.Label(debitwn,relief="raised",font=("Times",16),text="Enter Amount
to be debited: ")
e1=tk.Entry(debitwn,relief="raised")
l1.pack(side="top")
e1.pack(side="top")

b=tk.Button(debitwn,text="Debit",font=("Times",16),relief="raised",command=lam
bda:debit_write(debitwn,e1.get(),accnt,name))
b.pack(side="top")
debitwn.bind("<Return>",lambda x:debit_write(debitwn,e1.get(),accnt,name))

def disp_bal(accnt):
fdet=open(accnt+".txt",'r')
fdet.readline()
bal=fdet.readline()
fdet.close()
messagebox.showinfo("Balance",bal)

def disp_tr_hist(accnt):
disp_wn=tk.Tk()
disp_wn.geometry("900x600")
disp_wn.title("Transaction History")
disp_wn.configure(bg="SteelBlue1")
fr1=tk.Frame(disp_wn,bg="blue")
l_title=tk.Message(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=tk.Frame(disp_wn)
fr1.pack(side="top")
l1=tk.Message(disp_wn,text="Your Transaction
History:",font=("Times",16),padx=100,pady=20,width=1000,bg="blue4",fg="SteelBl
ue1",relief="raised")
l1.pack(side="top")
fr2=tk.Frame(disp_wn)
fr2.pack(side="top")
frec=open(accnt+"-rec.txt",'r')
for line in frec:
l=tk.Message(disp_wn,anchor="w",text=line,relief="raised",width=2000)
l.pack(side="top")
b=tk.Button(disp_wn,text="Quit",relief="raised",command=disp_wn.destroy)
b.pack(side="top")
frec.close()

def logged_in_menu(accnt,name):
rootwn=tk.Tk()
rootwn.geometry("1600x500")
rootwn.title("CopyAssignment Bank | Welcome - "+name)
rootwn.configure(background='SteelBlue1')
fr1=tk.Frame(rootwn)
fr1.pack(side="top")
l_title=tk.Message(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=tk.Label(text="Logged in as:
"+name,relief="raised",bg="blue3",font=("Times",16),fg="white",anchor="center"
,justify="center")
label.pack(side="top")
img2=tk.PhotoImage(file="credit.gif")
myimg2=img2.subsample(2,2)
img3=tk.PhotoImage(file="debit.gif")
myimg3=img3.subsample(2,2)
img4=tk.PhotoImage(file="balance1.gif")
myimg4=img4.subsample(2,2)
img5=tk.PhotoImage(file="transaction.gif")
myimg5=img5.subsample(2,2)
b2=tk.Button(image=myimg2,command=lambda: Cr_Amt(accnt,name))
b2.image=myimg2
b3=tk.Button(image=myimg3,command=lambda: De_Amt(accnt,name))
b3.image=myimg3
b4=tk.Button(image=myimg4,command=lambda: disp_bal(accnt))
b4.image=myimg4
b5=tk.Button(image=myimg5,command=lambda: disp_tr_hist(accnt))
b5.image=myimg5

img6=tk.PhotoImage(file="logout.gif")
myimg6=img6.subsample(2,2)
b6=tk.Button(image=myimg6,relief="raised",command=lambda: logout(rootwn))
b6.image=myimg6
b2.place(x=100,y=150)
b3.place(x=100,y=220)
b4.place(x=900,y=150)
b5.place(x=900,y=220)
b6.place(x=500,y=400)

def logout(master):

messagebox.showinfo("Logged Out","You Have Been Successfully Logged


Out!!")
master.destroy()
Main_Menu()

def check_log_in(master,name,acc_num,pin):
if(check_acc_nmb(acc_num)==0):
master.destroy()
Main_Menu()
return

if( (is_number(name)) or (is_number(pin)==0) ):


messagebox.showinfo("Error","Invalid Credentials\nPlease try again.")
master.destroy()
Main_Menu()
else:
master.destroy()
logged_in_menu(acc_num,name)

def log_in(master):
master.destroy()
loginwn=tk.Tk()
loginwn.geometry("600x300")
loginwn.title("Log in")
loginwn.configure(bg="SteelBlue1")
fr1=tk.Frame(loginwn,bg="blue")
l_title=tk.Message(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=tk.Label(loginwn,text="Enter Name:",font=("Times",16),relief="raised")
l1.pack(side="top")
e1=tk.Entry(loginwn)
e1.pack(side="top")
l2=tk.Label(loginwn,text="Enter account
number:",font=("Times",16),relief="raised")
l2.pack(side="top")
e2=tk.Entry(loginwn)
e2.pack(side="top")
l3=tk.Label(loginwn,text="Enter your
PIN:",font=("Times",16),relief="raised")
l3.pack(side="top")
e3=tk.Entry(loginwn,show="*")
e3.pack(side="top")
b=tk.Button(loginwn,text="Submit",command=lambda:
check_log_in(loginwn,e1.get().strip(),e2.get().strip(),e3.get().strip()))
b.pack(side="top")

b1=tk.Button(text="HOME",font=("Times",16),relief="raised",bg="blue4",fg="whit
e",command=lambda: home_return(loginwn))
b1.pack(side="top")
loginwn.bind("<Return>",lambda
x:check_log_in(loginwn,e1.get().strip(),e2.get().strip(),e3.get().strip()))

def Create():

crwn=tk.Tk()
crwn.geometry("600x300")
crwn.title("Create Account")
crwn.configure(bg="SteelBlue1")
fr1=tk.Frame(crwn,bg="blue")
l_title=tk.Message(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=tk.Label(crwn,text="Enter Name:",font=("Times",16),relief="raised")
l1.pack(side="top")
e1=tk.Entry(crwn)
e1.pack(side="top")
l2=tk.Label(crwn,text="Enter opening
credit:",font=("Times",16),relief="raised")
l2.pack(side="top")
e2=tk.Entry(crwn)
e2.pack(side="top")
l3=tk.Label(crwn,text="Enter desired
PIN:",font=("Times",16),relief="raised")
l3.pack(side="top")
e3=tk.Entry(crwn,show="*")
e3.pack(side="top")
b=tk.Button(crwn,text="Submit",font=("Times",16),command=lambda:
write(crwn,e1.get().strip(),e2.get().strip(),e3.get().strip()))
b.pack(side="top")
crwn.bind("<Return>",font=("Times",16),command=lambda
x:write(crwn,e1.get().strip(),e2.get().strip(),e3.get().strip()))
return

def Main_Menu():
rootwn=tk.Tk()
rootwn.geometry("1600x500")
rootwn.title("Bank Management System - CopyAssignment")
rootwn.configure(background='SteelBlue1')
fr1=tk.Frame(rootwn)
fr1.pack(side="top")
l_title=tk.Message(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=tk.PhotoImage(file="C:/Users/prana/teacher's assistant/new-1.gif")
imglo=tk.PhotoImage(file="C:/Users/prana/teacher's assistant/login.gif")
imgc=imgc1.subsample(2,2)
imglog=imglo.subsample(2,2)

b1=tk.Button(image=imgc,command=Create)
b1.image=imgc
b2=tk.Button(image=imglog,command=lambda: log_in(rootwn))
b2.image=imglog
img6=tk.PhotoImage(file="C:/Users/prana/teacher's assistant/quit-1.gif")
myimg6=img6.subsample(2,2)

b6=tk.Button(image=myimg6,command=rootwn.destroy)
b6.image=myimg6
b1.place(x=800,y=300)
b2.place(x=800,y=200)
b6.place(x=920,y=400)

rootwn.mainloop()

Main_Menu()

You might also like