-6

我遇到了这个问题,我只需要找到总工资的平均值HourlyEmp,我已经有一个超级班级Employee和两个潜艇HourlyEmpOverTimeEmp 我将数组命名为 Emp[]。Employee Emp[] = new Employee[7]< 7 项

现在我需要的是......如果我有不止一名员工在hourlyEmp 如何获得他们的平均工资?到目前为止,我有 2 个想法,但没有一个以某种方式工作

1.

'for(int i=0;i<Emp.length;i++) {
      if (Emp[i] instanceof HourlyEmp)

  System.err.println("Average="+(Emp[i].totalsal()/i));'

2.

double avg=0;
  for(int i=0;i<Emp.length;i++) {
      if (Emp[i] instanceof HourlyEmp)
        avg+=Emp[i].totalsal()/i;
  System.out.println("Average="+avg);

感谢您的帮助:)

4

3 回答 3

2

如果您正确计算平均值,选项 2 将起作用。IE

a = Get summation of total salary
b = Get a count of how many instances where HourlyEmp
average = a/b
于 2013-09-26T20:39:36.633 回答
2

由于您只需要 HourlyEmp 的平均值,因此您需要跟踪有多少:

double avg=0;
int numHourlies = 0; //number of hourlyEmps you have found so far

for(int i=0; i < Emp.length; i++) 
{
      if (Emp[i] instanceof HourlyEmp)
      {
          //just add up all the values for now ...
          avg += Emp[i].totalsal(); 

          //we have found another HourlyEmp, so we increase our count
          numHourlies ++;
      }
}

// ... and calculate the average by dividing the sum by the number of values
avg /= numHourlies; 

System.out.println("Average="+avg);
于 2013-09-26T20:40:12.297 回答
1
  public double getAverageSalary 
  {
     double totalSalary = 0;
     double hourlyEmps = 0;
     for(int i=0;i<Emp.length;i++)          
     {
          if (Emp[i] instanceof HourlyEmp)
          {
               totalSalary += Emp[i].salary;
               hourlyEmps++;
          }
     }
     return (totalSalary/ hourlyEmps);
  }

然后在您的打印语句中调用此方法。

于 2013-09-26T20:44:23.613 回答