(Financial application: compute tax) Rewrite Listing, ComputeTax.cpp, using arrays. For each filing status, there are six tax rates. Each rate is applied to a certain amount of taxable income. For example, from the taxable income of $400,000 for a single filer, $8,350 is taxed at 10%, (33,950-8,350) at 15%, (82,250-33,950) at 25%, (171,550-82,550) at 28%, (372,550-82,250) at 33%, and (400,000-372,950) at 36%. The six rates are the same for all filing statuses, which can be represented in the following array:
double rates[] = {0.10, 0.15, 0.25, 0.28, 0.33, 0.36};The brackets for each rate for all the filing statuses can be represented in a twodimensional array as follows:
int brackets[4][5] ={{8350, 33950, 82250, 171550, 372950}, // Single filer{16700, 67900, 137050, 20885, 372950}, // Married jointly// or qualifying // widow(er){8350, 33950, 68525, 104425, 186475}, // Married separately{11950, 45500, 117450, 190200, 372950} // Head of household};Suppose the taxable income is $400,000 for single filers. The tax can be computed as follows:
t
ax = brackets[0][0] * rates[0] +(brackets[0][1] - brackets[0][0]) * rates[1] +(brackets[0][2] - brackets[0][1]) * rates[2] +(brackets[0][3] - brackets[0][2]) * rates[3] +(brackets[0][4] - brackets[0][3]) * rates[4] +(400000 - brackets[0][4]) * rates[5]
Listing
1 #include2 using namespace std;34 int main()5 {6 // Prompt the user to enter filing status7 cout <<"(0-single filer, 1-married jointly, " 8 << "or qualifying widow(er), " << endl9 << "2-married separately, 3-head of household)" << endl10 << "Enter the filing status: " ;11 12 int status; 13 cin >> status; 14 15 // Prompt the user to enter taxable income 16 cout << "Enter the taxable income: " ; 17 double income; 18 cin >> income;1920 // Compute tax 21 double tax = 0 ;2223 if (status == 0) // Compute tax for single filers 24 {25 if (income <= 8350) 26 tax = income * 0.10 ; 27 else if (income <= 33950)28 tax = 8350 * 0.10 + (income - 8350) * 0.15 ; 29 else if (income <= 82250)30 tax = 8350 * 0.10 + (33950 − 8350) * 0.15 +31 (income − 33950) * 0.25 ; 32 else if (income <= 171550)33 tax = 8350 * 0.10 + (33950 − 8350) * 0.15 +34 (82250 − 33950) * 0.25 + (income − 82250) * 0.28 ; 35 else if (income <= 372950)36 tax = 8350 * 0.10 + (33950 − 8350) * 0.15 +37 (82250 − 33950) * 0.25 + (171550 − 82250) * 0.28 +38 (income − 171550) * 0.33 ;39 else 40 tax = 8350 * 0.10 + (33950 − 8350) * 0.15 +41 (82250 − 33950) * 0.25 + (171550 − 82250) * 0.28 +42 (372950 − 171550) * 0.33 + (income − 372950) * 0.35 ;43 }44 else if (status == 1) // Compute tax for married file jointly45 {{ 46 // Left as an exercise47 } 48 else if (status == 2) // Compute tax for married separately49 {50 // Left as an exercise51 }52 else if (status == 3) // Compute tax for head of household53 {54 // Left as an exercise55 }56 else 57 {58 cout << "Error: invalid status" ;59 return 0 ;60 }6162 // Display the result63 cout << "Tax is " << static_cast(tax * 100) / 100.0 << endl; 6465 return 0 ;66 }
We need at least 10 more requests to produce the solution.
0 / 10 have requested this problem solution
The more requests, the faster the answer.