Modern Py
Modern Py
SESSION-2023-24
NAME: PALAK RAWAT
ROLL NO: 12024
CLASS : XII
SUBJECT: COMPUTER SCIENCE WITH PYTON
SOURCE CODE: 083
SUBMITTED TO: ER.ABHISHEK DANGWAL
1
MODERN SCHOLAR’S ACADEMY
SENIOR SECONDARY SCHOOL
CHAMBA, TEHRI GARHWAL
CERTIFICATE
This is to certify that Palak Rawat Of Class XII A has
prepared the report on the Project entitled "ATM
Management System ". The report is the result of her efforts
& endeavors. The report is found worthy of acceptance as
final project report for the subject Computer Science of
Class XII. He has prepared the report under my guidance.
MR Abhishek Dangwal
PAGE
SER:
DESCRIPTION NO :
01 ACKNOWLEDGEMENT
02 INTRODUCTION
04 PROPOSED SYSTE M
08 SOURCE CODE
09 OUTPUT
10 TESTING
3
ACKNOWLEDGMENT
I am really grateful for the opportunity of
these practicals and sincerely thank my
computer teacher Er. Abhishek Dangwal.
He will remain one of my favorite teachers
for contributing his valuable time and effort
to help me with these practicals. Their
suggestions and feedback helped me a lot to
improve the practical quality from the
implementation.
Secondly, I would like to thank my parents,
family member and friends who have always
been there whenever needed.
Lastly, I thank them all from my heart and
wish that they will continue to support me
like this.
4
PROJECT ON ATM MANAGEMENT SYSTEM
INTRODUCTION:
This is a Python script that simulates an ATM machine, allowing users to check their
account balance, withdraw money, lodge money, change their PIN, and quit the system.
The script begins by defining three lists: users, pins, and amounts, which hold the names
of account holders, their corresponding PINs, and the amount of money they have in
their accounts.
The script prompts the user to enter their username, which is then converted to
lowercase for consistency. The script then checks whether the entered username exists
in the users list, and assigns the corresponding index value to n.
If the username is found, the script then prompts the user to enter their PIN. If the
entered PIN is correct, the script will proceed to the main menu, which offers the user a
choice of actions to perform. If the user enters the wrong PIN more than three times, the
script will exit.
In the main menu, the user can select from the following options:
If the user chooses to withdraw or lodge money, the script will prompt the user to enter
an amount. If the amount is not a multiple of 10, the script will prompt the user to enter a
different amount. If the amount is valid, the script will update the user’s account balance
and display the new balance.
If the user chooses to change their PIN, the script will prompt the user to enter a new
PIN. If the new PIN is not exactly four digits long, the script will prompt the user to enter
a different PIN.
If the user chooses to quit the system, the script will exit.
5
OBJECTIVES OF THE PROJECT
6
PROPOSED SYSTEM
9
SYSTEM CONCEPT DEVELOPMENT
PHASE
The System Concept Development Phase begins after a business need or
opportunity is validated by the Agency/Organization Program Leadership and the
Agency/Organization CIO.
10
PICTORIAL REPRESENTATION OF SDLC:
PLANNING PHASE
The planning phase is the most critical step in completing development, acquisition, and
maintenance projects. Careful planning, particularly in the early stages of a project, is necessary
to coordinate activities and manage project risks effectively. The depth and formality of project
plans should be commensurate with the characteristics and risks of a given project. Project
plans refine the information gathered during the initiation phase by further identifying the specific
activities and resources required to complete a project.
A critical part of a project manager’ sob is to coordinate discussions between user, audit,
security, design, development, and network personnel to identify and document as many
functional, security, and network requirements as possible. During this phase, a plan is
developed that documents the approach to be used and includes a discussion of methods,
tools, tasks, resources, project schedules, and user input. Personnel assignments, costs,
project schedule, and target dates are established.
11
REQUIREMENTS ANALYSIS PHASE
This phase formally defines the detailed functional user requirements using high-level
requirements identified in the Initiation, System Concept, and Planning phases. It also
delineates the requirements in terms of data, system performance, security, and maintainability
requirements for the system. The requirements are defined in this phase to alevel of detail
sufficient for systems design to proceed. They need to be measurable, testable, and relate to
the business need or opportunity identified in the Initiation Phase. The requirements that will be
used to determine acceptance of the system are captured in the Test and Evaluation Master
Plan
Further define and refine the functional and data requirements and document them in
the Requirements Document,
Complete business process reengineering of the functions to be supported (i.e., verify
what information drives the business process, what information is generated, who
generates it, where does the information go, and who processes it),
Develop detailed data and process models (system inputs, outputs, and the process.
Develop the test and evaluation requirements that will be used to determine acceptable
system performance.
DESIGN PHASE
The design phase involves converting the informational, functional, and network requirements
identified during the initiation and planning phases into unified design specifications that
developers use to script programs during the development phase. Program designs are c
constructed in various ways. Using a top-down approach, designers first identify and link major
program these include:
Components and interfaces, then expand design layouts as they identify and link smaller
subsystems and connections. Using a bottom-up approach, designers first identify and link
minor program components and interfaces, then expand design layouts as they identify and link
larger systems and connections. Contemporary design techniques often use prototyping tools
that build mock-up designs of items such as application screens, database layouts, and system
architectures. End users, designers, developers, database managers, and network
administrators should review and refine the prototyped designs in an iterative process until they
agree on an acceptable design. Audit, security, and quality assurance personnel should be
involved in the review and approval process. During this phase, the system is designed to
satisfy the functional requirements identified in the previous phase. Since problems in the
design phase could be very expensive to solve in the later stage of the software development, a
variety of elements are considered in the design to mitigate risk.
12
These include:
DEVELOPMENT PHASE
The development phase involves converting design specifications into executable programs.
Effective development standards include requirements that programmers and other project
participants discuss design specifications before programming begins. The procedures help
ensure programmers clearly understand program designs and functional requirements.
Programmers use various techniques to develop computer programs. The large transaction
oriented programs associated with financial institutions have traditionally been developed using
procedural programming techniques. Procedural programming involves the line-by-line scripting
of logical instructions that are combined to form a program. Effective completion of the previous
stages is a key factor in the success of the Development phase. The Development phase
consists of:
This phase is initiated after the system has been tested and accepted by the user. In
this phase, the system is installed to support the intended business functions.
System performance is compared to performance objectives established during the
planning phase. Implementation includes user notification, user training, installation
of hardware, installation of software onto production computers, and integration of
the system into daily work processes. This phase continues until the system is
operating in production in accordance with the defined userrequirements
.
OPERATIONS AND MAINTENANCE PHASE
14
SOURCE CODE
#!/usr/bin/python
#cbsepython.in
import getpass
import string
import os
count = 0
while True:
print(user)
user = user.lower()
if user in users:
if user == users[0]:
n=0
n=1
else:
n=2
break
14
else:
print('----------------')
print('****************')
print('INVALID USERNAME')
print('****************')
print('----------------')
# comparing pin
print('------------------')
print('******************')
print('******************')
print('------------------')
if pin.isdigit():
if user == users[0]:
if pin == pins[0]:
break
else:
count += 1
print('-----------')
print('***********')
print('INVALID PIN')
print('***********')
print('-----------')
print()
15
if user == users[1]:
if pin == pins[1]:
break
else:
count += 1
print('-----------')
print('***********')
print('INVALID PIN')
print('***********')
print('-----------')
print()
if user == users[2]:
if pin == pins[2]:
break
else:
count += 1
print('-----------')
print('***********')
print('INVALID PIN')
print('***********')
print('-----------')
print()
else:
print('------------------------')
print('************************') 16
print('PIN CONSISTS OF 4 DIGITS')
print('************************')
print('------------------------')
count += 1
if count == 3:
print('-----------------------------------')
print('***********************************')
print('***********************************')
print('-----------------------------------')
exit()
print('-------------------------')
print('*************************')
print('*************************')
print('-------------------------')
print()
print('--------------------------')
print('**************************')
print('**************************')
print('----------ATM SYSTEM-----------') 17
# Main menu
while True:
#os.system('clear')
print('-------------------------------')
print('*******************************')
print('*******************************')
print('-------------------------------')
response = response.lower()
if response == 's':
print('---------------------------------------------')
print('*********************************************')
print('*********************************************')
print('---------------------------------------------')
print('---------------------------------------------')
print('*********************************************')
print('*********************************************')
print('---------------------------------------------')
if cash_out%10 != 0:
print('------------------------------------------------------')
print('******************************************************') 18
print('AMOUNT YOU WANT TO WITHDRAW MUST TO MATCH 10 RUPEES NOTES')
print('******************************************************')
print('------------------------------------------------------')
print('-----------------------------')
print('*****************************')
print('*****************************')
print('-----------------------------')
else:
print('-----------------------------------')
print('***********************************')
print('***********************************')
print('-----------------------------------')
print()
print('---------------------------------------------')
print('*********************************************')
print('*********************************************')
print('---------------------------------------------')
print()
if cash_in%10 != 0: 19
print('----------------------------------------------------')
print('****************************************************')
print('****************************************************')
print('----------------------------------------------------')
else:
print('----------------------------------------')
print('****************************************')
print('****************************************')
print('----------------------------------------')
print('-----------------------------')
print('*****************************')
print('*****************************')
print('-----------------------------')
print('------------------')
print('******************')
print('*******************')
print('-------------------')
if new_ppin != new_pin:
print('------------') 20
print('************')
print('PIN MISMATCH')
print('************')
print('------------')
else:
pins[n] = new_pin
else:
print('-------------------------------------')
print('*************************************')
print('*************************************')
print('-------------------------------------')
exit ()
else:
print('------------------')
print('******************')
print ('******************')
print ('------------------')
21
FLOWCHART
22
23
OUTPUT
24
25
26
27
TESTING
TESTING METHODS
Software testing methods are traditionally divided into black box testing and white box testing.
These two approaches are used to describe the point of view that a test engineer takes when
designing test cases.
SPECIFICATION-BASED TESTING
Specification-based testing aims to test the functionality of software according to the applicable
requirements.[16] Thus, the tester inputs data into, and only sees the output from, the test
object. This level of testing usually requires thorough test cases to be provided to the tester,
who then can simply verify that for a given input, the output value (or behavior), either "is" or "is
not" the same as the expected value specified in the test case. Specification-based testing is
necessary, but it is insufficient to guard against certain risks
28
ADVANTAGES AND DISADVANTAGES
The black box tester has no "bonds" with the code, and a tester's perception is very simple: a
code must have bugs. Using the principle, "Ask and you shall receive," black box testers find
bugs where programmers don't. But, on the other hand, black box testing has been said to be
"like a walk in a dark labyrinth without a flashlight," because the tester doesn't know how the
software being tested was actually constructed.
That's why there are situations when (1) a black box tester writes many test cases to check
something that can be tested by only one test case, and/or (2) some parts of the back end are
not tested at all. Therefore, black box testing has the advantage of "an unaffiliated opinion," on
the one hand, and the disadvantage of "blind exploring," on the other.
api testing - Testing of the application using Public and Private APIs.
Code coverage - creating tests to satisfy some criteria of code coverage
. For example, the test designer can create tests to cause all statements in the program to be
executed at least once.
White box testing methods can also be used to evaluate the completeness of a test suite that
was created with black box testing methods. This allows the software team to examine parts of
a system that are rarely tested and ensures that the most important function points have been
tested.
SOFTWARE REQUIREMENTS:
I. Windows OS
II. Python
III. MySQL
30
BIBLIOGRAPHY
1. Computer science With Python - Class XI By :
Sumita Aurora
2. A Project Report On Blood Bank Management
System (BBMS) By : Praveen M Jig jinni
3. Website: https://www.w3resource.com 4.
https://en.wikipedia.org/wiki/E_(mathematical_const
ant)
31