Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In C++ Design a modular program that can be used to calculate the federal tax. T

ID: 3854323 • Letter: I

Question

In C++

Design a modular program that can be used to calculate the federal tax. The tax is calculated as follows: For single people, the standard exemption is $4,000; for married people, the standard exemption is $7,000. A person can also put up to 6% of his or her gross income in a pension plan. The tax rates are as follows: If the taxable income is:

Between $0 and $15,000, the tax rate is 15%.

Between $15,001 and $40,000, the tax is $2,250 plus 25% of the taxable income over $15,000.

Over $40,000, the tax is $8,460 plus 35% of the taxable income over $40,000.

Prompt the user to enter the following information:

Marital status

If the marital status is ‘‘married,’’ ask for the number of children under the age of 14

Gross salary (If the marital status is ‘‘married’’ and both spouses have income, enter the combined salary.)

Percentage of gross income contributed to a pension fund

To calculate the taxable income, subtract the sum of the standard exemption, the amount contributed to a pension plan, and the personal exemption, which is $1,500 per person. (Note that if a married couple has two children under the age of 14, then the personal exemption is $1,500 * 4 = $6,000.). Display the adjusted income, base tax, additional tax, and tax amount owed.

For example, a single person who contributes 6% to their pension fund and has a gross salary of $15000 would pay $1290 in taxes. A married couple with 2 children, no pension contribution, and a combined salary of $30,000 would pay $2750 in taxes. A single person who contributes 6% to their pension fund and has a gross salary of $50,000 would pay $8985 in taxes.

Please include: structure chart, source code and output showing test results (screen shot or picture)

Structure chart included.

File name included as comment at top of source file

IPO chart included as comments following the file name

Variable names are meaningful

IPO charts for functions incorporated as comments before each function

Program compiles

Program prompts for input and validates as needed.

Program output is formatted neatly

Program produces correct results

Program is thoroughly tested with test output included

Explanation / Answer

Executable Code

/* FederalTaxCalc.cpp */

#include <iostream>

#include <string>

using namespace std;

/* function declarations */

void getInfo(char &maritalStatus, int &noOfPersons, double &grossSalary, double &pensionAmount);

double taxableAmount(char maritalStatus, int noOfPersons, double grossSalary, double pensionAmount);

double getFederalTax(double taxableIncome);

/* main function */

int main ()

{

char maritalStatus = ' ';

int noOfPersons = 0;

double grossSalary = 0;

double pensionContribution = 0;

double federalTax = 0;

double taxableIncome = 0;

cout<<"Program for computing FederalTax"<<endl;

cout<<"--------------------------------"<<endl;

cout<<endl<<"Enter the details"<<endl;

/* call the function getInfo() */

getInfo(maritalStatus, noOfPersons, grossSalary, pensionContribution);

/* call the function taxableAmount() */

taxableIncome = taxableAmount(maritalStatus, noOfPersons, grossSalary, pensionContribution);

/* call the function getFederalTax() */

federalTax = getFederalTax(taxableIncome);

/* Displaying the details */

cout<<endl<<endl<<"FederalTax details"<<endl;

cout<<"-------------------"<<endl;

cout<<"Marital Status: "<<maritalStatus<<endl;

cout<<"No. of Persons in family: "<<noOfPersons<<endl;

cout<<"Income : "<<grossSalary<<endl;

cout<<"Pension Contribution: "<<pensionContribution<<endl<<endl;

cout<<"Taxable Income: "<<taxableIncome<<endl<<endl;

cout<<"Federal Tax payable : "<<federalTax<<endl<<endl;

system("pause");

return 0;

}

/* function definition - getInfo() */

void getInfo(char &maritalStatus, int &noOfPersons, double &grossSalary, double &pensionAmount)

{

char opted;

int noOfchildren = 0;

/* prompting for marital status */

cout << "Enter Marital Status: "<<endl;

cout <<"[M]arried / [S]ingle: ";

cin >> maritalStatus;

/* if married */

if (maritalStatus == 'm' || maritalStatus == 'M')

{

/* Enter noOfchildren */

cout<<endl<<"Enter no. of children below 14 years of age: ";

cin>>noOfchildren;

noOfPersons = 2 + noOfchildren;

/* spouse income details */

cout <<endl<< "both the spouses earn? "<<endl;

cout <<"Enter [Y]es / [N]o: ";

cin >> opted;

cout << endl;

/* if both earns */

if (opted == 'y' || opted == 'Y')

{

cout << "Enter combined salary: ";

cin >> grossSalary;

cout << endl;

}

/* if not both */

else

{

cout << "Enter your salary: ";

cin>> grossSalary;

cout<< endl;

}

}

/* if single */

else

{

cout <<endl<<"Enter your salary: ";

cin >> grossSalary;

cout << endl;

noOfPersons = 1;

}

/* Details of pension contribution */

cout << "Enter Pension contribution(upto 6%): ";

cin >> pensionAmount;

while(pensionAmount > 6.00)

{

cout<<"Limit upto 6 percentage only!" <<endl;

cout << "Enter Pension contribution(upto 6%): ";

cin >> pensionAmount;

}   

/* compute pension amount on the gross income */

pensionAmount = pensionAmount/100 * grossSalary;

cout << endl;

}

/* function definition - taxableAmount() */

double taxableAmount(char maritalStatus, int noOfPersons, double grossSalary, double pensionAmount)

{

/* declaring needed variables */

double exemption = 0;

double taxableIncome;

/* if married then exemption = 7000 */

if(maritalStatus == 'm' || maritalStatus == 'M')

exemption = 7000;

/* if not married then exemption = 4000 */

else

exemption = 4000;

taxableIncome = grossSalary -( (1500.00 * noOfPersons) + pensionAmount + exemption);

/* return the taxable amount */

return (taxableIncome);

}

/* function definition - getFederalTax() */

double getFederalTax(double taxableIncome)

{

/* conditions */

if(taxableIncome >= 0 && taxableIncome <= 15000)

return taxableIncome * 0.15;

else if(taxableIncome >= 15001 && taxableIncome <= 40000)

return 2250.00 + taxableIncome * 0.25;

else

return 8460.00 + taxableIncome * 0.35;

}