CS 160, Summer 2016
Programming Assignment P3
Programming due Monday, June. 24 at 6:00pm; late deadline at 11:59pm.
A Program for Computing Taxes
This programming assignment has five objectives:
- to teach you to read input from the keyboard,
- to use Java expressions involving integers and real numbers,
- to use conditional (if/else) statements in Java,
- to print formatted output,
- to see if you can figure out an algorithm!
The program allows the user to input some of the information that normally appears on a tax form, then it calculates a tax bill according to the formulas described below. WARNING: Be aware that the tax computation shown here is greatly simplified and should not be used for calculation of your real taxes!
For this assignment, you must follow directions exactly. Create a P3 project in Eclipse
then write a class P3 with a main method, and put all of the following code into the main method:
- Instantiate a single Scanner object to read console input.
- Print the prompt shown below and ask the user for their gross salary.
- The gross salary represents dollars, which can be entered with or without decimal points.
- Print the prompt shown below and ask the user for the number of exemptions.
- The number of exemptions is an integer.
- Print the prompt shown below and ask the user for their interest income.
- The interest income represents dollars, which can be entered with or without decimal points.
- Print the prompt shown below and ask the user for their capital gains income.
- The capital gains represents dollars, which can be entered with or without decimal points.
- Perform the calculation of federal total income, as shown in the Formula section.
- Perform the calculation of the federal adjusted income, as shown in the Formula section.
- Perform the calculation of the federal total tax, as shown in the Formula section.
- Perform the calculation of the state income tax, as shown in the Formula section.
- Print out the total income, adjusted income, total tax, and state tax.
- The example below shows four lines of user input (in blue font), with prompts, followed by
four lines of program output.
Total Income: $93404.03
Adjusted Income: $84404.03
Total Tax: $15033.13
State Tax: $5486.26
Total Tax computation:
- Total Income = Gross Salary + Interest Income + Capital Gains - $5000.00
- if (Number of Exemptions > 6) Number of Exemptions = 6
- Adjusted Income = Total Income - (Number of Exemptions * 1500.00)
For the example above, we compute the Total Tax in the example above as follows:
- 0% on Adjusted Income greater than equal to $0 and less than $20,000 +
- 13% on Adjusted Income greater than equal to $20,000 and up to $35,000 +
- 23% on Adjusted Income greater than equal to $35,000 and up to $50,000 +
- 28% of Adjusted Income greater than equal to $50,000
13% * (35,000.00-20,000.00) = 1,950.00
23% * (50,000.00-35,000.00) = 3,450.00
28% * (84,404.03-50,000.00) = 9,633.13
Adding up the above we get a Total Tax of $15,033.13. That's a chunk of change!
You can see the results of our other computations in output shown above.
State Tax = Adjusted Income * 6.5%
Your program must meet the following specifications:
- You may use integer or floating point for the computations.
- The output should always report exactly 2 digits after the decimal, so use System.out.printf.
- Your program should be accurate to within $0.01.
- Use variables to store everything, don't try to do all the calculation in a print statement!
- Do not hard code values, we will test your program with different values.
- You do not need to handle a negative adjusted income.
- Work on your own, as always.
- The name of the source code file must be exactly P3.java.
- Name the file exactly - upper and lower case matters!
- Don't forget the comment block at the top of the program.
- Assignments should be implemented using Eclipse.
- Assignments should be implemented using Java 1.6 or 1.7 or 1.8.
- Make sure your code runs on machines in the COMCS 120 lab.
- Submit your program to the Checkin tab as you were shown in the recitation.
- Read the syllabus for the late policy.
- We will be checking programs for plagiarism, so please don't copy from anyone else.
Submit your program to the Checkin tab on the course website, as you were shown in
the recitation, and read the syllabus for the late policy (if necessary).
- 100 points for perfect submission.
- 0 points for no submission, will not compile, submitted class file, etc.
- Preliminary Tests
- compileTest: checks that program compiles. (20 points)
- test1: checks prompt for salary. (5 points)
- test2: checks prompt for exemptions. (5 points)
- test3: checks prompt for interest income. (5 points)
- test4: checks prompt for capital gains. (5 points)
- test5: checks output of total income, including label. (10 points)
- test6: checks output of adjusted income, including label. (10 points)
- Final Tests
- test7: checks label on output of total tax. (4 points)
- test8: checks output of total tax, using the income shown. (8 points)
- test9: checks output of total tax, using another income. (8 points)
- test10: checks label on output of state tax. (4 points)
- test11: checks output of state tax, using the income shown. (8 points)
- test12: checks output of state tax, using another income. (8 points)
- Preliminary testing does not check total or state tax, but you should do this manually!
- Final grading includes the preliminary tests.
© 2016 CS160 Colorado State University. All Rights Reserved.