### Programming bugs?

I'm having a problem with this code. If you input you're married and that both people don't work, it asks for combined income and the working person's income. Also, the last part with the taxes won't show. If someone could please give a beginner some advice. It'll be much appreciated. Thanks.

Write a 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

Your program must consist of at least the following functions:

a. Function getData: This function asks the user to enter the relevant data.
b. Function taxAmount: This function computes and returns the tax owed.

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.)

[code]#include<iostream>
#include<string>

using namespace std;

int getChildren();
double taxAmount(int,double,double,int);
int stanEx;

int main()
{
void getData();

Last edited on
Look at line 84. There is a simple error there that you should immediately notice.

Also, the reason why it cannot tell whether both people in the couple do not work is because the if loop only tracks whether both or one do. You need to expand the if loop after you set your status to married.
The reason taxAmount doesn't show is because it isn't called anywhere in the program say if you had it
 ``12345678910`` `````` void getData () { //code cin >> pension; cout << endl << endl; taxAmount (noPerson, salary,pension, stanEx); } // stanEx hasn't been initialized so you need to do so in the getData function // Also, I don't think stanEx needs to be a global variable just pass it through the functions. ``````

Also your if and else statements are a bit off it should be:
 ``1234567891011`` `````` if (status=='m'||status == 'M') //apply this example to other if statements // not if (status =='m' || 'M') //also the else statement is off: else { //code } //not else (status == 's' || 'S'); ``````

Alternatively, you can use a switch function if you feel if that is appropiate.
The last thing I noticed was in the taxAmount function where you wrote
 ``12345`` `````` taxincome==salary-(1500*noPerson)-pension-stanEx; // it should be taxincome = salary-(1500*noPerson)-pension-stanEx; // == means equal to or in other words it compares two values. ``````

Last edited on
Thank you so much for the help. I made a few stupid mistakes without realizing. Thanks again
Topic archived. No new replies allowed.