ATM software Write a C++ program similar to the ones used in ATM machines. Essen
ID: 638962 • Letter: A
Question
ATM software
Write a C++ program similar to the ones used in ATM machines. Essentially your program is to handle a person's savings and checking accounts and should handle the following services:
Transfer from savings account to checking account
Transfer form checking account to savings account
Cash withdrawal from either account
Balance statements for both the accounts
Assume that the ATM machine recognizes a unique 3-digit personal identification number (PIN). In your initial screen you are to first ask the user to type in his/her PIN as follows:
*** Welcome to ATM ****
Please enter your PIN:
In response to this, the user has to enter a valid PIN. Assume that the only legal PIN is:
111
If any number besides this PIN is entered, the screen is to be cleared and the same screen to be redisplayed. The user then gets a second chance to enter a valid PIN. If an illegal PIN is entered three consecutive, the following message:
Too many illegal PINs. Try later again.
should appear on the screen and your program must terminate.
If the entered PIN is a legal value, the main menu is to be displayed as follows:
*** Welcome To ATM System ***
(1) Transfer from checking account to savings account
(2) Transfer from savings account to checking account
(3) Savings account balance
(4) Checking account balance
(5) Withdraw Cash from either account
(6) Exit
==> Please select option (1-6):
The following are some of the guidelines you should follow:
-- The main menu is to continue to be displayed until user selects
option 6. At this point a message such as
Thank you for using the ATM system.
should appear and your program execution is to be terminated.
-- Users have to select options 1, 2, 3, 4, 5 or 6. Redisplay the menu if any number
outside the range 1 to 6 is entered (Hint: Use system("cls") command from
library to clear the screen)
-- Withdrawl (selection 5) should ask wether the user wants to withdraw from
checking account or saving account and should subtract the amount specified
from the appropriate account.
-- Savings and checking accounts both have initial balance of $1000.00
-- Any transfer is allowed only if it can be honored. For example, if the savings account balance is $500.00 and the user requests to transfer $550.00 from that savings account to the checking account an appropriate message such as
"Transasction not completed"
should be displayed and the current balance of that account should be printed. The screen is to be cleared and the main menu to be displayed.
-- Use functions to accomplish various tasks in the menu (you can do it without functions as well)
Explanation / Answer
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
bool withdrawl(double &checkings, double &savings, double amount, string option){
if(option == "checkings"){
if(checkings >= amount){
checkings -= amount;
return true;
}
}
else if(option == "savings"){
if(savings >= amount){
savings -= amount;
return true;
}
}
return false;
}
bool transfer(double &checkings, double &savings, double amount, string option){
if(option == "checktosav"){
if(checkings >= amount){
checkings -= amount;
savings += amount;
return true;
}
}
else if(option == "savtocheck"){
if(savings >= amount){
savings -= amount;
checkings += amount;
return true;
}
}
return false;
}
void print(double checkings, double savings){
cout << "Checkings account Balance: $" << checkings << endl;
cout << "Savings account Balance: $" << savings << endl;
}
int main(){
double checkings = 1000;
double savings = 1000;
cout << "***Welcome to ATM***" << endl;
cout << "Please Enter Your Pin: ";
int pin;
cin >> pin;
int count = 1;
while(pin != 111){
system("CLS");
if(count == 3){
cout << "Too many illegal PINs. Try later again." << endl;
return 0;
}
cout << "***Welcome to ATM***" << endl;
cout << "Please Enter Your Pin: ";
count++;
cin >> pin;
}
int option;
double amount;
while(true){
system("CLS");
cout << " *** Welcome To ATM System ***" << endl;
cout << "(1) Transfer from checking account to savings account" << endl;
cout << "(2) Transfer from savings account to checking account" << endl;
cout << "(3) Savings account balance" << endl;
cout << "(4) Checking account balance" << endl;
cout << "(5) Withdraw Cash from either account" << endl;
cout << "(6) Exit" << endl;
cout << " ==> Please select option (1-6): ";
cin >> option;
system("CLS");
switch(option){
case 1:
cout << "Enter amount to be transferred: ";
cin >> amount;
if(transfer(checkings, savings, amount, "checktosav")){
cout << "Transasction completed" << endl;
print(checkings, savings);
}
else{
cout << "Transasction not completed" << endl;
print(checkings, savings);
}
break;
case 2:
cout << "Enter amount to be transferred: ";
cin >> amount;
if(transfer(checkings, savings, amount, "savtocheck")){
cout << "Transasction completed" << endl;
}
else{
cout << "Transasction not completed" << endl;
}
print(checkings, savings);
break;
case 3:
cout << "Savings account Balance is: $" << savings << endl;
break;
case 4:
cout << "Checkings account Balance is: $" << checkings << endl;
break;
case 5:
system("CLS");
cout << "(1) From Savings account" << endl;
cout << "(2) From Checkings account" << endl;
cout << " ==> Please select option (1 or 2): ";
cin >> option;
switch(option){
case 1:
cout << "Withdrawl amount: ";
cin >> amount;
if(withdrawl(checkings, savings, amount, "savings")){
cout << "Transasction completed" << endl;
}
else{
cout << "Transasction not completed" << endl;
}
cout << "current Balance of savings account: $" << savings << endl;
break;
case 2:
cout << "Withdrawl amount: ";
cin >> amount;
if(withdrawl(checkings, savings, amount, "checkings")){
cout << "Transasction completed" << endl;
}
else{
cout << "Transasction not completed" << endl;
}
cout << "current Balance of checkings account: $" << checkings << endl;
break;
default:
cout << "Invalid choice" << endl;
}
break;
case 6:
system("CLS");
cout << "Thank you for using the ATM system." << endl;
return 0;
default:
cout << "Invalid choice" << endl;
}
cout << " Please Wait (3)";
for(int i = 0; i < 3; ++i){
cout << "" << 3 - i << ")";
Sleep(1000);
}
}
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.