C++ only please, in this assignment you are to create an interactive line comman
ID: 3927708 • Letter: C
Question
C++ only please, in this assignment you are to create an interactive line command driven C++ program that allows a user to do the following:
1) Create a bank account by supplying a user id and password
2) Login using this id and password
3) Quit the program
Upon successful login, the user will be presented with a menu to do one or more of the following actions:
1) Withdraw money 2) Deposit money 3) Request balance 4) Quit the program
Ensure that you remove any unnecessary punctuation from monetary input (for example, all $ or other currency symbols should be removed prior to processing, do NOT display an error message to the user for characters which can be removed from the input string without changing the intended value).
Format all monetary outputs on the display Currency (e.g. $ 25,928.43) with all decimal places containing digits.
The User ID and password fields may be any combination of characters which are: 1) Visible when displayed on the screen (no control characters0
2) Normally accessible from a standard US keyboard
Separate your code into multiple functions, demonstrating good programming practices.
If login was not successful (for example the id or password did not match) then the user must be returned to the introduction menu.
Submit the following as a file (screen capture) to demonstrate your program in action. Items in BOLD are user input:
Welcome to My Bank ATM Machine
Please select an option:
l -> Login
c -> Create New Account
q -> Quit
> l
Please enter your user id: QTL7Zark7
Please enter your password B1rdGo!
******** LOGIN FAILED! ********
Please select an option from the menu below:
l -> Login
c -> Create New Account
q -> Quit
> c
Please enter your user name: Y0ro1den!
Please enter your password: S@murA1
Thank You! Your account has been created!
l -> Login
c -> Create New Account
q -> Quit
> l
Please enter your user name: Y0ro1den!
Please enter your password: S@murA1
Access Granted - Y0ro1den!
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> d
Amount of deposit: $2056.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> r
Beginning balance : $ 0.00
Deposit amount : $ 2,056.45
Your balance is : $ 2,056.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> d
Amount of deposit: 56.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> r
Beginning balance : $ 2,056.45
Deposit amount : $ 56.45
Your balance is $ 2,112.90
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> w
Amount of withdrawal: -2.5
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> r
Beginning balance : $ 2,112.90
Withdrawal amount : $( 2.50)
Your balance is $ 2,115.40
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> w
Amount of withdrawal: 125.57
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> r
Beginning balance : $ 2,115.40
Withdrawal amount : $ 125.57
Your balance is $ 1,989.83
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> q
Thanks for banking with My Bank, Y0ro1den!!
Welcome to My Bank ATM Machine
Please select an option:
l -> Login
c -> Create New Account
q -> Quit
> l
Please enter your user id: QTL7Zark7
Please enter your password B1rdGo!
******** LOGIN FAILED! ********
Please select an option from the menu below:
l -> Login
c -> Create New Account
q -> Quit
> c
Please enter your user name: Y0ro1den!
Please enter your password: S@murA1
Thank You! Your account has been created!
l -> Login
c -> Create New Account
q -> Quit
> l
Please enter your user name: Y0ro1den!
Please enter your password: S@murA1
Access Granted - Y0ro1den!
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> d
Amount of deposit: $2056.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> r
Beginning balance : $ 0.00
Deposit amount : $ 2,056.45
Your balance is : $ 2,056.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> d
Amount of deposit: 56.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> r
Beginning balance : $ 2,056.45
Deposit amount : $ 56.45
Your balance is $ 2,112.90
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> w
Amount of withdrawal: -2.5
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> r
Beginning balance : $ 2,112.90
Withdrawal amount : $( 2.50)
Your balance is $ 2,115.40
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> w
Amount of withdrawal: 125.57
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> r
Beginning balance : $ 2,115.40
Withdrawal amount : $ 125.57
Your balance is $ 1,989.83
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
> q
Thanks for banking with My Bank, Y0ro1den!!
Explanation / Answer
Here is the code for the question.
#include <iostream>
#include <cstring>
#include <locale.h>
#include <iomanip>
using namespace std;
//displays the menu corresponding to menuNum. If 1 then main menu is displayed
//otherwise menu after login is displayed. The user's selection is returned
char printMenu(int menuNum)
{
char option;
//display main menu
if(menuNum==1)
{
cout<<" l -> Login"<<endl;
cout<<" c -> Create Account"<<endl;
cout<<" q -> Quit"<<endl;
}
else //menu after login
{
cout<<" d -> Deposit Money"<<endl;
cout<<" w -> Withdraw Money"<<endl;
cout<<" r -> Request Balance"<<endl;
cout<<" q -> Quit"<<endl;
}
cout<<" Please select an option: ";
cin>>option;
return tolower(option);
}
//the user is asked to enter username and password and the parameters are references
//so it gets updated in main function
void create(string &username,string &password)
{
//get the credentials from user and save it in username and password
cout<<" Please enter your user id: ";
cin>>username;
cout<<" Please enter your password:";
cin>>password;
cout<<" Thank you! Your account has been created!"<<endl;
}
//ask user for name and password and compare them to already created values
//return true if login passed otherwise returns false
bool login(const string &username,const string &password)
{
string uid,pwd;
//get user name and password from user
cout<<" Please enter your user id: ";
cin>>uid;
cout<<" Please enter your password:";
cin>>pwd;
if(uid==username && pwd==password)
{
cout<<" Access Granted! - "<<uid<<endl;
return true;
}
else
{
cout<<" ***** Login Failed! *****"<<endl;
return false;
}
}
int main()
{
string username,password; //the username and password that is created
string uid,pwd; //the values used during login
char option,last_transaction=' ';
bool repeat=true;
int menuNum=1;
double balance=0,deposit,withdrawal,prevbalance=0;
cout<<" Welcome to My Bank ATM Machine"<<endl;
while(repeat)
{
option=printMenu(menuNum);
switch(tolower(option))
{
case 'l':
if(login(username,password))
menuNum=2; //change menu number if login is succesful
break;
case 'c':
create(username,password);
break;
case 'd':
cout<<" Amount of deposit: ";
cin>>deposit;
prevbalance=balance;
balance=balance+deposit;
last_transaction='d';
break;
case 'r':
//format the output with comma and show 2 decimal places
cout.imbue(std::locale(""));
cout<<" Beginning Balance: $"<<std::fixed<<setprecision(2)<<prevbalance<<endl;
if(last_transaction=='d')
cout<<" Deposit Amount: $"<<deposit<<endl;
else
{
if(withdrawal < 0) //-ve Amount
cout<<" Withdrawal Amount: $("<<withdrawal<<")"<<endl;
else
cout<<" Withdrawal Amount: $"<<withdrawal<<endl;
}
cout<<" Your balance is $"<<balance<<endl;
break;
case 'w':
cout<<" Amount of withdrawal: ";
cin>>withdrawal;
prevbalance=balance;
balance=balance-withdrawal;
last_transaction='w';
break;
case 'q':
cout<<" Thank you for banking with My Bank";
if(username.empty())
cout<<"!"<<endl;
else
cout<<", "<<username<<"!"<<endl;
repeat=false;
break;
}
}
return 0;
}
output
Welcome to My Bank ATM Machine
l -> Login
c -> Create Account
q -> Quit
Please select an option: l
Please enter your user id: test
Please enter your password:test
***** Login Failed! *****
l -> Login
c -> Create Account
q -> Quit
Please select an option: c
Please enter your user id: test
Please enter your password:testp
Thank you! Your account has been created!
l -> Login
c -> Create Account
q -> Quit
Please select an option: l
Please enter your user id: test
Please enter your password:testp
Access Granted! - test
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
q -> Quit
Please select an option: d
Amount of deposit: 2039.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
q -> Quit
Please select an option: r
Beginning Balance: $0.00
Deposit Amount: $2,039.45
Your balance is $2,039.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
q -> Quit
Please select an option: w
Amount of withdrawal: 39
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
q -> Quit
Please select an option: r
Beginning Balance: $2,039.45
Withdrawal Amount: $39.00
Your balance is $2,000.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
q -> Quit
Please select an option: d
Amount of deposit: 19
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
q -> Quit
Please select an option: r
Beginning Balance: $2,000.45
Deposit Amount: $19.00
Your balance is $2,019.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
q -> Quit
Please select an option: w
Amount of withdrawal: -2.45
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
q -> Quit
Please select an option: r
Beginning Balance: $2,019.45
Withdrawal Amount: $(-2.45)
Your balance is $2,021.90
d -> Deposit Money
w -> Withdraw Money
r -> Request Balance
q -> Quit
Please select an option: q
Thank you for banking with My Bank, test!
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.