Commit b1bb511

mokha <mokha@cisco.com>
2019-05-05 23:58:12
add problem 10 code to modify
1 parent b7e1f54
Changed files (2)
assignments
assignment1
src
main
java
ca
mokhan
assignment1
assignments/assignment1/src/main/java/ca/mokhan/assignment1/TaxReturn.java
@@ -0,0 +1,70 @@
+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());
+  }
+}
assignments/assignment1/README.md
@@ -223,3 +223,17 @@ Google will consider a candidate with average marks of less than 85% only if the
 Google will only consider a candidate with poor communication ability if the candidate has a 'brilliant' innovation capability.
 
 Write a program that will help Google to programmatically determine eligibility of the fifteen candidates for these positions, and print the output on the console.
+
+9. Write a program that iterates through numbers from 0 to 113 using a loop.
+Print the numbers, one number per line.
+As you print each number, say x, also print the following when appropriate, separated by commas:
+
+If the number is odd, print “x is odd”
+If the number is divisible by 5, print “hi five”
+If the total of a number (x) and its subsequent number (x+1) is a value divisible by 7, print “wow”
+If the number is prime, print “prime”.
+
+10. Modify the following program to the specifications given below:
+Add a new status – SingleParent – where the tax is computed as a SINGLE but with a further reduction of $5000 per child.
+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.
+Unknown status – if the status doesn’t belong to SINGLE or MARRIED or SINGLE_PARENT, then compute a 33% tax on the income.