CMSC104, Spring 2007
Programming Project 3
Bank Account
Out: Saturday, April 28, 2007
New Due Date: Thursday, May 10, 2007 before 11:59
p.m.
The Objective
This project is designed to give you practice working with functions.
It will give you also give you more practice working with while loops
and switch statments.
The Background
Most people store their money in a checking account. There are two
basic operations performed on the checking account. One operation is
to deposit money into the account and the other is to make a withdrawal
from the account.
The Task
Your job is to write a program that will simulate the behavior of
a checking account. Your program should accept a beginning balance from
the user and then display a menu with four options. The menu
should have the four options shown in the sample output below.
The functions you will write, in addition to the main function,
are:
- void PrintGreeting (void); - This function prints an explanation
of the program to the user. You should assume the user knows nothing about
program and give a detailed explanation.
- void PrintMenu (void); - This function displays the menu to the
screen.
- float GetPositiveValue (void); - This function gets a positive (greater than 0)
value from the user. It should error check the user input to make sure the value is
greater than 0. It takes no arguments and returns the value entered by the user.
You should use this function to get the beginning balance from the user. You
should also use it to get the amount to withdraw or deposit.
- float Withdrawal (float balance, float withdrawalAmt); - This function
takes the current balance and the amount to withdraw. It returns the
new balance after the withdrawal is made.
- float Deposit (float balance, float depositAmt); - This function
takes the current balance and the amount to be deposited as arguments. It returns
the new balance after the deposit is made.
- void PrintReceipt (int totalWithdrawals, int totalDeposits, float begBalance, float balance); -
This function prints an account summary to the screen. It should list the total number
of withdrawals, the total number of deposits, the beginning balance and the ending balance. It
does not have to match the sample output exactly.
More Details
Sample Output
linux3[1]% gcc -ansi -Wall proj3.c
linux3[2]% a.out
[Your greeting goes here.]
Please enter the beginning balance: 1000.00
1) Make a Withdrawal
2) Make a Deposit
3) Display Account Summary
4) Quit
Selection: 1
Enter the amount to withdraw: 500.00
1) Make a Withdrawal
2) Make a Deposit
3) Display Account Summary
4) Quit
Selection: 1
Enter the amount to withdraw: 100.00
1) Make a Withdrawal
2) Make a Deposit
3) Display Account Summary
4) Quit
Selection: 3
----------------------------------------------------
Account Summary
Beginning balance: $1000.00
Ending balance: $400.00
Total number of withdrawals: 2
Total number of deposits: 0
----------------------------------------------------
1) Make a Withdrawal
2) Make a Deposit
3) Display Account Summary
4) Quit
Selection: 2
Enter the amount to deposit: 500.00
1) Make a Withdrawal
2) Make a Deposit
3) Display Account Summary
4) Quit
Selection: 3
----------------------------------------------------
Account Summary
Beginning balance: $1000.00
Ending balance: $900.00
Total number of withdrawals: 2
Total number of deposits: 1
----------------------------------------------------
1) Make a Withdrawal
2) Make a Deposit
3) Display Account Summary
4) Quit
Selection: 1
Enter the amount to withdraw: 1000.00
********* WARNING: You have a negative account balance *********
1) Make a Withdrawal
2) Make a Deposit
3) Display Account Summary
4) Quit
Selection: 3
----------------------------------------------------
Account Summary
Beginning balance: $1000.00
Ending balance: $-100.00
Total number of withdrawals: 3
Total number of deposits: 1
----------------------------------------------------
1) Make a Withdrawal
2) Make a Deposit
3) Display Account Summary
4) Quit
Selection: 4
linux3[3]%
Submitting the Program
Here is a sample submission command. Note that the project name starts with uppercase 'P'.
linux3[4]% submit cs104 Proj3 proj3.c
To verify that your project was submitted, you can execute the
following command at the Unix prompt. It will show the file that
you submitted in a format similar to the Unix 'ls' command.
linux3[5]% submitls cs104 Proj3
Last Modified: