java定义一种求平均分的接口Avarage以及方法avarage(double[] score) 歌手大赛SongGame的计算方式是去掉一个最高分和一个最低分然后再求平均分(假设评委人数超过2人),而统计期末成绩FinalScore时是计算全班同学的平均成绩 在测试类DemoAvarage用Avarage分别创建歌手大赛和期末成绩的多态实现类对象,用给定的数组测试两种不同的计算方式
时间: 2023-06-06 19:09:13 浏览: 179
回答:对于这个问题,我可以给出以下Java代码实现:
```
public interface Avarage {
double avarage(double[] score);
}
public class SongGame implements Avarage {
@Override
public double avarage(double[] score) {
double sum = 0;
double min = score[0];
double max = score[0];
for (int i = 0; i < score.length; i++) {
sum += score[i];
if (score[i] > max) {
max = score[i];
} else if (score[i] < min) {
min = score[i];
}
}
return (sum - min - max) / (score.length - 2);
}
}
public class FinalScore implements Avarage {
@Override
public double avarage(double[] score) {
double sum = 0;
for (int i = 0; i < score.length; i++) {
sum += score[i];
}
return sum / score.length;
}
}
public class DemoAvarage {
public static void main(String[] args) {
double[] songGameScore = {85, 92, 90, 88, 89};
double[] finalScore = {85, 92, 90, 88, 89, 91, 87, 93, 85, 90};
Avarage songGame = new SongGame();
Avarage finalScoreCal = new FinalScore();
System.out.println("歌手大赛平均成绩(去掉一个最高分和一个最低分):" + songGame.avarage(songGameScore));
System.out.println("期末考试平均成绩:" + finalScoreCal.avarage(finalScore));
}
}
```
这段代码中,我们首先定义了一个接口`Avarage`,其中包括一个求平均分的方法`avarage(double[] score)`。我们创建了两个类`SongGame`和`FinalScore`,分别实现了`Avarage`接口,并具体实现了`avarage`方法。`SongGame`类中的实现是去掉最高分和最低分后求平均分,`FinalScore`类中的实现是直接求平均分。在测试类`DemoAvarage`中,我们分别创建了歌手大赛和期末成绩的多态实现类对象,并使用给定的数组测试了两种不同的计算方式,输出了对应的平均成绩。
阅读全文