-2

私人无效 btnDisplay_Click(对象发送者,EventArgs e)

    {
        string EmploymentStatus = Convert.ToString(txtES.Text).ToLower();
        string UnionStatus = Convert.ToString(txtMS.Text).ToLower();
        double TotalSales = Convert.ToDouble(txtSales.Text) * 9.25;
        double Years = Convert.ToDouble(txtYears.Text);         
        double uniondues;
        double FICA = 0;
        double bonus = 0;
        double WPay = 0;
        double TotalComission = 0;

        if (EmploymentStatus == "full")
        {                 
            WPay = 800.00;
        }
        else if (EmploymentStatus == "part")
        {
            WPay = 200.00;
        }
        else
        {
            MessageBox.Show("Error, please enter either FULL or PART");
        }

            if (UnionStatus == "member")
            {
                uniondues = 5.25;
                WPay = WPay - uniondues;
            }
            else if (UnionStatus == "non-member")
            {
                uniondues = 0;
            }
            else
            {
                MessageBox.Show("Error, please enter either MEMBER or NON-MEMBER");
            }
            if ((EmploymentStatus == "full") && (TotalSales > 640))
            {
                bonus = TotalSales * .05;

            }
            else if (EmploymentStatus == "part")
            {
                bonus = 0;
            }
            if (Years >= 10)
            {
                TotalComission = TotalSales * .10;

            }
            else if (Years < 10)
            {
                TotalComission = TotalSales * .05;

            }
            else
            {
                MessageBox.Show("Error, please enter a valid number");
            }


            FICA = WPay * .16;
            WPay = WPay - FICA;


        lblqWPay.Text = "The weekly pay for the employee is: " + (WPay.ToString("C"));
        lblqTS.Text = "The total sales for this employee is: " + (TotalSales.ToString("C"));
        lblqCom.Text = "The comission for this employee is: " + (TotalComission.ToString("C"));
        lblqBonus.Text = "The bonus for this employee is: " + (bonus.ToString("C"));

当我进入就业状态为“FULL”,工会状态为“MEMBER”时,销售数量为“100”,受雇年限为“25”。每周的工资输出应该是“$783.30”。但我最终得到 667.59 美元作为输出。我看不出我做错了什么。

以下是必须遵循的准则:

全职代表每周工作 40 小时,每小时 20.00 美元 兼职代表每周工作 20 小时,每小时 10.00 美元 一些代表属于工会,每周支付 5.25 美元的工会会费 如果该代表工作了 10年或更长时间,他们将获得销售额 10% 的佣金,否则他们将获得销售额 5% 的佣金 小部件售价为 9.25 美元 如果全职员工的销售额超过其基本工资的 80%,他们有权获得奖金销售额的 5% 所有代表根据他们的总收入缴纳 16% 的 FICA 税

PS我知道这是很多阅读,但如果你能帮助我,这对我来说就像一个圣诞奇迹。

4

2 回答 2

1

您的计算基于工会会费...
显然,为了获得 783.30 的工资,在应用 FICA 税后扣除工会会费...

 800.00 (base) 
+ 46.25 (5% bonus when over 80% base) 
+ 92.50 (10% commission on 925 sales)
=======
 938.75
-150.20 (16% FICA)
=======
 788.55 Net pay before union dues
-  5.25 (union) 
=======
 783.30

private void btnDisplay_Click(object sender, EventArgs e)
{
   string EmploymentStatus = Convert.ToString(txtES.Text).ToLower();
   string UnionStatus = Convert.ToString(txtMS.Text).ToLower();
   double TotalSales = Convert.ToDouble(txtSales.Text) * 9.25;
   double Years = Convert.ToDouble(txtYears.Text);         
   double uniondues = 0;
   double FICA = 0;
   double bonus = 0;
   double WPay = 0;
   double TotalComission = 0;


   if (EmploymentStatus == "full")
   {
      WPay = 800.00;
      // since already in full-time status check, compute bonus here now.
      // based on 80% of base pay
      if (TotalSales > WPay * .80)
         bonus = TotalSales * .05;
   }
   else if (EmploymentStatus == "part")
      WPay = 200.00;
   else
      MessageBox.Show("Error, please enter either FULL or PART");

   // Only if qualified full/part time status
   if( WPay > 0 )
   {
      if (UnionStatus == "member")
         uniondues = 5.25;
      else if (UnionStatus == "non-member")
         uniondues = 0;
      else
         MessageBox.Show("Error, please enter either MEMBER or NON-MEMBER");

      if (Years >= 10)
         TotalComission = TotalSales * .10;
      else if (Years < 10)
         TotalComission = TotalSales * .05;
      else
         MessageBox.Show("Error, please enter a valid number");


      // NOW, build out the total pay before computing FICA
      WPay = WPay + bonus + TotalComission;

      // NOW Compute FICA
      FICA = WPay * .16;

      // and remove FICA and Union dues from gross pay to get net pay
      WPay = WPay - FICA - uniondues;
   }

   lblqWPay.Text = "The weekly pay for the employee is: " + (WPay.ToString("C"));
   lblqTS.Text = "The total sales for this employee is: " + (TotalSales.ToString("C"));
   lblqCom.Text = "The comission for this employee is: " + (TotalComission.ToString("C"));
   lblqBonus.Text = "The bonus for this employee is: " + (bonus.ToString("C"));
}
于 2014-12-13T03:38:11.963 回答
0

根据我的计算,783.30 的值是错误的。手工计算:

(800 (base) - 5.25 (union) + 92.5 (commission) + 46.25 (bonus))*.84 (tax) = 784.14。除非工资的确定与您提到的指南不同,否则您的程序运行正确,而旧的程序是错误的。

于 2014-12-13T02:42:40.387 回答