CISP 1610 - Programming in C++ Midterm Examination

CISP 1610 - Programming in C++
Midterm Examination

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.
taxableIncome
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:
  1. 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.
  2.  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.
  3. 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.
  4. 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.
  5. 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
Taxable income brackets
Tax rate
Tax amt.
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

TYPE SOME PART OF QUESTION YOU ARE LOOKING FOR

.

.
acc week