JAVA实现接口练习——编程例题之歌手大赛计算平均分

//computerAverage.java
public interface computerAverage{
public double cA(double[] x);//java8后接口可以有方法体
}

//songGame.java
public class songGame implements computerAverage{
public double cA(double[] x){
int count=x.length;
double aver=0,temp=0;
//冒泡排序从小到大排列
for(int i=0;i<x.length;i++){
for(int j=i;j<x.length;j++){
if(x[j]<x[i]){
temp=x[j];
x[j]=x[i];
x[i]=temp;
}
}
}
//去除头尾最低最高分,计算总分
for(int i=1;i<x.length-1;i++){
aver=aver+x[i];
}
if(count>2){
aver=aver/(count-2);
}
else{
aver=0;
}
return aver;
}
}
//estimator.java
import java.util.*;
import java.lang.*;
import java.util.Scanner;
public class estimator{
void jisuan(){
double score;
double[] singers;
Scanner sc=new Scanner(System.in);
while(true){
System.out.println("请输入打分的人数 ");
int number=sc.nextInt();
singers=new double[number];
int i=0;
OUTER:while(true){
System.out.println("请输入分数:");
score=sc.nextDouble();
if(score>=0&&i<singers.length){
singers[i]=score;
i++;
if(i==singers.length)
break OUTER;
}
else
System.out.println("请输入有效分数!\n\n\n");
}
computerAverage computer=new songGame();
double result=computer.cA(singers);
System.out.printf("最终平均分数:%f\n",result);
}
}
public static void main(String args[]){
new estimator().jisuan();
}
}

输出:

请输入打分的人数
5
请输入分数:
100
请输入分数:
90
请输入分数:
85
请输入分数:
60
请输入分数:
75
最终平均分数:83.333333
请输入打分的人数
7
请输入分数:
9.89
请输入分数:
9.88
请输入分数:
9.99
请输入分数:
9.12
请输入分数:
9.69
请输入分数:
9.76
请输入分数:
8.97
最终平均分数:9.668000

参考自 《java面向对象程序设计——实验指导与习题解答(张跃平等 著)》


猜你喜欢

转载自blog.csdn.net/qq_38329988/article/details/80428303