0% found this document useful (0 votes)
19 views20 pages

A Project Report On Bank Management System

Uploaded by

Ravi Mittal
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)
19 views20 pages

A Project Report On Bank Management System

Uploaded by

Ravi Mittal
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/ 20

2024-2025

By – Ravi Mittal

Yash Rawat

Class-12th science

Subject- IP

A PROJECT REPORT ON

“BANK MANAGEMENT SYSTEM”

IN PYTHON

PAGE- 1
CERTIFICATE

This certifies that Ravi Mittal and Yash Rawat of Class XII B
successfully completed a "Bank Management System" project under
my supervision vision in the computer lab of modern school Noida
sec-11 s-1in the session 2024-25. They demonstrated strong
programming skills and excellent teamwork.

Date: [ ]

Signature:[ ]

[ ]

INFORMATION PRACTICES TEACHER

PAGE- 2
ACKNOWLEDGEMENT

It is with great pleasure that I find myself penning

Down these lines to express my sincere thanks to all

Those people who helped me a long way in


Complete this project.

The harmonious climate in our school provided


Proper atmosphere for creating this project.It was a
Privilege to have been guided by Ms. Darshana Soni.

I am so grateful to my parents and classmates who


helped me during the finalization of my project with
their constructive criticism and advice.

PAGE- 3
INDEX

SR NO. CONTENTS PAGE NO.

1. INTRODUCTION 4-5
i. ABOUT BANK
MANAGEMENT
SYSTEM

2. FRONT END 6
(PANDAS,MATPLOTLID)

BACK END (CSV) 7

3. CSV STRUCTURE 8

3. SOURCE CODE 9-16

4. OUTPUT 17-19

5. BIBLIOGRAPHY 20

PAGE- 4
PAGE- 5
INTRODUCTION

ABOUT BANK MANAGEMENT SYSTEM:


A bank management system is a software application that
facilitates the management of banking operations, including
account creation, transactions, and customer service. Python,
with its simplicity and versatility, is an ideal programming
language for developing such systems. By leveraging Python's
robust libraries and frameworks, developers can create
efficient and secure applications that handle various banking
functions, such as processing deposits and withdrawals,
managing customer data, and generating financial reports.
Additionally, Python's support for database management
systems allows for seamless integration and retrieval of data,
ensuring that the bank's operations run smoothly and
securely

PAGE- 6
ABOUT PANDAS: (working on front end)
A panda is a powerful and widely-used open-source data manipulation
and analysis library for Python, designed to provide flexible and efficient
data structures for handling structured data. At its core, Pandas
introduces two primary data structures: Series, which is a one-
dimensional labelled array capable of holding any data type, and Data
Frame, a two-dimensional labelled data structure similar to a table in a
database or a spreadsheet. With its intuitive syntax, Pandas allows
users to easily perform a variety of operations, such as data cleaning,
transformation, aggregation, and visualization. It supports a wide range
of data formats, including CSV, Excel, SQL databases, and more,
making it an essential tool for data scientists and analysts. The library's
robust functionality, combined with its ability to handle large datasets
efficiently, has made it a cornerstone of the Python data analysis
ecosystem, enabling users to derive insights and make data-driven

decisions with ease

ABOUT matplotlid : (working on front end)


Matplotlib is a comprehensive library for creating static, animated, and
interactive visualizations in Python, and it is often used in conjunction
with Pandas to enhance data analysis and presentation. While Pandas
provides powerful data manipulation capabilities, Matplotlib allows users
to visualize that data effectively, making it easier to identify trends,
patterns, and outliers. With just a few lines of code, users can generate a
wide variety of plots, including line graphs, bar charts, histograms,
scatter plots, and more, directly from Pandas DataFrames. The
integration between Pandas and Matplotlib is seamless; for instance,
PAGE- 7
users can call plotting functions directly on DataFrame objects, which
simplifies the process of visualizing data. This synergy empowers data
analysts and scientists to create informative and aesthetically pleasing
visual representations of their data, facilitating better understanding and
communication of insights derived from complex datasets

ABOUT CSV : (Working on back hand)


CSV, or Comma-Separated Values, is a widely used file format
for storing tabular data in plain text, where each line represents
a record and each field within that record is separated by a
comma. This simplicity makes CSV files easy to read and write
for both humans and machines, allowing for straightforward
data exchange between different applications, such as
spreadsheets, databases, and programming languages. CSV
files are particularly popular in data analysis and data science
due to their compatibility with various tools and libraries,
including Excel, Pandas in Python, and R. Despite its
advantages, the CSV format has some limitations, such as the
inability to handle complex data types or hierarchical structures,
and issues with delimiters when data contains commas.
Nevertheless, its ease of use and widespread support make
CSV a go-to format for data storage and transfer in many fields.

PAGE- 8
CSV FILE STRUCTURE

PAGE- 9
SOURCE CODE

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

# Bank class to manage accounts

class Bank:

def _init_(self):

self.accounts = {} # Dictionary to store account details

def create_account(self, account_number, account_holder, initial_balance):

if account_number in self.accounts:

print("Account number already exists!")

else:

self.accounts[account_number] = {

'Account Holder': account_holder,

'Balance': initial_balance

print("Account created successfully!")

def check_balance(self, account_number):

if account_number in self.accounts:

PAGE- 10
account = self.accounts[account_number]

print(f"Account Holder: {account['Account Holder']}, Balance: {account['Balance']}")

else:

print("Invalid account number!")

def deposit(self, account_number, amount):

if account_number in self.accounts:

self.accounts[account_number]['Balance'] += amount

print("Deposit successful!")

else:

print("Invalid account number!")

def withdraw(self, account_number, amount):

if account_number in self.accounts:

if self.accounts[account_number]['Balance'] >= amount:

self.accounts[account_number]['Balance'] -= amount

print("Withdrawal successful!")

else:

print("Insufficient balance!")

else:

print("Invalid account number!")

def visualize_data(self):

PAGE- 11
if not self.accounts:

print("No accounts to visualize.")

return

account_holders = [account['Account Holder'] for account in self.accounts.values()]

balances = [account['Balance'] for account in self.accounts.values()]

# Generate a color for each account

colors = plt.cm.viridis(np.linspace(0, 1, len(account_holders)))

plt.figure(figsize=(10, 6))

plt.bar(account_holders, balances, color=colors)

plt.xlabel('Account Holder')

plt.ylabel('Balance')

plt.title('Account Balances')

plt.xticks(rotation=45)

plt.tight_layout()

plt.show()

def save_accounts_to_csv(self, filename="C:\\BAnk\\bank_records.csv"):

df = pd.DataFrame.from_dict(self.accounts, orient='index').reset_index()

df.columns = ['Account Number', 'Account Holder', 'Balance']

df.to_csv(filename, index=False)

PAGE- 12
print(f'Accounts data saved to {filename} successfully.')

def read_accounts_from_csv(self, filename="C:\\BAnk\\bank_records.csv"):

try:

df = pd.read_csv(filename)

self.accounts = df.set_index('Account Number').T.to_dict()

print(f'Accounts data loaded from {filename} successfully.')

except FileNotFoundError:

print(f"No file found at {filename}.")

except pd.errors.EmptyDataError:

print("The CSV file is empty.")

except Exception as e:

print(f"An error occurred while loading accounts: {e}")

# Manager login function

def manager_login():

manager_username = "admin"

manager_password = "password123"

print("Manager Login")

username = input("Enter username: ")

password = input("Enter password: ")

PAGE- 13
if username == manager_username and password == manager_password:

print("Login successful!")

return True

else:

print("Invalid username or password!")

return False

# Main function to run the banking system

def main():

if not manager_login():

return # Exit if login fails

bank = Bank()

while True:

print("\nBank Management System")

print("1. Create a new account")

print("2. Check balance")

print("3. Deposit")

print("4. Withdraw")

print("5. Visualize data")

print("6. Save accounts data to CSV")

print("7. Load accounts data from CSV")

PAGE- 14
print("8. Exit")

choice = input("Choose an option: ")

if choice == '1':

account_number = input("Enter account number: ")

account_holder = input("Enter account holder's name : ")

initial_balance = float(input("Enter initial balance: "))

bank.create_account(account_number, account_holder, initial_balance)

elif choice == '2':

account_number = input("Enter account number: ")

bank.check_balance(account_number)

elif choice == '3':

account_number = input("Enter account number: ")

amount = float(input("Enter deposit amount: "))

bank.deposit(account_number, amount)

elif choice == '4':

account_number = input("Enter account number: ")

amount = float(input("Enter withdrawal amount: "))

bank.withdraw(account_number, amount)

elif choice == '5':

bank.visualize_data()

elif choice == '6':

PAGE- 15
bank.save_accounts_to_csv()

elif choice == '7':

bank.read_accounts_from_csv()

elif choice == '8':

print("Thank you for using the bank management system!")

break

else:

print("Invalid option, please try again!")

if _name_ == "_main_":

main()

PAGE- 16
OUTPUT

PAGE- 17
PAGE- 18
PAGE- 19
BIBLIOGRAPHY

BOOKS:
SUMITA ARORA-COMPUTER SCIENCE WITH
PYTHON
ARIHANT- ALL IN ONE COMPUTER SCIENCE CBSE
INTERNET:
 WEBSITE: WWW.PYTHON.ORG
 WEBSITE: WWW.WIKIPEDIA.ORG

PAGE- 20

You might also like