Я написал небольшую программу, которая рассчитывает общий процент, общий процентный процент и другие показатели на основе суммы кредита, ставки и срока, введенных пользователем в консоль.Мой вопрос заключается в следующем: я хочу, чтобы программа сравнивала стоимость любого количества кредитов, которые хочет ввести пользователь.Итак, каков наилучший способ перезапустить все мои методы, когда пользователь вводит данные для проверки другого кредита?Должен ли я использовать метод цепочки?Должен ли я иметь другой класс, который управляет этой частью программы?Заранее спасибо.Код для кредитной программы ниже.
import java.util.Scanner;
public class loanCalculator implements Comparable<loanCalculator> {
//class variables
double term, rate, amount, monthlyPayment, perRate, totalRepaid,
totalPrincipalRepaid, totalInterestRepaid, totalInterestPercentage;
final double MONTHS_IN_YEAR = 12;
Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
// TODO Auto-generated method stub
loanCalculator loan = new loanCalculator();
loan.getTerm();
loan.getRate();
loan.getAmount();
loan.setPeriodicInterestRate();
loan.setMonthlyPayment();
loan.setTotalRepaid();
loan.setTotalPrincipalRepaid();
loan.setTotalInterestRepaid();
loan.setTotalInterestPercentage();
System.out.println(loan.toString());
}
void getTerm() {
System.out.println("Enter the term of the loan in years");
this.term = scan.nextDouble();
}
void getRate() {
System.out.println("Enter the rate");
this.rate = scan.nextDouble();
}
void getAmount() {
System.out.println("Enter the amount (no commas or dollar signs");
this.amount = scan.nextDouble();
}
void setPeriodicInterestRate() {
this.perRate = this.rate / 12 /100;
}
void setMonthlyPayment() {
double N = -term*MONTHS_IN_YEAR;
this.monthlyPayment = (perRate * amount) / (1-(Math.pow((1+perRate), N)));
}
void setTotalRepaid() {
this.totalRepaid = term * MONTHS_IN_YEAR * (monthlyPayment);
}
void setTotalPrincipalRepaid() {
this.totalPrincipalRepaid = amount;
}
void setTotalInterestRepaid() {
this.totalInterestRepaid = totalRepaid - totalPrincipalRepaid;
}
void setTotalInterestPercentage() {
totalInterestPercentage = totalInterestRepaid/amount;
}
@Override
public String toString() {
return "Amount: " + amount + "\n" + "Term: " + term + "\n" + "Rate: " + rate +
"\n" + "Monthly Payment: " + monthlyPayment + "\n" + "Total Repaid: " + totalRepaid +
"\n" + "Total Int Repaid: " + totalInterestRepaid + "\n" + "Total Int Percentage: " +
totalInterestPercentage;
}
@Override
public int compareTo(loanCalculator loan1) {
// TODO Auto-generated method stub
if(this.totalInterestPercentage - loan1.totalInterestPercentage > 0) {
return 1;
}
if(this.totalInterestPercentage - loan1.totalInterestPercentage < 0) {
return -1;
}
else if(this.totalInterestPercentage - loan1.totalInterestPercentage ==0) {
return 0;
}
return 0;
}
public void difference(loanCalculator loan1) {
if(this.compareTo(loan1) == 1) {
System.out.print("Loan 2 is cheaper by: " + (this.totalInterestPercentage - loan1.totalInterestPercentage));
}
if(this.compareTo(loan1) == 0) {
System.out.print("The two loans cost the same");
}
else if(this.compareTo(loan1) == 1) {
System.out.print("Loan 1 is cheaper by: " + (this.totalInterestPercentage - loan1.totalInterestPercentage));
}
}
}