题目
体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考 察一个班级的某科 目的考试情况时,是计算全班同学的平均成绩。Gymastics类 和 school
类都实现了ComputcrAverage接 口,但实现的方式不同。
代码
代码
。
package Text;
interface ComputerAverage
{
public double average(double x[]);
}
class Gymnastics implements ComputerAverage {
public double average(double x[]) {
int count = x.length;
double aver = 0, temp = 0;
for (int i = 0; i < count; i++) {
for (int j = i; j < count; j++) {
if (x[j] < x[i]) {
temp = x[j];
x[j] = x[i];
x[i] = temp;
}
}
}
for (int i = 1; i < count - 1; i++) {
aver = aver + x[i];
}
if (count > 2)
aver = aver / (count - 2);
else
aver = 0;
return aver;
}
}
class school implements ComputerAverage {
public double average(double x[]) {
int count = x.length;
double aver = 0,sum = 0;
for (int i = 0; i < count; i++) {
sum = sum + x[i];
}
aver = sum / count;
return aver;
}
}
public class Text {
public static void main(String args[]) {
double a[] = {9.89,9.88, 9.99,9.12,9.69,9.76,8.97};
double b[] ={ 89,78, 56,90,100,77,56,45,36,79,98};
ComputerAverage computer;
computer=new Gymnastics();
double result= computer.average(a);
System.out.printf("%n" );
System.out. printf ("体操选手最后得分:%5.3f\n",result);
computer=new school();
result=computer.average(b);//代码3 //computer调 用average(double x")方 法,将数组b传递给参数x
System.out.printf("班级考试平均分数:%-5.2f",result);
}
}