As with all projects in this course, your program’s output will display your name, your EUID, your e-mail address, the department name, and course number. This means that your program will print this information to the terminal (see the sample output).
Declare and initialize the following constants and variables.
A global floating-point constant of type double to store the minimum balance for the
business account initialized to 10000.00.
A global floating-point constant to of type double to store the minimum balance for the
personal account initialized to 1000.00.
A global integer constant of type integer to store the length of account number and
initialize it to 6.
A global integer constant of type integer to store the maximum number of transactions
and initialize it to 20.
Declare an enumeration constant with values Business and Personal and assign integer values 0
and 1 to the data items, respectively. They represent the type of bank account.
Declare another enumeration constant with values Process, Display and Quit, and assign suitable integer values 1, 2 and 3 to the data items, respectively. They represent menu choice presented
to the user.
Write a
• •
•
•
Write a
• •
function named
getName
which gets the name on the bank account. Inside the function: Using a suitable message, prompt the user for the name on the account. The name can have multiple words.
Only alphabets (A-Z or a-z) and whitespaces are permitted in the account name.
o If the user enters any other characters in the name, you need to generate an error message and ask for the name again.
o Yourprogrammustkeeponaskingtheusertoenterthenameuntiltheuserentersit correctly.
(SEE SAMPLE OUTPUT 1)
The user may type the name in either uppercase or lowercase, but you need to convert every initial to uppercase.
(SEE SAMPLE OUTPUTS)
This function will be called by the
main
function.
function named
getAccountNumber
which get the account number. Inside the function: Using a suitable message, prompt the user for the number of the account.
The account number must be a 6-digit number.
If the user enters an account number with more than 6 digits generate an error message and ask the user to enter the number again.
Only numbers 0-9 are permitted in the account number. If the user enters an account number with non-numeric characters, generate an error message, and ask the user to enter the number again.
Your program must keep on asking the user to enter the number until the user enters it correctly.
(SEE SAMPLE OUTPUTS 1 and 2)
This function will be called by the
main
function.
7. Write a function named
encrypt_num
. This function must receive the account number using a string variable and encrypt the account number. Inside this function:
Declare an array of integers with size equal to the length of the account number.
Using a loop of your choice, populate the array with seeded .
As with all projects in this course, your program’s output wil.docx
1. As with all projects in this course, your program’s output will
display your name, your EUID, your e-mail address, the
department name, and course number. This means that your
program will print this information to the terminal (see the
sample output).
Declare and initialize the following constants and variables.
A global floating-point constant of type double to store the
minimum balance for the
business account initialized to 10000.00.
A global floating-point constant to of type double to store the
minimum balance for the
personal account initialized to 1000.00.
A global integer constant of type integer to store the length of
account number and
initialize it to 6.
A global integer constant of type integer to store the maximum
number of transactions
and initialize it to 20.
2. Declare an enumeration constant with values Business and
Personal and assign integer values 0
and 1 to the data items, respectively. They represent the type of
bank account.
Declare another enumeration constant with values Process,
Display and Quit, and assign suitable integer values 1, 2 and 3
to the data items, respectively. They represent menu choice
presented
to the user.
Write a
• •
•
•
Write a
• •
3. function named
getName
which gets the name on the bank account. Inside the function:
Using a suitable message, prompt the user for the name on the
account. The name can have multiple words.
Only alphabets (A-Z or a-z) and whitespaces are permitted in
the account name.
o If the user enters any other characters in the name, you need
to generate an error message and ask for the name again.
o
Yourprogrammustkeeponaskingtheusertoenterthenameuntiltheus
erentersit correctly.
(SEE SAMPLE OUTPUT 1)
The user may type the name in either uppercase or lowercase,
but you need to convert every initial to uppercase.
(SEE SAMPLE OUTPUTS)
This function will be called by the
main
function.
function named
getAccountNumber
which get the account number. Inside the function: Using a
suitable message, prompt the user for the number of the
account.
The account number must be a 6-digit number.
4. If the user enters an account number with more than 6 digits
generate an error message and ask the user to enter the number
again.
Only numbers 0-9 are permitted in the account number. If the
user enters an account number with non-numeric characters,
generate an error message, and ask the user to enter the number
again.
Your program must keep on asking the user to enter the number
until the user enters it correctly.
(SEE SAMPLE OUTPUTS 1 and 2)
This function will be called by the
main
function.
7. Write a function named
encrypt_num
. This function must receive the account number using a string
variable and encrypt the account number. Inside this function:
Declare an array of integers with size equal to the length of the
account number.
Using a loop of your choice, populate the array with seeded
5. randomly generated numbers
between 10 and 20 inclusive.
In a second loop, add the randomly generated number to the
characters in the account
•
8. Write a
•
• •
• •
number to offset each character by the random value.
oStore the new characters in a different string. This new string
is now your encrypted
account number.
This function will be called by the
main
function.
function named
6. display_transactions
. It accepts four parameters:
A 2D array of type double named transactions that stores the
transactions performed on the accounts. The number of columns
this 2D array is 2. The first column stores the business
transactions while the second column stores the personal
transactions. The maximum number of rows is limited to the
maximum number of transactions declared globally, but note
that the account may not have values for all 20 transactions.
Also note that the number of personal and business transactions
that are actually performed can be different.
An integer that represents the number of transactions to
display.
An enum variable that determines whether the account is a
Business account or a Personal Account.
A Boolean variable that determines if the transactions needed
to sorted while displaying. The default value of this Boolean is
false.
Inside this function:
o Display the content of the transactions array that relates to the
correct account type – Business and Personal (display the
correct column, not both columns).
o Sort if the default value has been overridden with true when
this function is called.
o Your numeric data must have two numbers after the decimal
point and a $ sign in front
7. of the number (for example, $1375.85).
• This function will be called by the
displayAccount
function.
9. Write a function named
displayAccount
.
• This function accepts three parameters.
•
10. Write a
•
• •
•
•
o A 2D array of type double named transactions that stores the
transactions performed on the accounts.
o An integer that represents the number of business transactions
8. to display.
o An integer that represents the number of personal
transactions to display.
Inside this function:
o Using a suitable message, ask the user which account needs
to be displayed – Business
or Personal.
o Using a suitable message, ask the user if the display needs to
be sorted.
o Based on the account type selected by a user, design a
switch-case block with a default
case, to implement the following features.
➢ You must use the enumeration constants to set up your cases.
➢ You must use a variable of your enumeration constant type
for switching control.
➢ If the user chooses a Business account, call function
display_transactions
with
suitable value of parameters.
➢ If the user chooses a Personal account, call function
9. display_transactions
with
suitable value of parameters.
➢ If the user enters a wrong choice, use the default case to
provide an error message
and ask the user to make the choice again.
➢ Your program needs to keep on asking the user for the
choice until the user chooses
a correct choice.
(SEE SAMPLE OUTPUT 1)
This function will be called by the
main
function.
function named
process_account.
It accepts five parameters:
o A 2D array of type double named transactions that stores the
transactions performed
on the accounts.
oAn integer that represents the number of business transactions
that has been
processed.
10. oAn integer that represents the number of personal transactions
that has been
processed.
o A double that represents the current business account
balance.
o A double that represents the current personal account
balance.
Inside this function:
Ask the user to choose which account the user wants to access
– Business or Personal.
o Use a suitable integer value to get the choice from the user.
Based on the choice of the user, design a switch case block to
implement the following requirements.
o You must use the enumeration constants to set up your cases.
o You must use a variable of your enumeration constant type
for switching control.
o If the user chooses a Business account
➢ Prompt the user for a transaction to process. The transaction
can be a positive or a negative value. Positive transactions are
deposits and negative transactions are withdrawals.
➢ If the current balance falls below the required minimum
balance for a business account, there is a 10$ penalty (decrease
11. current balance by $10 for every new
transaction) until the current balance updates to at least the
minimum required
balance.
(SEE SAMPLE OUTPUT 5)
➢ If the current balance is below the minimum required
balance, remind the user that
the account is losing 10$ for every transaction using a suitable
message.
(SEE
SAMPLE OUTPUT 5)
o If the user chooses a Personal account
➢ Prompt the user for a transaction to process. The transaction
can be a positive or a
negative value. Positive transactions are deposits and negative
transactions are
withdrawals.
➢ If any transaction drops the current balance below the
minimum personal balance,
12. the transaction will be denied with a suitable message to the
user.
➢ Note that for personal accounts the current balance will
never be less than the
minimum balance and hence there are no provision of penalties
either.
o If the user enters a wrong choice, use the default case to
provide an error message and
ask the user to make the choice again.
➢ Your program needs to keep on asking the user for the
choice until the user chooses
a correct choice.
(SEE SAMPLE OUTPUT 1)
oDisplay the current balance in either case after each
successful transaction.
(SEE
SAMPLE OUTPUTS)
➢ Your numeric data must have two numbers after the decimal
point and a $ sign in front of the number (for example,
$1375.85).
o This function needs be able to process more than one
transaction.
13. oAfter successfully processing a transaction, ask the user if the
user wants to process
another transaction.
o If the user chooses to process another transaction, use a
suitable loop to ask the user
about the type of account and the transaction to process.
(SEE SAMPLE OUTPUTS )
o If the user chooses to process additional transactions, the
previous transactions should
not be overwritten.
o Assume the user will not perform more than 20 transactions
on either account.
• This function will be called by the
main
function.
11. Inside your
main
function:
Declare a 2D array of doubles to store the transactions
performed on the account.
Display a menu for the user (SEE SAMPLE OUTPUT) that
provides the user three choices.
o Process an account
14. o Display the transactions on an account. o Quit the program
Declare a double variable to store the current personal account
balance and initialize it with the value 1000.00.
Declare a double variable to store the current business account
balance and initialize it with the value 10000.00.
Declare two integer variables to store the number of business
transactions and the number of personal transaction and
initialize both with 0.
Declare a string variable to store the name on the account.
o Call the
getName
function and pass the string variable for name to get the name.
Declare a string variable to store the account number.
o Call the
getAccountNumber
function and pass the string variable for account number to get
the account number.
15. Using a suitable message, ask the user to make the menu choice
using an integer variable.
Based on the value entered by the user for menu choice, design
a switch-case block to
implement the following requirements.
o You must use the enumeration constants to set up your cases.
o You must use a variable of your enumeration constant type
for switching control. o If the user chooses to process an
account
➢ Call the function
processAccount
with suitable parameters. o If the user chooses to display an
account
➢ Display the name with suitable message. Make sure the
displayed name follows all requirements of Step 5.
➢Display the encrypted account number with suitable message.
Call the
encrypt_num
function with appropriate arguments to encrypt the account
number.
➢ Call the function
displayAccount
with appropriate arguments. o If the user choose to quit the
program.
➢ Exit the program with a suitable message.
16. o If the user chooses anything else, execute the default case to
notify the user an incorrect
choice.
➢ Using a suitable loop, ask the use for the choice again.
➢ Your program must keep on looping until the user enters the
correct choice. (
SEE
SAMPLE OUTPUT 2
)
Your program source code should be named “
euidProject2.cpp
”, without the quotes.
where euid should be replaced by your EUID.
Your program will be graded based largely on whether it works
correctly on the CSE machines (e.g., cse01, cse02, ..., cse06),
so you should make sure that your program compiles and runs
on a CSE machine.
DESIGN (ALGORITHM):
17. On a piece of paper (or word processor), write down the
algorithm, or sequence of steps, that you will use to solve the
problem. You may think of this as a “recipe” for someone else
to follow. Continue to refine your “recipe” until it is clear and
deterministically solves the problem. Be sure to include the
steps for prompting for input, performing calculations, and
displaying output.
You should attempt to solve the problem by hand first (using a
calculator as needed) to work out what the answer should be for
a few sets of inputs.
Type these steps and calculations into a document (i.e., Word,
text, or PDF) that will be submitted along with your source
code. Note that if you do any work by hand, images (such as
pictures) may be used, but they must be clear and easily
readable. This document shall contain both the algorithm and
any supporting hand-calculations you used in verifying your
results.