summaryrefslogtreecommitdiff
path: root/src/Q10/TaxReturn.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Q10/TaxReturn.java')
-rw-r--r--src/Q10/TaxReturn.java120
1 files changed, 0 insertions, 120 deletions
diff --git a/src/Q10/TaxReturn.java b/src/Q10/TaxReturn.java
deleted file mode 100644
index 7fbd48b..0000000
--- a/src/Q10/TaxReturn.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * Assignment 1, COMP268 Class: TaxReturn.java
- *
- * @description Represents a contact from an address book.
- * @author: mo khan Student ID: 3431709
- * @date May 6, 2019
- * @version 1.0
- */
-package Q10;
-
-import java.util.Scanner;
-
-public class TaxReturn {
- private double income;
- private int status;
- private int children;
-
- /**
- * Constructs a TaxReturn object for a given income and marital status, and computes the tax.
- *
- * @param income the taxpayer income
- * @param status either SINGLE or MARRIED
- */
- public TaxReturn(double income, int status) {
- this(income, status, 0);
- }
-
- /**
- * Constructs a TaxReturn object for a given income and marital status and, and # of children.
- *
- * @param income the taxpayer income
- * @param status either SINGLE or MARRIED
- * @param children the number of children
- */
- public TaxReturn(double income, int status, int children) {
- this.income = income;
- this.status = status;
- this.children = children;
- if (this.isSingle()) this.income -= children * 5000;
- }
-
- /**
- * Returns the calculated taxes to pay.
- *
- * @return the amount of tax to pay.
- */
- public double getTax() {
- double tax = 0;
-
- if (isSingle()) {
- 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);
-
- if (income > 249999.0) tax += (income - 150000) * 0.25;
- } else if (isMarried()) {
- 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);
-
- if (income > 349999.0) tax += (income - 200000) * 0.35;
- } else {
- tax = income * 0.33;
- }
- return tax;
- }
-
- public static final int SINGLE = 1;
- public static final int MARRIED = 2;
-
- public static final double RATE1 = 0.15;
- public static final double RATE2 = 0.28;
- public static final double RATE3 = 0.31;
-
- public static final double SINGLE_BRACKET1 = 21450;
- public static final double SINGLE_BRACKET2 = 51900;
-
- public static final double MARRIED_BRACKET1 = 35800;
- public static final double MARRIED_BRACKET2 = 86500;
-
- private boolean isSingle() {
- return this.status == SINGLE;
- }
-
- private boolean isMarried() {
- return this.status == MARRIED;
- }
-
- 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;
- }
- System.out.print("Enter # of children: ");
- int children = in.nextInt();
-
- TaxReturn aTaxReturn = new TaxReturn(income, status, children);
- System.out.println("The tax is " + aTaxReturn.getTax());
- }
-}