Ok so I'm in need of some help.In the first part of this code, I need both the 'output' and 'enter' to be returned back to the calling method but one is a String and one is an int. When I compile and run the program, I get a null in the Filing Status column and $0.00 in the Tax Amount column. Can someone please help. I have no idea what to do. Below is my code.
import java.util.Scanner; // Needed for the Scanner class
import java.text.NumberFormat; // Needed for Number Format class
/**
This program finds a person's federal income tax.
CPS 180
Abhik Roy
Homework 6
Friday, March 2, 2009
*/
public class Income
{
// Main method.
public static void main(String[ ] args)
{
double taxAmount;
boolean validInput = true;
boolean validEnter = true;
int enter = 0;
double tax1 = 0.0;
double tax2 = 0.0;
double tax3 = 0.0;
double tax4 = 0.0;
double tax5 = 0.0;
double tax6 = 0.0;
double taxfinal1 = 0.0;
double taxfinal2 = 0.0;
double taxfinal = 0.0;
double alphatax = 0.0;
double betatax = 0.0;
String output = null;
String menu = null;
Scanner keyboard = new Scanner (System.in);
System.out.print("\nEnter your taxable income amount: $");
do
{
taxAmount = keyboard.nextInt( ); // Stores the chosen movie.
validInput = true;
if ( (taxAmount < 50000) ) // Defines the invalid boundaries (but true by definition).
{
System.out.print ("\n(You must an amount greater than or equal to $50,000): $");
validInput = false;
}
}while(!validInput);
// A method call to displayMenu
displayMenu (menu, validEnter, enter, output);
// A method to call to computeIncometax
computeIncometax (taxAmount, enter, tax1, tax2, tax3, tax4, tax5, tax6, taxfinal1, taxfinal2, taxfinal, alphatax, betatax);
// A method to call to displayFinal
displayFinal (taxAmount, output, taxfinal);
System.exit(0);
}
public static String displayMenu(String menu, boolean validEnter, int enter, String output)
{
Scanner keyboard = new Scanner (System.in);
System.out.print ("\n ");
System.out.print ("**************************************************************");
System.out.print ("\n * Filing Status Menu *");
System.out.print ("\n * 1 - Single *");
System.out.print ("\n * 2 - Married Filing Jointly *");
System.out.print ("\n * 3 - Marries Filing Separately *");
System.out.print ("\n * 4 - Head of Household *");
System.out.print ("\n **************************************************************");
System.out.print ("\n ");
System.out.print("\nPlease choose a filing status number: ");
do
{
enter = keyboard.nextInt( ); // Stores the chosen status number.
validEnter = true;
if ( (enter < 1) || (enter > 4)) // Defines the invalid boundaries (but true by definition).
{
System.out.print ("\n(You must pick a status number 1 through 4): ");
validEnter = false;
}
}while(!validEnter);
if (enter == 1)
output = "Single";
else if (enter == 2)
output = "Married Filing Jointly";
else if (enter == 3)
output = "Married Filing Separately";
else if (enter == 4)
output = "Head of Household";
else;
return output;
}
public static double computeIncometax(double taxAmount, int enter, double tax1, double tax2, double tax3, double tax4, double tax5, double tax6, double taxfinal1, double taxfinal2, double taxfinal, double alphatax, double betatax)
{
tax1 = 11158.50 + 0.31*(taxAmount - 49300.00);
tax2 = 5100.00 + 0.28*(taxAmount - 34000.00);
tax3 = 18582.00 + 0.31*(taxAmount - 82150.00);
tax4 = 9291.00 + 0.31*(taxAmount - 41075.00);
tax5 = 4095.00 + 0.28*(taxAmount - 27300);
tax6 = 16177.00 + 0.31*(taxAmount - 70450);
if (taxAmount > 34000 && taxAmount < 82150)
taxfinal1 = tax2;
else
taxfinal1 = tax3;
if (taxAmount > 27300 && taxAmount < 70450)
taxfinal2 = tax5;
else
taxfinal2 = tax6;
if (enter == 1)
taxfinal1 = tax1;
else if (enter == 2)
alphatax = taxfinal1;
else if (enter == 3)
taxfinal2 = tax4;
else if (enter == 4)
betatax= taxfinal1;
else;
if (enter == 1)
taxfinal = taxfinal1;
else if (enter == 2)
taxfinal = taxfinal1;
else if (enter == 3)
taxfinal = taxfinal2;
else if (enter == 4)
taxfinal = taxfinal2;
else;
return taxfinal;
}
public static void displayFinal(double taxAmount, String output, double taxfinal)
{
NumberFormat nf = NumberFormat.getNumberInstance( ); // Defines the number format.
nf.setMinimumFractionDigits(2); // Sets the minimum decimal places.
nf.setMaximumFractionDigits(2); // Sets the maximum decimal places.
// Display the final statement
System.out.println(" ");
System.out.println(" Taxable Income Amount" + " Filing Status" + " Tax Amount" );
System.out.println("-------------------------------------------------------------------------------");
System.out.println(" $" + nf.format(taxAmount) + " " + output + " $" + nf.format(taxfinal));
System.out.println(" ");
}
}