PROGRAM ASSIGNMENT
Write a C program that allows the user to make some ledger transactions. The program should first prompt the user to enter the current balance of his/her ledger account (must allow for dollars and cents, and not less than zero). The program should then prompt the user to enter the number of debits to be posted, and then the number of credits to be posted. For this assignment, let's set a maximum of 25 credits or debits, you'll see why as you read on.
Using a loop, the program should then prompt the user to enter the amount of the first credit (a positive amount to add to the ledger balance), the amount of the second, the third, & etc., until the number of credits have been processed.
Using a second loop, the program should then prompt the user to enter the amount of the first debit (a positive amount to be subtracted from the ledger balance), then amount of the second, the third, etc. until the number of debits have been processed. Once all credits and debits have been made, the program should output the ledger balance.
Read all the specifications carefully. I did not show all of the editing features you are required to do, but they are in bold above.
The dialog with the user should look similar to the following, only with your special introductory statement(s) as you wish:
Welcome to the Coke Ledger System (or whatever you wish here)
Please enter the ledger Account name: Trip Expenses
The program will allow you to enter credits and debits to the Trip Expenses account.
Please enter the Trip Expenses current balance in dollars and cents: 256.40
Enter the number of debits to post: 2
Enter the number of credits to post: 3
Enter the amount of credit #1: 10.50
Enter the amount of credit #2: 12.25
Enter the amount of credit #3: 125.30
Enter the amount of debit #1: 120.35
Enter the amount of debit #2: 35.60
*** The Trip Expense balance is $248.50 ***
(there is more to the output .... See below)
At this point, the program should also output one of the following messages based on the account balance, with the name inserted. That is:
If the account balance is greater than 0, output:
"*** The account Trip Expenses has a credit balance ***"
If the account balance is equal to 0, output:
"*** The account Trip Expenses is now exhausted of funds ***"
If the account balance is less than 0, output:
"*** The account Trip Expenses is now over the allotted budget ***"
So, in the above example, the last line of sample output would be:
*** The account Trip Expenses has a credit balance ***
The should be error checking on all user input, and trap loops need to be used. These are discussed in the notes and examples are there as well as in the google documents.
Finally you are to print out a "Ledger Record" as shown in the sample below.
Welcome to the Sears Ledger System
Please enter the ledger Account name: Trip Expenses
The program will allow you to enter credits and debits to the Trip Expenses account.
Please enter the Trip Expenses current balance in dollars and cents: 256.40
Enter the number of debits to post: 2
Enter the number of credits to post: 3
Enter the amount of credit #1: 10.50
Enter the amount of credit #2: 12.25
Enter the amount of credit #3: 125.30
Enter the amount of debit #1: 120.35
Enter the amount of debit #2: 35.60
*** The Trip Expense balance is $248.50 ***
*** Ledger Record *** Trip Expenses
Starting Balance: $ 256.40
credit #1: 10.50
credit #2: 12.25
credit #3: 125.30
debit #1: 120.35
debit #2: 35.60
Ending Balance: $ 248.50
It is hard to see this in HTML document, but I want you to align the decimal points in the ledger record.
You are to keep track of all of the credits and debits so that you can print them out in "record" form. You do this by storing them in arrays. You want to be sure that the size of the arrays are large enough to handle 25 credits and 25 debits. Perhaps:
float credits[25], debits [25];
NOTE: There are some bothersome complications with the entry and storage of some float numbers. Because of the way data is stored the float number 22.39 may be stored as 22.389999, and this may cause a problem with your final if statements and even with balance equaling zero. This is a well known anomaly in C.
You may not encounter these problems, I just wanted to warn you of the potential problem.