Изменение кредитного калькулятора - PullRequest
0 голосов
/ 25 июля 2010

Я создал программу, которая рассчитывает кредиты, но она не соответствует рекомендациям моего профессора. Можете показать мне правильную переделку. Исходный код будет отличным и сэкономит время, но вам не нужно.

Вот проблема:

Напишите программу, которая позволяет пользователю вводить сумму займа и срок займа в количестве лет и отображать ежемесячные и общие выплаты по каждой процентной ставке, начиная с 5% до 8%, с шагом 1/8. Вот пример прогона:

Loan amount: 10000 [Enter]
Numbers of Years: 5: [Enter] 

Interest rate          Monthly Payment                     Total Payment 
5%                         188.71                              11322.74
5.125%                     189.28                              11357.13

Вот мой предыдущий код:

# include <iostream>
# include <iomanip>
# include <cmath>

using namespace std;

int main ()
{
    double loanAmountA;
    double annualRate;
    double paymentAmount;
    double amountInterest;
    double ratePeriod;
    double balanceAfter;
    double amountApplied;
    double balance;
    double paymentPeriod;
    int paymentsPerYear;
    int totalPayments;
    int loanCount = 1;
    int paymentCount = 1;
    bool anotherLoan = true;
    char response;

    while (anotherLoan == true)
    {
        cout<<"Enter amount of loan A:$ ";
        cin>>loanAmountA;
        cout<<endl;
        cout<<"Enter annual percentage rate (APR): "<<"%";
        cin>>annualRate;
        cout<<endl;
        cout<<"Enter the number of payments per year: ";
        cin>>paymentsPerYear;
        cout<<endl;
        cout<<"Enter the total number of payments: ";
        cin>>totalPayments;
        cout<<endl;
        cout<<"Payment Payment Amount Amount to Balance after";
        cout<<endl;
        cout<<"Number Amount Interest Principal This Payment";
        cout<<endl;

        cin.ignore(80,'\n');

        while (paymentCount <=totalPayments)
        {
            annualRate = annualRate / 100;
            balance = loanAmountA - totalPayments * paymentAmount;
            ratePeriod = balance * annualRate;
            paymentAmount = loanAmountA * (totalPayments / paymentsPerYear * annualRate) / totalPayments;
            balanceAfter = balance - paymentAmount;
            balance = loanAmountA - (paymentCount * paymentAmount);


            cout<<left<<setprecision(0)<<setw(3)<<paymentCount;
            cout<<setw(13)<<left<<fixed<<setprecision(2)<<paymentAmount;
            cout<<setw(26)<<left<<fixed<<setprecision(2)<<ratePeriod;
            cout<<setw(39)<<left<<fixed<<setprecision(2)<<balance;
            cout<<setw(42)<<left<<fixed<<setprecision(2)<<balanceAfter;

            if (paymentCount % 12 == 0)
            {
                cout<<endl;
                cout<<"Hit <Enter> to continue: "<<endl;
                cin.ignore(80,'\n');
                cin.get();
            }
            paymentCount++;
            loanCount++;
            cout<<endl;
        }

        cout<<"Would you like to calculate another loan? y/n and <enter>";
        cin>>response;
        if (response == 'n') 
        {
            anotherLoan = false;
            cout<<endl<<endl;
            cout<<"There were"<<loanCount<< "loans processed.";
            cout<<endl<<endl;
        }
    }
    return 0;
}

1 Ответ

1 голос
/ 25 июля 2010

Вы пытались использовать отладчик и нашли точку отказа?

...