|
发表于 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[0];
- for (double num : x) {
- if (num > max) {
- max = num;
- }
- }
- return max;
- }
-
- default double min(double[] x) {
- double min = x[0];
- 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);
- }
- }
复制代码
运行测试应用程序,将会输出工作人员招聘的面试成绩平均分和某个科目的考试成绩平均分。 |
|