PROGRAMMING ASSIGNMENT 5 This program is similar to programm
PROGRAMMING ASSIGNMENT #5 This program is similar to programming assignment #4. That is, you will have all of the requirements as in Programming Assignment #4, including data error checking on all inputs. Your program is to behave in the exact same manner as assignment #4, however how you structure your code is a different story. Now we will use functions. Recall Programming Assignment #4: Write a C program that allows the user to make some simple banking transactions. The program should first prompt the user to enter the current balance of his/her bank account (in dollars and cents, not less than zero). The program should then prompt the user to enter the number of withdrawals to make, and then the number of deposits to make. For this assignment, let\'s set a maximum of 5 deposits and 5 withdrawals (etc.) Here is the change for program #5: There should be at least two non-trivial functions in the program. (Non-trivial means that the function does more than simply print a line of text.) Here are some examples of what you might want to use for your functions: Input functions: 1. Obtain opening (current) balance. 2. Obtain number the number of deposits. 3. Obtain number of withdrawals. 4. Obtain deposit amounts. 5. Obtain withdrawal amounts. Output functions: 1. Display closing balance and associated message. 2. Display message based on closing balance. 3. Display bank record. Hints: Your code from assignment #4 does not need to be modified too much to solve this problem. The algorithm is the same. Outputting the contents of the arrays in \"record form\" is pretty straightforward, and should be done in a loop. (This could be a good place for a function.) The most complicated of the above functions is the one which would display the bank record. If you decide that you want to attempt this one, I will give you a head start by providing the function header as shown here: void (display_bank_record (float start_balance, float deposits [ ], int num_deposits, float withdrawals [ ], int num_withdrawals, float end_balance) Good luck!
#include <stdio.h>
int main(void)
{
int deposits, withdrawls, x = 1, y = 1;
float finalavg = 0, balance = -1, InMoney[5], OutMoney[5], TotalMoney = 0;
char c;
printf (\"Welcome to the Computer Banking System\ \ \");
while (balance <= -1 )
{
printf (\"Enter your current balance in dollars and cents:\");
scanf (\"%f\", &balance);
if (balance <= -1 )
{
printf (\"*** Beginning balance must be at least zero, please re-enter. \ \ \");
continue;
}
TotalMoney = TotalMoney + balance;
} /* end while loop */
do
{
printf (\"\ Enter the number of deposits (0 - 5):\");
scanf (\"%i\", &deposits);
while ( (c = getchar() != \'\ \') && c != EOF);
if (deposits < 0 || deposits > 5)
printf (\"*** Invalid number of deposits, please re-enter.\ \");
}
while (deposits < 0 || deposits > 5); /* end loop*/
do
{
printf (\"\ Enter the number of withdrawls (0 - 5):\");
scanf (\"%i\", &withdrawls);
while ( (c = getchar() != \'\ \') && c != EOF);
if (withdrawls < 0 || withdrawls > 5)
printf (\"*** Invalid number of withdrawals, please re-enter.\ \");
printf (\"\ \");
}
while (withdrawls < 0 || withdrawls > 5); /* end loop*/
while (x <= deposits)
{
printf (\"Enter the amount of deposit #%i:\", x);
scanf (\"%f\", &InMoney[x]);
if (InMoney[x] < 0)
{
printf (\"*** Deposit amount must be greater than zero, please re-enter.\ \ \");
}
else if (InMoney[x] >= 0)
{
TotalMoney = TotalMoney + InMoney[x];
x++;
while ( (c = getchar() != \'\ \') && c != EOF);
}
} /* end loop*/
printf (\"\ \");
while (y <= withdrawls)
{
printf (\"Enter the amount of Withdrawl #%i:\", y);
scanf (\"%f\", &OutMoney[y]);
if (OutMoney[y] > TotalMoney)
{
printf (\"*** Withdrawal amount exceeds current balance, please re-enter.\ \ \");
}
else if (OutMoney[y] <= TotalMoney)
{
TotalMoney = TotalMoney - OutMoney[y];
y++;
while ( (c = getchar() != \'\ \') && c != EOF);
}
} /* end loop*/
printf (\"\ *** The closing balance is $%.2f ***\ \", TotalMoney);
if (TotalMoney >= 50000.00 )
printf (\"*** It is time to invest some money! ***\");
else if (TotalMoney >= 15000.00 && TotalMoney <= 49999.99)
printf (\"*** Maybe you should consider a CD. ***\");
else if (TotalMoney >= 1000.00 && TotalMoney <= 14999.99)
printf (\"*** Keep up the good work! ***\");
else if (TotalMoney >= 0.00 && TotalMoney <= 999.99)
printf (\"*** Your balance is getting low! ***\");
printf (\"\ \ *** Bank Record ***\ \ \");
printf (\"\ Starting Balance:$ %13.2f\ \", balance);
printf (\"\ \");
for (x = 1; x <= deposits; x++)
{
printf (\"Deposit #%i: %13.2f\ \", x, InMoney[x]);
}
printf (\"\ \");
for (y = 1; y <= withdrawls; y++)
{
printf (\"Withdrawals #%i: %13.2f\ \", y, OutMoney[y]);
}
printf (\"\ \");
printf (\"Ending Balance is:$ %13.2f\ \", TotalMoney);
getchar();
return 0;
} /* end main. */
Solution
#include <stdio.h>
float getInitialDeposit();
void display_bank_record (float, float[ ], int, float[ ], int, float);
int main(void)
{
int deposits, withdrawls, x = 1, y = 1;
float finalavg = 0, balance = -1, InMoney[5], OutMoney[5], TotalMoney = 0;
char c;
printf (\"Welcome to the Computer Banking System\ \ \");
balance = getInitialDeposit();
TotalMoney = TotalMoney + balance;
deposits = getDeposits();
withdrawls = getWithdrawals();
while (x <= deposits)
{
printf (\"Enter the amount of deposit #%i:\", x);
scanf (\"%f\", &InMoney[x]);
if (InMoney[x] < 0)
{
printf (\"*** Deposit amount must be greater than zero, please re-enter.\ \ \");
}
else if (InMoney[x] >= 0)
{
TotalMoney = TotalMoney + InMoney[x];
x++;
while ( (c = getchar() != \'\ \') && c != EOF);
}
} /* end loop*/
printf (\"\ \");
while (y <= withdrawls)
{
printf (\"Enter the amount of Withdrawl #%i:\", y);
scanf (\"%f\", &OutMoney[y]);
if (OutMoney[y] > TotalMoney)
{
printf (\"*** Withdrawal amount exceeds current balance, please re-enter.\ \ \");
}
else if (OutMoney[y] <= TotalMoney)
{
TotalMoney = TotalMoney - OutMoney[y];
y++;
while ( (c = getchar() != \'\ \') && c != EOF);
}
} /* end loop*/
printf (\"\ *** The closing balance is $%.2f ***\ \", TotalMoney);
if (TotalMoney >= 50000.00 )
printf (\"*** It is time to invest some money! ***\");
else if (TotalMoney >= 15000.00 && TotalMoney <= 49999.99)
printf (\"*** Maybe you should consider a CD. ***\");
else if (TotalMoney >= 1000.00 && TotalMoney <= 14999.99)
printf (\"*** Keep up the good work! ***\");
else if (TotalMoney >= 0.00 && TotalMoney <= 999.99)
printf (\"*** Your balance is getting low! ***\");
display_bank_record(balance, InMoney, deposits, OutMoney, withdrawls, TotalMoney);
//getchar();
return 0;
} /* end main. */
int getDeposits()
{
int deposits = 0;
char c;
do
{
printf (\"\ Enter the number of deposits (0 - 5):\");
scanf (\"%i\", &deposits);
while ( (c = getchar() != \'\ \') && c != EOF);
if (deposits < 0 || deposits > 5)
printf (\"*** Invalid number of deposits, please re-enter.\ \");
}
while (deposits < 0 || deposits > 5); /* end loop*/
return deposits;
}
int getWithdrawals()
{
int withdrawls = 0;
char c;
do
{
printf (\"\ Enter the number of withdrawls (0 - 5):\");
scanf (\"%i\", &withdrawls);
while ( (c = getchar() != \'\ \') && c != EOF);
if (withdrawls < 0 || withdrawls > 5)
printf (\"*** Invalid number of withdrawals, please re-enter.\ \");
printf (\"\ \");
}
while (withdrawls < 0 || withdrawls > 5); /* end loop*/
return withdrawls;
}
float getInitialDeposit()
{
float balance = -1;
while (balance <= -1 )
{
printf (\"Enter your current balance in dollars and cents:\");
scanf (\"%f\", &balance);
if (balance <= -1 )
{
printf (\"*** Beginning balance must be at least zero, please re-enter. \ \ \");
continue;
}
} /* end while loop */
return balance;
}
void display_bank_record (float start_balance, float deposits [ ], int num_deposits, float withdrawals [ ], int num_withdrawals, float end_balance)
{
int x,y;
printf (\"\ \ *** Bank Record ***\ \ \");
printf (\"\ Starting Balance:$ %13.2f\ \", start_balance);
printf (\"\ \");
for (x = 1; x <= num_deposits; x++)
{
printf (\"Deposit #%i: %13.2f\ \", x, deposits[x]);
}
printf (\"\ \");
for (y = 1; y <= num_withdrawals; y++)
{
printf (\"Withdrawals #%i: %13.2f\ \", y, withdrawals[y]);
}
printf (\"\ \");
printf (\"Ending Balance is:$ %13.2f\ \", end_balance);
getchar();
}




