программа работает, но я не уверен, как получить валовой платеж, чтобы добавить оплату сверхурочной работы, если условие установлено, мне сказали, чтобы установить овернайт в ноль на декларации. Есть ли способ изменить оплату сверхурочной работы соответственно после выполнения условия if? например, overtimepay = 50, поэтому формула для полной оплаты теперь будет hw * hp+ 50
#include<iostream>
using namespace std;
int main()
{
float ftax, stax, SDI, SS, hw, hp, pay, netpay, gp, OvertimePay = 0;
cout << "please enter the hoursWorked: ";
cin >> hw;
cout << "---------------------" << endl;
cout << "please enter the hourlyPay: ";
cin >> hp;
gp = hw * hp + (OvertimePay);
ftax = gp*.10;
stax = gp*.08;
SDI = gp*.01;
SS = gp*.06;
netpay = gp - (ftax + stax + SDI + SS);
cout << " grosspay = " << gp << endl;
cout << "---------------------" << endl;
cout << " federal taxes = " << ftax << endl;
cout << "---------------------" << endl;
cout << " state taxes = " << stax << endl;
cout << "---------------------" << endl;
cout << " SDI = " << SDI << endl;
cout << "---------------------" << endl;
cout << " Social Securities = " << SS << endl;
cout << "---------------------" << endl;
cout << " netpay = " << netpay << endl;
cout << "---------------------" << endl;
if(hw > 40)
cout << "OvertimePay = " << (hw - 40) * hp * 0.5 << endl;
system("pause");
}
Это один из способов сделать это. Вы никогда не устанавливали значение переменной OvertimePay равным чему-либо, кроме 0. Вы должны переместить условие if в логике программы и затем соответствующим образом установить переменную перед вычислением брутто-оплаты (gp).
#include<iostream>
using namespace std;
int main()
{
float ftax, stax, SDI, SS, hw, hp, pay, netpay, gp, OvertimePay = 0;
cout << "please enter the hoursWorked: ";
cin >> hw;
cout << "---------------------" << endl;
cout << "please enter the hourlyPay: ";
cin >> hp;
if(hw > 40) {
OvertimePay = (hw - 40) * hp * .5;
} else {
OvertimePay = 0;
}
gp = (hw * hp) + OvertimePay;
ftax = gp*.10;
stax = gp*.08;
SDI = gp*.01;
SS = gp*.06;
netpay = gp - (ftax + stax + SDI + SS);
cout << " grosspay = " << gp << endl;
cout << "---------------------" << endl;
cout << " federal taxes = " << ftax << endl;
cout << "---------------------" << endl;
cout << " state taxes = " << stax << endl;
cout << "---------------------" << endl;
cout << " SDI = " << SDI << endl;
cout << "---------------------" << endl;
cout << " Social Securities = " << SS << endl;
cout << "---------------------" << endl;
cout << " netpay = " << netpay << endl;
cout << "---------------------" << endl;
}
else
является избыточным, поскольку переменная OvertimePay
инициализируется в объявлении, поэтому } else { OvertimePay = 0; }
можно удалить.
Сначала необходимо рассчитать оплату сверхурочной работы, прежде чем вывести валовую оплату:
if(hw > 40)
OvertimePay = (hw - 40) * hp * 0.5;
gp = hw * hp + OvertimePay;