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

Computer Project

This document is a project report for an ATM Management System created by a student. It includes a certificate confirming the completion of the project, an acknowledgement section thanking those who provided guidance, and sections describing the existing system, proposed system, source code, functions, and flow of control of the program. The project aims to develop a software system that simulates the services of an ATM, allowing users to perform transactions like withdrawals, balance checks, and PIN changes.

Uploaded by

Hibye
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)
31 views

Computer Project

This document is a project report for an ATM Management System created by a student. It includes a certificate confirming the completion of the project, an acknowledgement section thanking those who provided guidance, and sections describing the existing system, proposed system, source code, functions, and flow of control of the program. The project aims to develop a software system that simulates the services of an ATM, allowing users to perform transactions like withdrawals, balance checks, and PIN changes.

Uploaded by

Hibye
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/ 16

GEETHANJALI VIDYALAYA

PROJECT REPORT
SUBJECT: COMPUTER SCIENCE

TOPIC: ATM MANAGEMENT SYSTEM

STUDENT NAME:

CLASS: XII

ACADEMIC YEAR: 2023-24

CERTIFICATE
GEETHANJALI VIDYALAYA
This is to certify that [STUDENT NAME] of class [CLASS]
has successfully completed the [SUBJECT] project on the topic
[PROJECT NAME] under the guidance of Mrs. SEENA K V, PGT
COMPUTER SCIENCE during the academic year 2023-2024.

Internal Examiner Principal

External Examiner
ACKNOWLEDGEMENT

I would like to extend my sincere thanks to our


Principal Mrs. Seethalakshmi for letting me choose my
desired field of interest, for working on the project, and also
for inspiring me through the course of the project work. Her
words of encouragement helped me throughout.
I would also hereby like to earnestly thank my Computer
Science teacher, Mrs. Seena K V, for her sincere and genuine
guidance throughout the project. Without her dedication, it
would have not been possible for me to carry out this
project.
Last but not least, I would like to thank my family, my
teammates, friends, and classmates for their constant
support and motivation.
Contents
1. Introduction and Objective........................................................................5
2. System requirements.....................................................................................6
2.1 Software.................................................................................................... 6
2.2 Hardware...................................................................................................6
3. Existing system and proposed system............................................................7
4. Future applications of the project..................................................................7
5. Source Code................................................................................................... 8
5.1 External Files (Before Execution)...............................................................8
5.2 Code...........................................................................................................9
6. Function and Features of the system...........................................................12
6.1 Flow of control in the program................................................................12
6.2 Outputs....................................................................................................14
7. Bibliography................................................................................................. 16
1. Introduction and Objective
Automated Teller Machine enables the clients of
a bank to have access to their account without
going to the bank. This is achieved only by
development the application using online
concepts. When the product is implemented, the
user who uses this product will be able to see all
the information and services provided by the ATM,
when he enters the necessary option and
arguments. The product also provides services
like request for cheques, deposit cash and other
advanced requirement of the user. The data is
stored in the database and is retrieved whenever
necessary. The implementation needs ATM
machine hardware to operate or similar simulated
conditions can also be used to successfully use the
developed product. The system has following
features.
2. System requirements
2.1 Software
1. Processor: CPUs developed post 2011
2. Disc Space: minimum 1 GB
3. Operating System: Any operating system
developed post 2015
4. Python version 3.xx or higher

2.2 Hardware
1. Computer system
2. Mouse
3. Keyboard
3. Existing system and proposed
system
The existing system is manual system.
1. The manual system is prone to error.
2. This system involves a lot of manual entries
3. The usage of papers and records in the process
leads to less efficiency and less productivity.
4. Increase lots of mistakes while writing on paper
5. The time delay between the user and the customer
is reduced.
For this reason, a new system in invented.

4. Future applications of the


project
The goal of the project is to replace the current mechanical
and manual ATMs. With digital banking becoming
increasingly popular, our goal is to create a digital wallet,
almost exactly like an ATM with a digital landscape. The
withdrawn amount would be deposited into the e-wallet.
The wallet could later be developed to house cards, IDs, etc.
Similar to India’s UPI systems, but the wallet would be
independent from the bank account.
Thus our product would eliminate the need for a physical
wallet and paper money.

5. Source Code
5.1 External Files (Before Execution)
The files used in the program to demonstrate its
functions are given below.

101.csv 102.csv
101,Shreyas,1111,1098374 102,Kaushikh,2222,9837983

103.csv Acc. No.csv


103,Satwik,3333,789331 101,102,103

External Files are used to increase security. Only one file


can be downloaded from the server, thus preventing
espionage agents from gaining access to all the files and
user’s data.

5.2 Code
import csv #importing csv module
num=open("Acc. No.csv","r") #retreive Acc no
numcsv=csv.reader(num) #using csv module
for i in numcsv:
AccNums=i #creates list with all Acc. No.
num.close() #close file opened in line #2
AccData=[] #empty list to hold Acc details later
ErrorCount=2 #acceptable error
def RetrieveNo(): #selecting Acc No FROM USER
global AccNo
print("*************************")
AccNo=str(input("Enter Account Number: "))
if AccNo in AccNums:
RetrieveData()
else:
print("*************************")
print("ACC. NUMBER DOES NOT EXIST")
print("PLEASE TRY AGAIN")
RetrieveNo()
def RetrieveData(): #PUTTING ALL ACC DATA INTO
BUFFER LIST TO PERFORM OPERATIONS FOR SPECIFIC ACC.
NO. IN LIST
global AccData
csv_data=open(str(AccNo)+".csv","r")
csvdata=csv.reader(csv_data)
for i in csvdata: data=i
for i in range(4): #FOR SELECTING INTEGER TYPE
FOR INTEGERS AND STRINGS
if i==1:
AccData.append(data[1])
else:
AccData.append(int(data[i]))
Verify()
def Verify(): #PIN VERIFICATION ONLY 2 ERRORS
ALLOWED
global ErrorCount
pin=int(input("Enter your Pin: "))
if pin==AccData[2]: #CHECKS IF PIN IS CORRECT
Errorcount=2
Choice()
else: # IF INCORRECT PIN, TWO CHANCES TO CORRECT
IT, THEN GOODBYE
while ErrorCount>0:
print("*************************")
print("INCORRECT PIN")
print("YOU HAVE "+str(ErrorCount)+"
ATTEMPTS LEFT")
print("*************************")
ErrorCount+=(-1)
Verify()
else:
print("NO ATTEMPTS LEFT")
print("GOODBYE")
exit() #EXIT IF PIN FAILED TWICE

def Choice(): #TO SELECT CHOICE OF ACTION IN THE ATM


print("*************************")
print("SELECT CHOICE FROM THE FOLLOWING LIST(1-
4): ")
print("""1.CASH WITHDRAWAL
2.BALANCE ENQUIRY
3.CHANGE PIN
4.QUIT""")
choice=int(input("CHOICE IS(1-4): "))
Selector(choice)

def Withdraw(): #WITHDRAWING ACTION FUNCTION


global AccData
print("*************************")
print("ENTER AMOUNT IN DENOMINATION OF 100")
amount=int(input("ENTER AMOUNT TO WITHDRAW:
Rs."))
if (amount<=AccData[3]) and (amount%100==0): #
TO CHECK DENOMINATION AND IF WITHDRAW IS GREATER
THAN BALANCE
AccData[3]+=(-1)*amount #UPDATING BALANCE
print("PLEASE COLLECT CASH FROM THE SLOT")
print("*************************")
Choice()
elif (amount%100!=0) and (amount<=AccData[3]) :
#IF WITHDRAW REQUEST AMMOUNT IS NOT IN DENOMINATION
OF 100
print("ENTER AMOUNT IN DENOMINATIONS OF 100
ONLY")
Withdraw() #GOES BACK TO WITHDRAWAL
else:
print("AMOUNT EXCEEDS BALANCE")
print("*************************")
Choice() #GOES BACK TO CHOICE
def Balance(): # FUNCTION TO DISPLAY ACCOUNT BALANCE
print("*************************")
print("YOUR CURRENT BALANCE IS Rs.
"+str(AccData[3]))
Choice()
def EditPIN(): #FUNCTION TO CHANGE PIN
global ErrorCount
global AccData
print("*************************")
check=int(input("ENTER OLD PIN: "))
if check==AccData[2]: # CHECK IF OLD PIN IS
CORRECT
new_pin=int(input("ENTER NEW PIN: "))
AccData[2]=new_pin # CHANGES PIN TO NEW PIN
Choice()
else: # IF OLD PIN IS NOT CORRECT, 2 CHOICES TO
ENTER CORRECT PIN, THEN QUITS PROGRAM
while ErrorCount>0:
print("*************************")
print("INCORRECT PIN")
print("YOU HAVE "+str(ErrorCount)+"
ATTEMPTS LEFT") #NUMBER OF ATTEMPTS LEFT
print("*************************")
ErrorCount+=(-1)
EditPIN() #INTERNAL RECURSIVE LOOP
else:
print("NO ATTEMPTS LEFT")
CloseUpdateQuit()
def CloseUpdateQuit(): #UPDATES ACCOUNT CSV FILE
WITH EVERY CHANGE IN DATA, RETREIVES NEW DATA FROM
BUFFER LIST: (AccData)
new_data=open(str(AccNo)+".csv","w")
data_csv=csv.writer(new_data)
data_csv.writerow(AccData)
new_data.close()
print("Thank you for banking with us.
Goodbye!!")
exit() #ENDS THE PROGRAM
def Selector(choice): #SELECTS ONE OF THE FEATURES
if choice==1: Withdraw()
if choice==2: Balance()
if choice==3: EditPIN()
if choice==4: CloseUpdateQuit()
RetrieveNo()

6. Function and Features of the


system
6.1 Flow of control in the program
1) The program begins by creating a list Accnums of
Account numbers in the bank, retrieved from Acc.
No.csv file: that contains every account number and
thus can be updated remotely.
2) The function RetreiveNo() is executed:
a) Takes account number input from the user.
b) Searches A/c no. directory for input number.
i) If present, the function RetrieveData() is called.
ii) If absent, function RetreiveNo() is executed, the
program enters a recursive loop and can be exited
only when an existing A/c no. input is given.
3) During 2)b)i) RetreiveData() function is executed:
a) Using A/c no. from the previous function, the file with
the given account number is opened.
b) All data in the file is loaded into a list AccData.
c) File is closed and Verify() function is called.
4) Verify() function is executed:
a) Takes PIN input from the user.
i) If the PIN is correct, function Choice() is called.
ii) If the PIN is incorrect, 2 more attempts are given to
the user to enter the correct PIN using a recursive
loop. When attempts are exhausted, the program
quits automatically.
5) The execution of function Choice():
a) Displays a menu of four choices. Users can select any
one of the choices.
b) Function Selector() with choice value as a parameter
is called.
6) The execution of function Selector(choice):
a) If the choice is to withdraw cash, Withdraw() function
is called
b) If the choice is to view the balance, Balance()
function is called.
c) If the choice is to change the PIN, EditPIN() function
is called.
d) If the choice is to quit, CloseUpdateQuit() function is
called.
7) When Withdraw() function is called:
a) Requests amount to be withdrawn from the user.
i) If the requested amount is less than or equal to the
balance and in denominations of 100, the request
is successful. The withdrawn amount is deducted
from the balance and updated to the buffer list.
Choice() function is called
ii) If the requested amount is less than or equal to the
balance but not in denominations of 100, the
request fails. Withdraw() function is called in a
recursive loop.
iii) If the requested amount is greater than the
balance, The request is denied. Withdraw()
function is called in a recursive loop.
8) When the Balance() function is called, the balance from
the buffer list is displayed. Choice() function is then
called.
9) When the EditPIN() function is called:
a) Takes original PIN input from the user
i) If the PIN is correct, new PIN input is requested.
The new PIN is updated to the buffer list. Function
Choice() is called.
ii) If the PIN is incorrect, 2 more attempts are given to
the user to enter the correct PIN using a recursive
loop. When attempts are exhausted, the program
calls CloseUpdateQuit() function.
10) When CloseUpdateQuit() function is called:
a) The file associated with the A/c no. is opened.
b) The file is rewritten with the buffer list.
c) A goodbye message is displayed.
d) Program quits.

6.2 Outputs
1. Checking account balance

2. Cash withdrawal

3. Checking updated account balance


4. changing the existing pin

5.Quitting the program

7. Bibliography

1. Python.org
2. Code Academy
3. TutorialsPoint.com
4. PythonChallenge.com
5. Google’s Python classes
6. LearnPython.org

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy