豪在这学python 发表于 2023-10-24 19:23:47

这个咋写啊?

2.我国机关事业单位以及国企工作人员招考的面试成绩在计算时是去掉一个最高分和最低分后再计算平均分(由7名考官打分),而某个科目的考试成绩则是计算全班同学(由20人组成一个班)的平均分。请定义一个工作人员招聘类StaffRecruit和期末考试类FinalExam,它们都实现了IAverage接口,但实现方式不同。IAverage中有一个抽象方法average(double[] x),两个默认方法max(double[] x)和min(double[] x)。请编写程序完成上述类和接口的设计,并编写测试应用程序测试。

isdkz 发表于 2023-10-24 19:24:47

首先,我们需要定义一个接口IAverage ,其中包含一个抽象方法average(double[] x)和两个默认方法max(double[] x)和min(double[] x) 。接口的定义如下:

public interface IAverage {
    double average(double[] x);
   
    default double max(double[] x) {
      double max = x;
      for (double num : x) {
            if (num > max) {
                max = num;
            }
      }
      return max;
    }
   
    default double min(double[] x) {
      double min = x;
      for (double num : x) {
            if (num < min) {
                min = num;
            }
      }
      return min;
    }
}


接下来,我们需要创建一个工作人员招聘类StaffRecruit和一个期末考试类FinalExam ,它们都实现了IAverage接口。这两个类的实现方式不同,分别用于计算工作人员招聘的面试成绩和某个科目的考试成绩。类的定义如下:

public class StaffRecruit implements IAverage {
    @Override
    public double average(double[] x) {
      // 去掉一个最高分和一个最低分
      double sum = 0;
      double max = max(x);
      double min = min(x);
      for (double num : x) {
            if (num != max && num != min) {
                sum += num;
            }
      }
      return sum / (x.length - 2);
    }
}

public class FinalExam implements IAverage {
    @Override
    public double average(double[] x) {
      // 计算全班同学的平均分
      double sum = 0;
      for (double num : x) {
            sum += num;
      }
      return sum / x.length;
    }
}


最后,我们可以编写一个测试应用程序来测试这些类的功能。测试应用程序的代码如下:

public class Main {
    public static void main(String[] args) {
      double[] interviewScores = {80, 90, 85, 95, 70, 75, 88};
      double[] examScores = {80, 90, 85, 95, 70, 75, 88, 92, 87, 78, 83, 79, 88, 91, 86, 82, 89, 84, 80, 85};
      
      StaffRecruit staffRecruit = new StaffRecruit();
      double averageInterviewScore = staffRecruit.average(interviewScores);
      System.out.println("工作人员招聘的面试成绩平均分:" + averageInterviewScore);
      
      FinalExam finalExam = new FinalExam();
      double averageExamScore = finalExam.average(examScores);
      System.out.println("某个科目的考试成绩平均分:" + averageExamScore);
    }
}


运行测试应用程序,将会输出工作人员招聘的面试成绩平均分和某个科目的考试成绩平均分。

豪在这学python 发表于 2023-10-29 17:49:29

isdkz 发表于 2023-10-24 19:24
首先,我们需要定义一个接口IAverage ,其中包含一个抽象方法average(double[] x)和两个默认方法ma ...

类图怎么画?
页: [1]
查看完整版本: 这个咋写啊?