In: Computer Science
PROBLEM: c++ code
You are to write a program to tell you how many months it will take to pay off a loan, as well as the total amount of interest paid over the life of the loan.
You have just purchased a stereo system that costs $1000 on the following credit plan: No down payment, an interest rate of 18% per year (and hence 1.5% per month), and monthly payments of $50. The monthly payment of $50 is used to pay the interest and whatever is left is used to pay part of the remaining debt. Hence, the first month you pay 1.5% of $1000 in interest. That is $15 in interest. So, the remaining $35 is deducted from your debt which leaves you with a debt of $965.00. The next month you pay interest of 1.5% of $965.00, which is $14.48. Hence, you can deduct $35.52 (which is $50 - $14.48) from the amount you owe.
Write a program that will tell you how many months it will take you to pay off the loan, as well as the total amount of interest paid over the life of the loan. Use a loop to calculate the amount of interest and the size of the debt after each month. Put out the monthly amount of interest paid and remaining debt. Use a variable to count the number of loop iterations and hence the number of months until the debt is zero. You may want to use other variables as well.
You are to hand in:
A sample session may run as follows:
Enter the amount of the loan 1000.00
Enter the yearly interest rate 18.0
Enter the monthly amount paid 50.00
Month Principle Interest Principle Remaining
Paid Paid Balance
1 1000.00 15.00 35.00 965.00
2 965.00 14.48 35.52 929.48
3 929.48 13.94 36.06 893.42
.
.
24 47.12 0.71 49.29 -2.17
Number of months to pay of the loan: 24
Total interest paid on loan: 197.83
You have a credit of: -2.17
// main.cpp
#include <iostream>
#include <iomanip> // library for setw() to set width at terminal window
#include"FloatingFilter.h" // library for our own input function defined below
using namespace std;
int main(int argc, const char * argv[]) {
float principle ,yearlyRate ,monthlyPaid , interstPaid;
float sumOfInterstPaid = 0.000;
int months = 1;
float interestPerMonth, balanceLeft;
cout<<setw(60)<<"LOAN Summary\n";
cout<<" enter amount of loan :"<<principle;
principle = inputFloat(); // our own input function that filters the input for floating point
cout<<endl;
cout<<" enter yearly interest rate in %age :"<<yearlyRate;
yearlyRate = inputFloat();
cout<<endl;
cout<<"enter monthly paid :"<<monthlyPaid;
monthlyPaid = inputFloat();
cout<<endl;
cout<<setw(10)<<"Month"<<setw(30)<<"Principle paid"<<setw(30)<<"Interest Paid"
<<setw(30)<<"Principle Balance"<<setw(20)<<"Remaining\n";
while(principle >= 0)
{
interestPerMonth = yearlyRate/12; // calculate interest rate per month
interstPaid = (interestPerMonth/100) * principle; // amount of interst you pay each month
balanceLeft = monthlyPaid - interstPaid; // remaining principle balance which will be deducted from debt.
cout<<setw(10)<<months<<setw(30)<<principle<<setw(30)<<interstPaid<<setw(30)<<balanceLeft<<endl;
principle = principle - balanceLeft; //this is the principle paid each month after deduction
cout<<setw(120)<<principle<<endl;
months++; // increment month by 1 during each iteration
sumOfInterstPaid += interstPaid; //a total of amount of interest paid by you in total months
}
cout<<"Number of months to pay of the loan :"<<months - 1<<endl;
cout<<"total interst paid on loan :"<<sumOfInterstPaid<<endl;
cout<<"you have a credit of :"<<principle<<endl;
}
// FloatingFilter.h
// this file is used for filtering floating point data in our main file
#ifndef FloatingFilter_h
#define FloatingFilter_h
float inputFloat()
{
float number;
int counter1 = 1;
float temp =0, counter2 = 1.0;
char ch;
Repeat: while(1)
{
ch = fgetc(stdin);
if(ch == '\n')
{
if(counter1 == 1)
{
printf("Input field empty.....Enter again:");
continue;
}
else break;
}
if(ch <= '9' && ch >= '0')
{
temp = temp * 10 + (ch & 15);
counter1++;
}
else
{
if(ch == '.')
{
while(1)
{
ch = fgetc(stdin);
if(ch == '\n')
{
goto End;
}
if(ch <= '9' && ch >= '0')
{
temp = temp * 10 + (ch & 15);
counter2 = counter2 * 10;
}
else
{
printf("INvalid entry..");
while(fgetc(stdin) != '\n');
temp = 0;
counter1 = 1;
counter2 = 1.0;
printf("enter again");
goto Repeat;
}
}
}
else
{
printf("INvalid entry..");
while(fgetc(stdin) != '\n');
temp = 0;
counter1 = 1;
counter2 = 1.0;
printf("enter again");
goto Repeat;
}
}
}
End: number = temp / counter2;
return number;
}
#endif /* FloatingFilter_h */
Add these 2 files in same folder then compiler will automatically link them and run as a one file.