View the step-by-step solution to:

4. A group of AU friends decide to run the Banff, Alberta, Marathon. Their names, times (marathon completion time in minutes), and number of years...

This question was created from assignment_1.pdf https://www.coursehero.com/file/26364440/assignment-1pdf/

1.      Modify the following program to the specifications given below:

              I.     Add a new status - SingleParent - where the tax is computed as a SINGLE but with a further reduction of $5000 per child.

            II.     Add a new tax condition - if the income is greater than $249,999 for SINGLE, then add a tax of 25% on income amount above $150,000; if the income is greater than $349,999 for MARRIED, then add a tax of 35% on income amount above $200,000.

          III.     Unknown status - if the status doesn't belong to SINGLE or MARRIED or SINGLE_PARENT, then compute a 33% tax on the income.


import java.util.Scanner;

public class TaxReturn

  /**

     Constructs a TaxReturn object for a given income and

     marital status, and computes the tax.

     @param anIncome the taxpayer income

     @param aStatus either SINGLE or MARRIED

  */  

  public TaxReturn(double anIncome, int aStatus)

  { 

     income = anIncome;

     status = aStatus;

  }


  public double getTax()

  { 

     double tax = 0;


     if (status == SINGLE)

     { 

        if (income <= SINGLE_BRACKET1)

           tax = RATE1 * income;

        else if (income <= SINGLE_BRACKET2)

           tax = RATE1 * SINGLE_BRACKET1

                 + RATE2 * (income - SINGLE_BRACKET1);

        else

           tax = RATE1 * SINGLE_BRACKET1

                 + RATE2 * (SINGLE_BRACKET2 - SINGLE_BRACKET1)

                 + RATE3 * (income - SINGLE_BRACKET2);

     }

     else

     { 

        if (income <= MARRIED_BRACKET1)

           tax = RATE1 * income;

        else if (income <= MARRIED_BRACKET2)

           tax = RATE1 * MARRIED_BRACKET1

                 + RATE2 * (income - MARRIED_BRACKET1);

        else

           tax = RATE1 * MARRIED_BRACKET1

                 + RATE2 * (MARRIED_BRACKET2 - MARRIED_BRACKET1)

                 + RATE3 * (income - MARRIED_BRACKET2);

     }

     return tax;

  }


  public static final int SINGLE = 1;

  public static final int MARRIED = 2;

  private static final double RATE1 = 0.15;

  private static final double RATE2 = 0.28;

  private static final double RATE3 = 0.31;

  private static final double SINGLE_BRACKET1 = 21450;

  private static final double SINGLE_BRACKET2 = 51900;

  private static final double MARRIED_BRACKET1 = 35800;

  private static final double MARRIED_BRACKET2 = 86500;

  private double income;

  private int status;


  public static void main(String[] args)

  { 

     Scanner in = new Scanner(System.in);

     System.out.print("Please enter your income: ");

     double income = in.nextDouble();


     System.out.print("Enter S (single) or M (married): ");

     String input = in.next();

     int status = 0;


     if (input.equalsIgnoreCase("S"))

        status = TaxReturn.SINGLE;

     else if (input.equalsIgnoreCase("M"))

        status = TaxReturn.MARRIED;

     else

     {

        System.out.println("Bad input.");

        return;

     }     

     TaxReturn aTaxReturn = new TaxReturn(income, status);

     System.out.println("The tax is " + aTaxReturn.getTax());

  }

}

Recently Asked Questions

Why Join Course Hero?

Course Hero has all the homework and study help you need to succeed! We’ve got course-specific notes, study guides, and practice tests along with expert tutors.

-

Educational Resources
  • -

    Study Documents

    Find the best study resources around, tagged to your specific courses. Share your own to gain free Course Hero access.

    Browse Documents
  • -

    Question & Answers

    Get one-on-one homework help from our expert tutors—available online 24/7. Ask your own questions or browse existing Q&A threads. Satisfaction guaranteed!

    Ask a Question