You have been asked by a tax return preparer to create a program which will help him calculate taxes. This preparer will at most have 100 clients. For each client, he has to keep track of the client's first name, last name, gross income, and number of children. Use parallel arrays to store this information for him.
A taxpayer's federal tax due is calculated as follow. First, the taxpayer gets a dependency exemption deduction of $2,000 for each child. So, if a taxpayer has two children, he or she will get a dependency exemption deduction of $4,000. A taxpayer gross income is reduced by the amount of the dependency exemption deduction to determine his taxable income.
The amount of tax due is a percentage of taxable income. If taxable income is greater than or equal to $100,000, the tax due is 30% of taxable income. If taxable income is greater than or equal to $50,000, but less than $100,000, the tax due is 20% of taxable income. If taxable income is less than $50,000, tax due is 10% of taxable income. A taxpayer cannot have a negative tax due - if his taxable income is less than 0, his tax due Is 0.
Present the user with a menu of the following four choices
1. Add taxpayer info (This will allow the user to enter the info (first name, last
name, gross income, number of children for ONE taxpayer )
2. View info for all taxpayers (This will allow the user to view info for all taxpayers: first and last name, gross income, number of children, tax due.)
3. Find and display the total owed for all taxpayers
4. Exit the program (If the user choices 4, the program will exit. If the user chooses 1, 2 or 3, the program will do what the menu item says it will do, and then the menu will appear again.
Use methods appropriately. Please document your code.
There are two parts to this solution. The design is shown using an IPO chart and a flowchart. The IPO chart shows a natural breakdown of the tasks that are needed to solve the problem. It shows a hierarchical breakdown as well. For example, in order to do do the entire problem you need to "Get User Input" then "Process Request".
This solution shows the basics of creating a Java class. It also shows an example IPO and Flowchart used to design a Java program.