ATM Proposal
1. Introduction
An ATM (Automated Teller Machine) is a self-service machine that allows people to do banking
tasks like withdrawing cash, checking balances, and transferring money without needing a bank
teller. ATMs are available 24/7, making banking easy and convenient.
This proposal aims to develop an ATM system that is secure, easy to use, and meets the needs of
customers. It will ensure safe transactions, simple navigation, and effective security.
Main Goals:
1. Allow customers to perform secure transactions.
2. Make banking available at all times.
3. Ensure the ATM is easy to use.
4. Protect user information with strong security.
2. Methodologies
We will follow a clear plan to build and implement the ATM system, combining software and
hardware.
2.1 System Design
Understand Customer Needs: Gather information on what features the ATM should
have.
ATM Setup: Design the ATM’s hardware and software, connecting it to the bank’s
system for transactions.
2.2 Security Measures
PIN Authentication: Only the correct PIN will allow access to the account.
Encryption: All data sent between the ATM and bank will be protected.
Biometric Security: Optional fingerprint or facial recognition for extra security.
2.3 User Interface (UI) Design
Simple Interface: Easy-to-read screen with simple navigation.
Language Options: Multiple languages available for different users.
2.4 Hardware Components
Card Reader: Reads the bank card to verify the user.
Cash Dispenser: Safely dispenses the correct amount of money.
Receipt Printer: Prints receipts for every transaction.
Touchscreen: Easy interaction through a touchscreen.
2.5 Transaction Processing
Real-Time Transactions: The ATM will send information to the bank’s system for
instant transaction processing.
Monitoring: Bank staff can monitor ATM activity in real time.
2.6 Testing
Function Testing: Ensure the ATM works for all functions (withdrawals, balance
checks, etc.).
Security Testing: Test to make sure the system is secure.
User Testing: Test the ATM with real users to ensure it’s easy to use.
2.7 Installation and Maintenance
ATM Installation: Place ATMs in accessible locations.
Staff Training: Train bank employees to maintain the ATMs.
Regular Maintenance: Perform regular checks to keep the ATM running smoothly.
3 Backend of ATM:
1. Including Libraries
#include <iostream>: This library is included to use input/output functions like cin and
cout for reading user input and displaying output to the console.
#include <string>: This library allows us to use the string type, which is needed to store
and manipulate text such as the username and password.
2. Main Function
The entry point of any C++ program is the main function. The program execution starts here.
3. Declaring Variables
username and password: These hold the default username and password that the program
expects the user to input for a successful login.
enteredUsername and enteredPassword: These variables will store the username and
password entered by the user.
enteredPin: This variable will store the PIN entered by the user.
pin: This is the default PIN (set to 1234) that the user needs to enter for successful
authentication.
balance: This is the initial account balance, set to 3000.00 (can be modified during
transactions).
amount: Used to store the amount to be withdrawn or deposited.
option: Used to store the user's choice from the ATM menu (1 for checking balance, 2 for
withdrawing, 3 for depositing, 4 for exiting).
4. User Input for Authentication
Welcome Message: The user is greeted with a message "Welcome to the ATM System!".
User Input: The program asks the user to enter their username, password, and PIN. The values
are stored in the variables enteredUsername, enteredPassword, and enteredPin
respectively.
5. Authentication Check
The program checks if the entered username, password, and PIN match the default values
("user123", "password", and 1234 respectively).
o enteredUsername == username: Checks if the entered username matches the
predefined one.
o enteredPassword == password: Checks if the entered password matches the
predefined one.
· enteredPin == pin: Checks if the entered PIN matches the predefined PIN.
· If all three match, the program outputs "Login successful!" and proceeds to the ATM menu.
6. ATM Menu Loop
if / else: Used to check conditions, such as verifying if the entered PIN matches the correct
one, or if the withdrawal amount is valid.
switch: Used to handle different user choices in the ATM menu (e.g., checking balance,
depositing, withdrawing, or exiting).
The do-while loop ensures that the ATM menu is repeatedly shown until the user selects
option 4 (Exit). The program exits the loop and terminates after that.
7. Exiting the Menu Loop
The do-while loop ensures that the ATM menu is repeatedly shown until the user selects
option 4 (Exit). The program exits the loop and terminates after that.
8. Invalid Login
If the entered username, password, or PIN does not match the expected
values, the program prints an "Invalid username, password, or PIN!"
message and does not proceed further.