0% found this document useful (0 votes)
17 views38 pages

Cs Project J

Uploaded by

ippc21
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views38 pages

Cs Project J

Uploaded by

ippc21
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 38

[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

You might also like