0% found this document useful (0 votes)
7 views34 pages

ATM Project

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)
7 views34 pages

ATM Project

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/ 34

Computer science

PROJECT REPORT
GRADE – XII

PROJECT PREPARED BY:

NAME OF THE STUDENT:

ROLL NUMBER : ………………………………………………………..

PROJECT TOPIC : …………………………………................

HOSUR PUBLIC SCHOOL


2022 – 2023
CERTIFICATE
This is to certify that the project work entitled

“……………………………………………………………………

….”

is a bonafide record of work done

by…………………………………… , Roll no:……………….

…in partial fulfillment for the award of 12 th standard

during the academic year 2022 - 2023.

Date:
Registration No.:

Signature of Internal Signature of External


Examiner Examiner
Signature of Principal

ACKNOWLEDGEMENT
I would like to take this opportunity to express my deep sense
of gratitude to all those people without whom this project could
have never been completed. First and foremost I like to thank God
for giving me such a great opportunity to work on this project, and I
would like to express my special thanks and gratitude to the
Management, the Directors and the Correspondent of Hosur Public
School, for their constant guidance and providing a very nice
platform to learn.

I would also like to thank our Principal – Dr. V. Bindhu Hosur


Public School, for her constant encouragement and moral support
without which I would have never be able to give my best.

I would also like to thank Mr. A.M. Balakrishna, Computer


Science Teacher, Hosur Public School, who gave me the wonderful
opportunity to do this project, which also helped me in doing a lot
of research and I came to know about so many new things from this
study I am really thankful to all.
Atm
management

INDEX
Sl.n Topic Page
o number
1 Abstract 1
2 System 2
requirements
3 Feasibility study 3
4 Errors and its types 4
5 Testing 5
6 Maintenance 6
7 Flow chart of 7-8
program
8 Source Code 9-19
9 Output 20-24
10 Conclusion 25
11 Bibliography 26

Abstract
 Our project ATM management is a python project
done using coding.
 Our ATM management does the functions of ATM
machine such as withdrawal, lodgment, viewing
statement and changing pin of the user.
 The interface is user-friendly.
 The pin of users is well protected and makes the
transaction very fast.
 If wrong pin is entered the card will be blocked.

SYSTEM
REQUIREMENTS
1. HARDWARE:
Processor
Keyboard
Minimum memory - 2GB
2. SOFTWARE:
Operating System –OS7, OS8
Python IDLE

FEASIBILITY STUDY
Feasibility study is a system proposal according to its work, ability,
impact on the operation ability to meet the needs of users and
efficient use of resources. An important outcome of preliminary
investigations the determination of that system requested
feasible.
ECONOMICAL FEASIBILITY:
Economics analysis is the most frequent use method for
evaluating the effectiveness of the candidates the benefits and
savings that are expected from system and compare them with
cost. This software is not very costly. It just worth Rs.5500/-.So
users records can be maintained at a cheaper cost and every
school would like to use this software so that the student’s
records can be managed easily.
TECHNICAL FEASIBILTY:
Technical feasibility center on the existing computer system and
to what extent it can support the proposed task. This involves
financial consideration to accommodate technical enhancements.
It is technically feasible because whatever technology is needed to
develop this software is easily available.

ERRORS AND ITS TYPES


An error, sometime called “A BUG” is anything in the code that
prevents a program from compiling and running correctly. There
are broadly three types of errors as follows:
Compile- time errors:
Error that occurs during compilation of a program is called
compile time error. It has two types as follows: a. Syntax error: It
refers to formal rules governing the construction of valid
statements in a language. b. Semantics error: It refers to the set of
rules which give the meaning of a statement.
Run time Errors:
Error that occurs during the execution of program are run time
errors. These are harder to detect errors. Some run-time error
stop the execution of program which is then called program
“Crashed”.
Logical Errors:
Sometimes, even if you don’t encounter any error during
compiling-time and runtime, your program does not provide the
correct result. This is because of the programmer’s mistaken
analysis of the problem he or she is trying to solve. Such errors are
called logical error.

TESTING
1. Alpha Testing: It is the most common type of testing used in the
software industry. The objective of this testing is to identify all
possible issues or defects before releasing it into the market or to
the user. It is conducted at the developer’s site.
2. Beta Testing: It is a formal type of software testing which is
carried out by the customers. It is performed in a real
environment before releasing the products into the market for the
actual end-users. It is carried out to ensure that there are no
major failures in the software or product and it satisfies the
business requirement. Beta Testing is successful when the
customer accepts the software.
3. White Box Testing: White box testing is based on the
knowledge about the internal logic of an application’s code. It is
also known as Glass box Testing. Internal Software and code
working should be known for performing this type of testing.
These tests are based on the coverage of the code statements,
branches, paths, conditions etc.
4. Black Box Testing: It is a software testing, method in which the
internal structure or design of the item to be tested is not known
to the tester. This method of testing can be applied virtually to
every level of the software testing.

MAINTENANCE
Programming maintenance refers to the modifications in the
program. After it has been completed, in order to meet changing
requirement or to take care of the errors that shown up. There are
four types of maintenance:
1. Corrective Maintenance: When the program after compilation
shows error because of some unexpected situations, untested
areas such errors are fixed up by Corrective maintenance.
2. Adaptive Maintenance: Changes in the environment in which
an information system operates may lead to system management.
To accommodate changing needs time to time maintenance is
done and is called Adaptive maintenance.
3. Preventive Maintenance: If possible the errors could be
anticipated before they actually occur; the maintenance is called
Preventive maintenance.
4. Perfective Maintenance: In this rapidly changing world,
information technology is the fastest growing area. If the existing
system is maintained to keep tuned with the new features, new
facilities, new capabilities, it is said to be Perfective maintenance.

Flow chart of the program


Start
Username Pin

Correct pin Incorrect pin

Invalid pin
Login successful
Re-enter pin

Statement (S)

Withdrawal Correct pin Incorrect pin

Lodgment (L)
Invalid pin
Change pin (P)
Re-enter
Quit(Q)

A Correct pin Incorrect


A
Amount in the username will be displayed
Your card is

Select any option


Statemen Withdrawal Lodgment Change Quit
t pin

Enter Enter amount Enter new pin

Balance Balance amount Re-enter pin


Select any option New pin is

Statement Lodgment Withdrawa Change Quit


l pin

Stop
Co
de
#!/usr/bin/python

import string

import os

# creating a list of users, their PINs and bank statements

users = ['user1', 'user2', 'user3']

pins = ['1234', '2222', '3333']

amounts = [1000, 2000, 3000]

count = 0

# while loop checks existance of the enterd username

while True:

user = input('\nENTER USER NAME: ')

user = user.lower()

if user in users:

if user == users[0]:

n=0

elif user == users[1]:

n=1

else:

n=2

break

else:

print('----------------')
print('****************')

print('INVALID USERNAME')

print('****************')

print('----------------')

# comparing pin

while count < 3:

print('------------------')

print('******************')

pin = input('PLEASE ENTER PIN: ')

print('******************')

print('------------------')

if pin.isdigit():

if user == 'user1':

if pin == pins[0]:

break

else:

count += 1

print('-----------')

print('***********')

print('INVALID PIN')

print('***********')

print('-----------')
print()

if user == 'user2':

if pin == pins[1]:

break

else:

count += 1

print('-----------')

print('***********')

print('INVALID PIN')

print('***********')

print('-----------')

print()

if user == 'user3':

if pin == pins[2]:

break

else:

count += 1

print('-----------')

print('***********')

print('INVALID PIN')

print('***********')
print('-----------')

print()

else:

print('------------------------')

print('************************')

print('PIN CONSISTS OF 4 DIGITS')

print('************************')

print('------------------------')

count += 1

# in case of a valid pin- continuing, or exiting

if count == 3:

print('-----------------------------------')

print('***********************************')

print('3 UNSUCCESFUL PIN ATTEMPTS, EXITING')

print('!!!!!YOUR CARD HAS BEEN LOCKED!!!!!')

print('***********************************')

print('-----------------------------------')

exit()

print('-------------------------')

print('*************************')

print('LOGIN SUCCESFUL, CONTINUE')


print('*************************')

print('-------------------------')

print()

print('--------------------------')

print('**************************')

print(str.capitalize(users[n]), 'welcome to ATM')

print('**************************')

print('----------ATM SYSTEM-----------')

# Main menu

while True:

#os.system('clear')

print('-------------------------------')

print('*******************************')

response = input('SELECT FROM FOLLOWING OPTIONS: \


nStatement__(S) \nWithdraw___(W) \nLodgement__(L) \
nChange PIN_(P) \nQuit_______(Q) \n: ').lower()

print('*******************************')

print('-------------------------------')

valid_responses = ['s', 'w', 'l', 'p', 'q']

response = response.lower()

if response == 's':

print('---------------------------------------------')

print('*********************************************')
print(str.capitalize(users[n]), 'YOU HAVE ',
amounts[n],'RUPEES ON YOUR ACCOUNT.')

print('*********************************************')

print('---------------------------------------------')

elif response == 'w':

print('---------------------------------------------')

print('*********************************************')

cash_out = int(input('ENTER AMOUNT YOU WOULD


LIKE TO WITHDRAW: '))

print('*********************************************')

print('---------------------------------------------')

if cash_out%10 != 0:

print('------------------------------------------------------')

print('******************************************************')

print('AMOUNT YOU WANT TO WITHDRAW


MUST TO MATCH 10 RUPEES NOTES')

print('******************************************************')

print('------------------------------------------------------')

elif cash_out > amounts[n]:

print('-----------------------------')

print('*****************************')
print('YOU HAVE INSUFFICIENT BALANCE')

print('*****************************')

print('-----------------------------')

else:

amounts[n] = amounts[n] - cash_out

print('-----------------------------------')

print('***********************************')

print('YOUR NEW BALANCE IS: ', amounts[n],


'RUPEES')

print('***********************************')

print('-----------------------------------')

elif response == 'l':

print()

print('---------------------------------------------')

print('*********************************************')

cash_in = int(input('ENTER AMOUNT YOU WANT TO


LODGE: '))

print('*********************************************')

print('---------------------------------------------')

print()

if cash_in%10 != 0:

print('----------------------------------------------------')
print('****************************************************')

print('AMOUNT YOU WANT TO LODGE MUST TO


MATCH 10 RUPEE NOTES')

print('****************************************************')

print('----------------------------------------------------')

else:

amounts[n] = amounts[n] + cash_in

print('----------------------------------------')

print('****************************************')

print('YOUR NEW BALANCE IS: ', amounts[n],


'RUPEES')

print('****************************************')

print('----------------------------------------')

elif response == 'p':

print('-----------------------------')

print('*****************************')

new_pin = input('ENTER A NEW PIN: '))

print('*****************************')

print('-----------------------------')

if new_pin.isdigit() and new_pin != pins[n] and


len(new_pin) == 4:

print('------------------')

print('******************')
new_ppin = input('CONFIRM NEW PIN: ')

print('*******************')

print('-------------------')

if new_ppin != new_pin:

print('------------')

print('************')

print('PIN MISMATCH')

print('************')

print('------------')

else:

pins[n] = new_pin

print('NEW PIN SAVED')

else:

print('-------------------------------------')

print('*************************************')

print(' NEW PIN MUST CONSIST OF 4 DIGITS \


nAND MUST BE DIFFERENT TO PREVIOUS PIN')

print('*************************************')

print('-------------------------------------')

elif response == 'q':

exit()

else:

print('------------------')
print('******************')

print('RESPONSE NOT VALID')

print('******************')

print('------------------')
Output
1) Entering username and pin;

2) Login successful;
3) To view statement of user1/user2/user3;

4) To change the pin;


5) To deposit money in user1/user2/user3;

6) To withdraw money from user1/user2/user3;


7) To quit program;

8) If invalid pin is entered 3 times, card will be


blocked and no further transaction is taken place;
Conclusion
This ATM management project in python is the
way to enhance and broaden our competencies
and logic ideals which is essential in training the
python programming language which is most
suitable in lots of company.
This program helps in viewing money in their
account, withdrawal of money, depositing money
and change the pin number of their bank
account.
If the user/anyone who tries to steal money from
one’s account enters wrong pin, the card will be
blocked immediately.
Thus, it will be helpful in improving safety of
user’s transactions and avoid theft.
Bibliography
 Computer science with python class
12-Sumita Arora
 www.geeksforgeeks.com
 www.tutorialspoint.com
 www.pythonworld.com
 www.reseqarchgate.net
 https://docs.microsoft.com/
 https://docs.python.org/
 www.javatpoint.com
 www.tutorialsteacher.com
 www.datacamp.com

You might also like