CSC 161 Schedule Readings Labs & Projects Homework Deadlines Resources

Calculating Credit Card Interest

Summary
You will write a program to simulate calculating credit card interest whilst making only the minimum payment each month.
Objectives
Reinforce the basic types, operations, and control structures of the C programming language.

Background

An individual's credit card comes with an annual percentage rate (APR), which dictates how much interest you'd pay on a balance over a year. However, because users typically accrue charges over the course a billing cycle, most credit card issuers calculate a so-called daily periodic rate (or DPR) and charge you interest based on the average daily balance during your billing cycle.

Details differ by card issuer, but we will calculate the daily periodic rate as the annual percentage rate over 365.

The total interest charges accrued in your billing cycle is then your average daily balance multiplied by the DPR and the number of days in the billing cycle.

Example

Suppose your APR is 18%, then the DPR is calculated as

0.18 / 365 = 0.0004931506849

Now suppose you're not adding any new charges and your forward balance is $42. If the month corresponding to your billing cycle has 31 days, the total interest you owe is

 $42 * 0.004931 * 31 = $0.64

This is a pretty underwhelming amount, but as we'll see, the compounding interest can be significant when you only pay the minimum amount each month.

The Task

Write a program called creditcard.c that establishes an annual percentage rate and an initial balance as well as a monthly minimum payment. The program should then display the amount paid each month, along with the interest accrued and the remaining balance. Once the balance is paid off, it should report how many months it took to pay off the balance and the total amount paid.

For example, if we have a common APR of 18% and monthly minimum of $35, we might see the following for a forward balance of $500.

Cycle	Month	Intrst	Payment	Balance
 0	 9	$ 7.40	$35.00	$ 472.40
 1	10	$ 7.22	$35.00	$ 444.62
 2	11	$ 6.58	$35.00	$ 416.20
 3	12	$ 6.36	$35.00	$ 387.56
 4	 1	$ 5.92	$35.00	$ 358.48
 5	 2	$ 4.95	$35.00	$ 328.43
 6	 3	$ 5.02	$35.00	$ 298.46
 7	 4	$ 4.42	$35.00	$ 267.87
 8	 5	$ 4.10	$35.00	$ 236.97
 9	 6	$ 3.51	$35.00	$ 205.47
10	 7	$ 3.14	$35.00	$ 173.61
11	 8	$ 2.65	$35.00	$ 141.27
12	 9	$ 2.09	$35.00	$ 108.36
13	10	$ 1.66	$35.00	$  75.01
14	11	$ 1.11	$35.00	$  41.12
15	12	$ 0.63	$35.00	$   6.75
16	 1	$ 0.10	$ 6.86	$   0.00
After 17 months, you paid $566.86 on an initial balance of $500.00.

Your program should also follow these requirements:

General Notes

Your testing should cover an appropriate range of "input" value combinations and your program's output should make it easy to assess correctness.

Grading

In addition to the general grading guidelines for evaluation, the assignment is worth 25 points.

Submit files creditcard.c, references.txt, and tests.txt.

A five point penalty will apply to any submission that includes personally identifying information anywhere other than the references/honesty file.