I have an assignment to create a mortgage calculator in C++. I have attempted to complete this but I cannot get it to compile. Any help would be appreciated. Here is what I have come up with:

``````#include <stdio.h>
#include <math.h>
using namespace std;

/* Begin program */
int main() {
double loanAmount = 200000;
double loanBalance;
int i = 0;
int [] term = {7,15,30};
double rate = {.0535, .0550, .0575};
double monthlyPayment = (loanAmount*(rate[i]/12))/(1-(Math.pow(1/(1+(rate[i]/12)),(term[i]*12))));

for (i = 0; i < term.length; i++) {
NumberFormat cformat = NumberFormat.getCurrencyInstance();	/* Format numbers to currency */
cformat.setMinimumFractionDigits(2);
NumberFormat pformat = NumberFormat.getPercentInstance();	/* Format numbers to percents */
pformat.setMinimumFractionDigits(2);
System.out.println("The initial loan amount is " + cformat.format(loanAmount));
System.out.println("and the length of the term is " + term[i] + " years");
System.out.println("and the monthly interest rate is " + pformat.format(rate[i]));
/* This is the calculation for the monthly mortgage payment */
System.out.println("The monthly payment for this loan will be " + cformat.format(monthlyPayment));
}

System.out.println("This program will calculate the monthly interest paid, principle paid, and ");
System.out.println("loan balance for the selected loan.");
System.out.println("Please choose one of the terms listed below");
System.out.println("1: 7 years at 5.35% interest");
System.out.println("2: 15 years at 5.5% interest");
System.out.println("3: 30 years at 5.75% interest");

/* User menu display */

int myInteger = readInteger("Please enter the number of your choice.");

/* User input */

switch(myInteger) {
case 1:  {
loanBalance = loanAmount;
int displayMonth = 1;
int displayLoop = 0;
while (displayMonth <= (term[0]*12))
{
double interestPayment = loanBalance*rate[0];
double principlePayment = monthlyPayment-interestPayment;
loanBalance = (loanBalance-principlePayment);

NumberFormat cformat = NumberFormat.getCurrencyInstance();
cformat.setMinimumFractionDigits(2);
System.out.println("For Month " + displayMonth + ":");
System.out.println("Interest paid is " + cformat.format(interestPayment));
System.out.println("Principle applied is " + cformat.format(principlePayment));
System.out.println("The new loan balance is " + cformat.format(loanBalance));
displayMonth++;
displayLoop++;

/*This is where the scroll begins*/

if (displayLoop == 3)
{
System.out.println("Press Enter to scroll down...");
String output = readLine();
displayLoop = 0;
}
}
break;
}

case 2:  {
loanBalance = loanAmount;
int displayMonth = 1;
int displayLoop = 0;
while (displayMonth <= (term[1]*12))
{
double interestPayment = loanBalance*rate[1];
double principlePayment = monthlyPayment-interestPayment;
loanBalance = (loanBalance-principlePayment);

NumberFormat cformat = NumberFormat.getCurrencyInstance();
cformat.setMinimumFractionDigits(2);
System.out.println("For Month " + displayMonth + ":");
System.out.println("Interest paid is " + cformat.format(interestPayment));
System.out.println("Principle applied is " + cformat.format(principlePayment));
System.out.println("The new loan balance is " + cformat.format(loanBalance));
displayMonth++;
displayLoop++;

if (displayLoop == 3)
{
System.out.println("Press Enter to scroll down...");
String output = readLine();
displayLoop = 0;
}
}
break;
}

case 3:  {
loanBalance = loanAmount;
int displayMonth = 1;
int displayLoop = 0;
while (displayMonth <= (term[2]*12))
{
double interestPayment = loanBalance*rate[2];
double principlePayment = monthlyPayment-interestPayment;
loanBalance = (loanBalance-principlePayment);

NumberFormat cformat = NumberFormat.getCurrencyInstance();
cformat.setMinimumFractionDigits(2);
System.out.println("For Month " + displayMonth + ":");
System.out.println("Interest paid is " + cformat.format(interestPayment));
System.out.println("Principle applied is " + cformat.format(principlePayment));
System.out.println("The new loan balance is " + cformat.format(loanBalance));
displayMonth++;
displayLoop++;

if (displayLoop == 3)
{
System.out.println("Press Enter to scroll down...");
String output = readLine();
displayLoop = 0;
}
}
break;
}

default:  {
System.out.println("Invalid Entry. Please try again.");
}
}
}

public static String readLine()

{
int character;
String response = "";
boolean StringDone = false;

while (!StringDone)
{
try
{
character = System.in.read();

if(character < 0 || (char)character == '\n')
StringDone = true;
else response = response + (char)character;
}
catch(java.io.IOException e)
{
StringDone = true;
}
}
return response;
}

public static int readInteger(String userprompt)

{
while(true)

{
System.out.print(userprompt + " ");
try
{
return Integer.valueOf(readLine().trim()).intValue();
}
catch(NumberFormatException e)
{
System.out.println("Invalid entry.");
}
}
}
}``````

sorry for the formatting errors. it didn't look like that before i copied it.

[moderator edit: That's because you're supposed to use code tags]

>I have attempted to complete this but I cannot get it to compile.
Probably because the code is some weird bastardization of C++ and Java.

>I have attempted to complete this but I cannot get it to compile.
Probably because the code is some weird bastardization of C++ and Java.

I appreciate your attempt. That is why my name is clueless. I took a Java class not too long ago so that is probably why the language is confused.

>so that is probably why the language is confused.
Confused is an understatement. ;) On a second glance, it's a combination of C, C++, and Java. I would recommend a good book on C++ (Accelerated C++ by Koenig and Moo), and that you try to use concepts from Java but forget about the syntax until you're in a better position to differentiate the two languages.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.18 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.