实验要求
歌手大赛计算选手成绩的方法是去掉一个最高分和一个最低分再计算平均。学校评估一个班级同学的体重则是直接计算全班的平均体重。请写出SongGame和School类,它们都实现了ComputAverage接口,但是实现的方式不同。
1.先创建ComputAverage接口:
package lulu;
public interface ComputAverage{
double Average (double[] x);//定义求平均值的方法
}
2.定义SongGame类:
package lulu;
import java.util.Arrays;
public class SongGame implements ComputAverage {//这里要是画波浪线就是需要下面的代码,在空白处右键→implement可直接生成
@Override
public double Average (double[] x) {
double Aver=0,sum=0;
//先排序
Arrays.sort(x);//用sort函数排序
//求sum
for (double i:x) sum+=i;
sum=sum-x[0]-x[x.length-1];//减掉最大值和最小值
Aver=sum/(x.length-2);
return Aver;
}
}
3.定义School类:
package lulu;
import java.util.Arrays;
public class School implements ComputAverage{
@Override
public double Average (double[] x) {
double Aver=0,sum=0;
//求sum
for (double i:x) sum+=i;
Aver=sum/(x.length);
return Aver;
}
}
4.写一个main来测试以上代码:
package lulu;
public class Main {
public static void main(String[] args) {
double[] a={10,10,8,7,9,4};
SongGame SG=new SongGame();
System.out.println(SG.Average(a));
School S=new School();
System.out.println(S.Average(a));
}
}
即可解决