You are to write a C++ program to compute federal personal income taxes.  The tax owned depends on how much money one makes as well as their filing status.  For our purposes we will use four filing statuses.  These are (1)single filers, (2)married filing jointly, (3)married filing separately, and (4)head of household. 


Tax Rate

 



Single Filers

 



Married Filing Jointly

 



Married Filing Separately

 



Head of Household

 



10%

 



Up to $7,550

 



Up to $15,100

 



Up to $7,550

 



Up to $10,750

 



15%

 



$7,551-$30,650

 



$15,101-$61,300

 



$7,551-$30,650

 



$10,751-$41,050

 



25%

 



$30,651-$74,200

 



$61,301-$123,700

 



$30,651-$61,850

 



$41,051-$106,000

 



28%

 



$74,201-$154,800

 



$123,701-$188,450

 



$61,851-$94,225

 



$106,001-$171,650

 



33%

 



$154,801-$336,550

 



$188,451-$336,550

 



$94,226-$168,275

 



$171,651-$336,550

 



35%

 



$336,551 or more

 



$336,551 or more

 



$168,276 or more

 



$336,551 or more

 

For each filing status there are six tax rates.  Each rate is applied to a given amount of the taxable income.  For example, for a taxable income of $450,000 for a single filer, $7,550 is taxed at 10%, ($30,650-$7,550) at 15%, ($74,200-$30,650) at 25%, ($154,800-$74,200) at 28%, ($336,550-$154,800) at 33%, and ($450,000-336,550) at 35%.

Variables


Name

Type

Description and edit specifications

statusCode

 

int

 

Status code must be from 1 to 4.  1=single, 2=married filing jointly, 3=married filing separately, 4= head of household, 9 = end processing.

Taxable Income

float

Taxable income is entered by the user from the keyboard.  The amount must be numeric and not less than $500.

taxAmt

 

float

 
taxAmt is a calculated field and is determined from the supplied tax table as applied to the taxableIncome. 

 

Your program should be modular, that is small blocks of code.  (Later in the semester when we encounter functions, you will see how handy modular development can be.)  You are to follow these specifications as closely as possible.  You should have code blocks that do the following:

 

Input status code.  You should use a do/while loop to control the input logic.  You are to keep the user in the loop until the input is correct.  You are to ensure that the status codes are as specified above.

 Input taxable income.  As in step 1, you are to use a do/while loop for this logic.  You are to keep the user in the loop until the input is valid.

 

Calculate the tax owned as a result of status code and taxable income.  You are to use a switch statement for the appropriate logic for each status code.  You should manually calculate several cases to ensure your program is performing correctly.

Display the results of the calculation step.  You are to output the status code, the string description of the status code, the taxable income, and the total tax amount.  You are to use appropriate formatting of the output.


You main loop should be a while loop that repeat steps 1 through 4 until the user enters a status code of 9 that will terminate the job.

 

Hint:  As you can see the tax rates are the same for each of the filing statuses.  The primary differences in all the status groups are the range amounts for the applicable tax rates.

Example of calculations and resulting output (note: it is ok to take some liberties with the output format.)

Taxable Income:  $70000, Filing status of Married Filing Jointly



15100

 



.10

 



1510.00

 



(61300 – 15100)

 



.15

 



6930.00

 



(70000 – 61300)

 



.25

 



2175.00

 

 

Total Taxes

 



 

 



10615.00

 

 

Display of above


Filing status:  Married Filing Jointly

Taxable income:    $70000.00

Tax amount:          $10615.00

 

 

 

    • 10 years ago
    A+ Work
    NOT RATED

    Purchase the answer to view it

    • federalincometa.zip