Created on February 8, 2007, 9:56 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package lab03;
import javax.swing.*;
import java.text.*;
public class BasicMethodsLab {
public static void main( String args[] ) {
String propertyCostStr; // Value entered by user; string type
String downPaymentStr; // Value entered by user; string type
String numberOfYear/*
* BasicMethodsLab.java
*
* sStr; // Value entered by user; string type
String propertyStr; // Letter entered by user; string type
char propertyType; // Storing the letter chosen by the user
double propertyCost; // The double form of the user-entered property cost
double downPayment = 0; // The double form of the user-entered down payment
double loanAmount = 0; // The calculated price of the loan amount
double monthlyPayment; //The monthly loan payment
double annualInterestRate = 7.5; //The annual interest rate
int response = 0; // The user's response as to whether to continue
int numberOfYears = 0; //integer form of the user-entered down payment
DecimalFormat prec2 = new DecimalFormat("$#.00");
// Initialize the output string to the empty string
String outputStr = "";
while (true) {
// Read in item price from user as a string
propertyCostStr = JOptionPane.showInputDialog("Enter property cost");
// Convert from type String to type double
propertyCost = Double.parseDouble(propertyCostStr);
// Read in number ordered from user as a string
downPaymentStr = JOptionPane.showInputDialog("Enter down payment");
// Convert from type String to type double
downPayment = Double.parseDouble(downPaymentStr);
// Read in number of years from user as a string
numberOfYearsStr = JOptionPane.showInputDialog("Enter number of years for loan:");
//Read in category from user as a number
propertyStr = JOptionPane.showInputDialog("Choose the letter that best corresponds with your" +
"property type" +
"\nR. Residential "
+"\nC. Commercial \nA. Argricultural");
propertyType = 'R';
propertyType = 'C';
propertyType = 'A';
// Convert from type String to type integer
numberOfYears = Integer.parseInt(numberOfYearsStr);
// Calculate loan amount for the property
loanAmount = propertyCost - downPayment;
// Echo print the entered values
outputStr = outputStr + "Type: " + getPropertyTypeName(propertyType)+ ", ";
outputStr = outputStr + "Cost: " + prec2.format(propertyCost) + ", ";
outputStr = outputStr + "Loan Amount: " + prec2.format(loanAmount) + ", ";
// Calculate monthly payment
// Change the annual interest rate to a decimal (/100) and a monthly rate (/12)
// Print the monthly payment
outputStr = outputStr + "Monthly Amount: " + prec2.format(calculatePayment(propertyCost, downPayment,
numberOfYears, propertyType, loanAmount)) + ", " + "Number of Years: " + numberOfYears + "\n";
//Print the number of years for the loan
// Determine whether the user wants to continue the loop
response = JOptionPane.showConfirmDialog(null, outputStr + "\nContinue?", "Confirm",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (response == JOptionPane.NO_OPTION)
break;
}
// Display final output to the user
JOptionPane.showMessageDialog(
null, outputStr, "Property Loan Amounts", JOptionPane.INFORMATION_MESSAGE);
System.exit( 0 ); // Terminate the program
}
static double calculatePayment (double propertyCost, double downPayment, int numberOfYears,
char propertyType, double loanAmount){
double annualInterestRate = 7.5;
double result = 0;
double subResult = 0;
result = loanAmount * (annualInterestRate/1200) / (1 - 1 / Math.pow
(1 + (annualInterestRate/1200), numberOfYears * 12));
return result; //This is a stub function
switch (calculatePayment){
case 1: subResult = computeResidentialPayment;
case 2: subResult = computeCommercialPayment;
case 3: subResult = computeAgriculturalPayment;
}
}
static double computeResidentialPayment (double propertyCost, double downPayment, int numberOfYears) {
}
static String getPropertyTypeName (char propertyType){
String propertyName;
switch (propertyType) {
case 'R':
case 'r': propertyName = ("Residential"); break;
case 'C':
case 'c': propertyName = ("Commercial"); break;
case 'A':
case 'a': propertyName = ("Agricultural"); break;
default: propertyName = ("Residential"); break;
}
return propertyName;
}
}