[COMPUTER SCIENCE PROJECT
REPORT]
[BANK MANAGEMENT SYSTEM]
FOR
BOARD 2025 EXAMINATION
As a part of the Computer Science Course (083)
SUBMITTED BY: [ Jatin Saini ] [ Roll No: 29 ]
Under the Guidance of: [MS ANNI KUMAR (PGT COMPUTER SC.]
BANK MANAGEMENT SYSTEM
CERTIFICATE
This is to certify that the Project entitled, Food Billing System is a bonafide work done
by Jatin Saini of class XII-F Session 2024-2025 in partial fulfillment of CBSE’s AISSCE
Examination 2025 and has been carried out under my direct supervision and guidance.
This report or a similar report on the topic has not been submitted for any other
examination and does not form a part of any other course undergone by the candidate.
Signature of Student Signature of Teacher
Name: Jatin Saini Name: Ms Anni Kumar
Board Roll No.: …………… Designation: PGT Computer Science
Place: Delhi Date:10-01-2025
1
BANK MANAGEMENT SYSTEM
ACKNOWLEDGEMENT
In the accomplishment of this project successfully, many people have best owned upon
me their blessings and the heart pledged support, this time I am utilizing to thank all the
people who have been concerned with this project.
I would like to express my special thanks of gratitude to our principal Ms. Teena Solanki
teacher and Computer Science teacher Ms. Anni Kumar who gave me the golden
opportunity to do this wonderful project on the topic Bank management system, which
also helped me in doing a lot of Research and I came to know about so many new things I
am really thankful to them. The suggestions and instructions given by my CSc teachers
have served as the major contributor towards the completion of the project.
I am over helmed in all humbleness and gratefulness to acknowledge my depth to all
those who have helped me to put these ideas, well above the level of simplicity and into
something concrete.
Any attempt at any level can't be satisfactorily completed without the support and
guidance of my parents and friends.
I would like to thank my parents who helped me a lot in gathering different information,
collecting data and guiding me from time to time in making this project, despite of their
busy schedules, they gave me different ideas in making this project unique.
Lastly, I would like to thank my classmates who have helped me a lot.
Thanking you,
Jatin Saini
XII-F
2
BANK MANAGEMENT SYSTEM
INDEX
S.No. CONTENT PAGE NO.
1. Hardware and software requirements 4
2. Objective of the Project 5
3. Coding 10
4. Output 28
5. Conclusion 35
6. Bibliography 36
3
BANK MANAGEMENT SYSTEM
HARDWARE AND SOFTWARE
REQUIREMENTS
Modern Operating System like Windows 7 or later.
X86 64-bit CPU (Intel/AMD architecture)
4 GB RAM
1 GB free disk space
Google Collab
4
BANK MANAGEMENT SYSTEM
OBJECTIVE OF THE PROJECT
The Banking Management System project is designed to provide a
comprehensive and user-friendly simulation of a banking system using
Python. It aims to replicate essential banking operations, allowing users to
manage their accounts securely and efficiently. The system will feature
operations such as account creation, deposit/withdrawal, balance checking,
account modification, account closure, and the generation of financial reports.
All actions are protected through password authentication and persisted in
files for data security and continuity.
This project serves both educational and practical purposes. For educational
purposes, it allows developers and students to understand key concepts in
object-oriented programming, file handling, and security management in
Python. For practical purposes, it offers a simulated banking environment that
can be used by users to track their accounts in a basic, digital form.
KEY OBJECTIVES
ACCOUNT MANAGEMENT:
o The system allows users to create new bank accounts, providing an
account number, a password for access, and storing essential
personal information such as the account holder’s name, date of
birth, and opening balance.
o A random account number is generated for each new user,
ensuring uniqueness. This step simulates the real-world process of
account creation, where the bank issues a unique account number
to every customer.
o The system supports password-based access, ensuring that only
authorized users can interact with their accounts.
5
BANK MANAGEMENT SYSTEM
SECURE USER AUTHENTICATION:
o One of the primary objectives is to ensure that only legitimate
account holders can access and perform operations on their
accounts. Each account is protected with a password.
o The system verifies the password before granting access to an
account. If the password is incorrect, the system will provide the
user with a limited number of attempts (3 strikes), after which
access is denied.
o This functionality teaches the importance of security measures in
banking systems, where secure authentication is critical to prevent
unauthorized access.
DEPOSIT AND WITHDRAWAL FUNCTIONS:
o Users can deposit money into their accounts, increasing the
balance. The system will allow deposits of any amount, but the
amount will be updated immediately, and the user will be shown
their new balance.
o Withdrawals are also supported, but with a restriction that ensures
a minimum balance of 200 is maintained in the account. The
system will check whether a withdrawal request is feasible by
ensuring the balance doesn't fall below this threshold.
o This feature mimics real-world banking where withdrawals are
only permitted if they do not violate account policies (e.g.,
maintaining a minimum balance).
6
BANK MANAGEMENT SYSTEM
BALANCE AND ACCOUNT INFORMATION MANAGEMENT:
o Users can check their current balance and review detailed
information about their account such as the account number, name,
date of birth, and balance.
o The system provides the option for users to modify account
details, including updating personal information like name or date
of birth, should there be any changes.
o These operations simulate the ability to track and modify account
data in real banking systems.
ACCOUNT CLOSURE:
o The project allows users to close their accounts when they no
longer wish to maintain them. Upon requesting account closure,
the system will ask for the password and verify the user’s identity
before proceeding.
o Once verified, the account will be deleted from the system,
effectively simulating account closure in real-world banking.
o This feature demonstrates the ability to maintain accurate and up-
to-date account records and provides a real-world application for
managing customer lifecycle events.
DATA PERSISTENCE:
o To simulate real-world scenarios where banking data is stored
permanently, the system stores all account details and passwords in
two separate files (bank.txt and accpass.txt), using Python’s pickle
module to serialize the data.
o The use of file handling ensures that user data persists between
program executions, meaning users' data (such as balances,
personal information, and account numbers) is saved and
accessible after the program is restarted.
7
BANK MANAGEMENT SYSTEM
REPORT GENERATION:
o The system can generate reports for all accounts, listing the
account number, account holder’s name, date of birth, and current
balance for every account stored in the system.
o This function is particularly useful for administrators or users who
wish to view a summary of all accounts within the bank.
o The generation of reports is vital for understanding and managing
the status of multiple accounts, ensuring transparency and
traceability of account information.
USER INTERACTION:
o The system uses a simple menu-driven interface, enabling users
to easily navigate and select the desired action. The menu includes
options like opening accounts, checking balance,
depositing/withdrawing funds, modifying details, and more.
o Each action is clearly displayed with prompts and instructions,
making the system accessible to users with minimal technical
knowledge.
Educational Goals
Understanding File Handling:
The project allows users to work with files to store and retrieve data.
This includes opening files, reading data, writing data, and using the
pickle module to serialize and deserialize objects.
Exploring Data Security:
8
BANK MANAGEMENT SYSTEM
By implementing password authentication for each user, this project
emphasizes the importance of data protection in real-world applications. It
provides a basic example of how to secure sensitive data such as user accounts
and personal information.
Learning Core Python Concepts:
The project utilizes fundamental Python concepts like:
o Variables, data types, and basic operations
o Conditional statements and loops
o Functions and modules
o Lists and dictionaries for storing data
o Exception handling to manage errors like EOF (End of File)
Object-Oriented Programming (OOP)
While the code does not fully implement OOP principles, it leverages some
OOP techniques like dictionaries (which can be thought of as simple objects)
to represent account information, and functions to simulate operations as
methods.
9
BANK MANAGEMENT SYSTEM
CODING
import pickle
import random
# Function to open a new account
def addition():
f=open("bank.txt","ab")
fp=open("accpass.txt","rb")
accpasdic = {}
while True:
try:
accpasdic=pickle.load(fp)
except EOFError:
break
fp.close()
print("__________________________________________________________________
_______")
print()
print("Account Opening")
accno= random.randint(100000,999999)
while accno in accpasdic.keys():
accno=random.randint(100000,999999)
10
BANK MANAGEMENT SYSTEM
print("Your Account number is: ",accno)
pas=input("Enter the password: ")
accpasdic[accno]=pas
fp=open("accpass.txt","ab")
pickle.dump(accpasdic,fp)
fp.close()
name=input("Enter the account holder's name: ")
dob=input("Enter the date of birth: ")
bal=float(input("Enter the opening balance: "))
print()
print("__________________________________________________________________
_______")
rec={'accno':accno,'name':name,"dob":dob,"bal":bal}
pickle.dump(rec,f)
f.close()
# Function to modify details of an account
def modification():
pcheck=0
f=open('bank.txt','rb')
fp=open("accpass.txt","rb")
11
BANK MANAGEMENT SYSTEM
while True:
try:
accpasdic=pickle.load(fp)
except EOFError:
break
print("__________________________________________________________________
_______")
print()
s=int(input("Enter the account no to modify: "))
if s not in accpasdic.keys():
print("Account not found.")
return
for i in range(3):
print("__________________________________________________________________
_______")
print()
if accpasdic[s]==input("Enter the password: "):
pcheck=1
break
else:
print("Wrong password")
print("STRIKE", i+1)
12
BANK MANAGEMENT SYSTEM
print()
print("__________________________________________________________________
_______")
if pcheck==0:
return
reclst=[]
while True:
try:
rec=pickle.load(f)
reclst.append(rec)
except EOFError:
break
f.close()
for i in range(len(reclst)):
if reclst[i]['accno']==s:
print("__________________________________________________________________
_______")
print()
reclst[i]['name']=input("Enter the new name: ")
reclst[i]['dob']=input("Enter the new dob: ")
print()
13
BANK MANAGEMENT SYSTEM
print("__________________________________________________________________
_______")
f=open('bank.txt','wb')
for i in reclst:
pickle.dump(i,f)
f.close()
# Function to make a deposit in an account
def deposit():
pcheck=0
f=open('bank.txt','rb')
fp=open("accpass.txt","rb")
while True:
try:
accpasdic=pickle.load(fp)
except EOFError:
break
print("__________________________________________________________________
_______")
print()
s=int(input("Enter the account no. to deposit: "))
if s not in accpasdic.keys():
print("Account not found.")
14
BANK MANAGEMENT SYSTEM
return
for i in range(3):
print("__________________________________________________________________
_______")
print()
if accpasdic[s]==input("Enter the password: "):
pcheck=1
break
else:
print("Wrong password")
print("STRIKE", i+1)
print()
print("__________________________________________________________________
_______")
if pcheck==0:
return
reclst=[]
while True:
try:
rec=pickle.load(f)
reclst.append(rec)
except EOFError:
15
BANK MANAGEMENT SYSTEM
break
f.close()
for i in range(len(reclst)):
if reclst[i]['accno']==s:
print("__________________________________________________________________
_______")
print()
x=float(input("Enter the amount to deposit: "))
reclst[i]['bal']= reclst[i]['bal']+x
print("Deposit Successful")
print("Current Balance: ", reclst[i]['bal'])
print()
print("__________________________________________________________________
_______")
f=open('bank.txt','wb')
for i in reclst:
pickle.dump(i,f)
f.close()
# Function to make a withdraw from an account
def withdrawal():
16
BANK MANAGEMENT SYSTEM
pcheck=0
f=open('bank.txt','rb')
fp=open("accpass.txt","rb")
while True:
try:
accpasdic=pickle.load(fp)
except EOFError:
break
print("__________________________________________________________________
_______")
print()
s=int(input("Enter the account no. to withdraw: "))
if s not in accpasdic.keys():
print("Account not found.")
return
for i in range(3):
print("__________________________________________________________________
_______")
print()
if accpasdic[s]==input("Enter the password: "):
pcheck=1
break
17
BANK MANAGEMENT SYSTEM
else:
print("Wrong password")
print("STRIKE", i+1)
print()
print("__________________________________________________________________
_______")
if pcheck==0:
return
reclst=[]
while True:
try:
rec=pickle.load(f)
reclst.append(rec)
except EOFError:
break
f.close()
for i in range(len(reclst)):
if reclst[i]['accno']==s:
print("__________________________________________________________________
_______")
print()
x=float(input("Enter the amount to withdraw: "))
18
BANK MANAGEMENT SYSTEM
if x<=(reclst[i]['bal']-200):
reclst[i]['bal']=reclst[i]['bal'] - x
print("Withdrawal Successful")
else:
print("Insufficient balance (minimum balance can be 200) ")
print("Current Balance: ", reclst[i]['bal'])
print()
print("__________________________________________________________________
_______")
f=open('bank.txt','wb')
for i in reclst:
pickle.dump(i,f)
f.close()
# Function to display reports from all accounts
def report():
f=open('bank.txt','rb')
print("__________________________________________________________________
_______")
print()
print("Account No\tAccount Name\tDate of Birth\tBalance ")
19
BANK MANAGEMENT SYSTEM
while True:
try:
rec1=pickle.load(f)
print(rec1['accno'],"\t",rec1['name'],"\t",rec1['dob'],"\t",rec1['bal'])
except Exception:
print()
print("__________________________________________________________________
_______")
break
f.close()
# Function to display the current balance of an account
def curbal():
pcheck=0
f=open('bank.txt','rb')
fp=open("accpass.txt","rb")
while True:
try:
accpasdic=pickle.load(fp)
except EOFError:
break
20
BANK MANAGEMENT SYSTEM
print("__________________________________________________________________
_______")
print()
s=int(input("Enter the account no. to check balance: "))
if s not in accpasdic.keys():
print("Account not found.")
return
for i in range(3):
print("__________________________________________________________________
_______")
print()
if accpasdic[s]==input("Enter the password: "):
pcheck=1
break
else:
print("Wrong password")
print("STRIKE", i+1)
print()
print("__________________________________________________________________
_______")
if pcheck==0:
return
21
BANK MANAGEMENT SYSTEM
while True:
try:
rec=pickle.load(f)
if rec['accno']==s:
print("__________________________________________________________________
_______")
print()
print("Current Balance: ",rec['bal'])
print()
print("__________________________________________________________________
_______")
except Exception:
break
f.close()
# Function to display the details of an account
def details():
pcheck=0
f=open('bank.txt','rb')
fp=open("accpass.txt","rb")
22
BANK MANAGEMENT SYSTEM
while True:
try:
accpasdic=pickle.load(fp)
except EOFError:
break
print("__________________________________________________________________
_______")
print()
s=int(input("Enter the account no. to check details "))
if s not in accpasdic.keys():
print("Account not found.")
return
for i in range(3):
print("__________________________________________________________________
_______")
print()
if accpasdic[s]==input("Enter the password: "):
pcheck=1
break
else:
print("Wrong password")
print("STRIKE", i+1)
23
BANK MANAGEMENT SYSTEM
print()
print("__________________________________________________________________
_______")
if pcheck==0:
return
while True:
try:
rec=pickle.load(f)
if rec['accno']==s:
print("__________________________________________________________________
_______")
print()
print("Name: ",rec['name'])
print("Dob: ",rec['dob'])
print("Balance: ",rec['bal'])
print()
print("__________________________________________________________________
_______")
except Exception:
break
f.close()
24
BANK MANAGEMENT SYSTEM
# Function to close an account
def accclose():
pcheck=0
f=open('bank.txt','rb')
fp=open("accpass.txt","rb")
while True:
try:
accpasdic=pickle.load(fp)
except EOFError:
break
print("__________________________________________________________________
_______")
print()
s=int(input("Enter the account no. to close: "))
if s not in accpasdic.keys():
print("Account not found.")
return
for i in range(3):
print("__________________________________________________________________
_______")
print()
25
BANK MANAGEMENT SYSTEM
if accpasdic[s]==input("Enter the password: "):
pcheck=1
break
else:
print("Wrong password")
print("STRIKE", i+1)
print()
print("__________________________________________________________________
_______")
if pcheck==0:
return
reclst=[]
while True:
try:
rec=pickle.load(f)
reclst.append(rec)
except EOFError:
break
f.close()
f=open('bank.txt','wb')
for i in range(len(reclst)):
if reclst[i]['accno']==s:
26
BANK MANAGEMENT SYSTEM
continue
pickle.dump(reclst[i],f)
f.close()
# Main program
while True:
print("__________________________________________________________________
_______")
print()
print("1. Account opening")
print("2. Modifying details")
print("3. Deposit")
print("4. Withdrawal")
print("5. Reports for all accounts")
print("6. Current Balance for a particular account")
print("7. Details of a particular account")
print("8. Account Close")
print("9. Exit")
choice=int(input("Enter your choice: "))
print()
27
BANK MANAGEMENT SYSTEM
print("__________________________________________________________________
_______")
if choice==1:
addition()
elif choice==2:
modification()
elif choice==3:
deposit()
elif choice==4:
withdrawal()
elif choice==5:
report()
elif choice==6:
curbal()
elif choice==7:
details()
elif choice==8:
accclose()
elif choice==9:
break
28
BANK MANAGEMENT SYSTEM
OUTPUTS
29
BANK MANAGEMENT SYSTEM
30
BANK MANAGEMENT SYSTEM
31
BANK MANAGEMENT SYSTEM
32
BANK MANAGEMENT SYSTEM
33
BANK MANAGEMENT SYSTEM
34
BANK MANAGEMENT SYSTEM
35
BANK MANAGEMENT SYSTEM
CONCLUSION
This project implements a simple banking system with features like account
creation, deposits, withdrawals, balance checks, and account closure. It uses
Python's pickle module for data storage and basic password authentication for
security. The system handles multiple accounts, ensures data persistence, and
provides a basic user interface. While functional, the system could be
improved with stronger security measures, input validation, and better error
handling to make it more robust for real-world applications.
36
BANK MANAGEMENT SYSTEM
BIBLIOGRAPHY
1. Computer science class 12 NCERT
2. W3Schools Python Tutorials W3Schools. Python File Handling and
Functions. Retrieved from https://www.w3schools.com/python/ Referred for
guidance on file operations such as reading and writing files in binary mode.
3. GeeksforGeeks - Python Error Handling GeeksforGeeks. (2023). Python
Exception Handling. Retrieved from: https://www.geeksforgeeks.org/python-
exception-handling/
37