一个搭建流水线求唱歌比赛最终得分的例子

搭建流水线,即建立一个类,该类同时组合a,b,c三个对象。流水线的作用是,用户只需要将套处理的数据交给流水线,流水线就会依次让流水线上的对象来出来数据。即流水线上首先由对象a处理数据,a处理完后,自动将出来的数据交给b,b处理数据后,自动将处理的数据交给c。比如,在歌手比赛中,只需要将评委给出的分数交给设计好的流水线,就可以得到选手的最后的分,流水线上的第一个对象负责录入裁判给选手的分数,第二个对象负责去掉一个最高分和一个最低分,最后一个对象负责计算出平均成绩,这样一个流水线的流程就走下来了。

对象a,负责录入成绩

package Example5;

import java.util.Scanner;

//对象a负责录入成绩
public class InputScore {
    DelScore del;
    InputScore(DelScore del) {
        this.del = del;
    }
    public void inputScore() {
        System.out.println("当前评委数:");
        Scanner scanner = new Scanner(System.in);
        int count = scanner.nextInt();
        System.out.println("请输入各评委的分数:");
        double []a = new double[count];
        for(int i=0;i<count;i++){
            a[i] = scanner.nextDouble();
        }
        del.dodelete(a);
    }
}

类b,负责去掉最高分和最低分

package Example5;
//去掉最低分和最高分
public class DelScore {
    ComputerAver computerAver;
    DelScore(ComputerAver computerAver) {
        this.computerAver = computerAver;
    }
    public void dodelete(double []a){
        java.util.Arrays.sort(a);//排序
        System.out.println("去掉一个最高分:" + a[a.length-1] + ",");
        System.out.println("去掉一个最低分:" + a[0] + "。");
        double b[] = new double[a.length-2];
        for(int i=1;i<a.length-1;i++){
            b[i-1] = a[i];
        }//注意哪些存在哪些不存在;
        computerAver.giveAver(b);
    }

}

类c,负责统计最后分数

package Example5;

public class ComputerAver {
    public void giveAver(double []b){
        double sum = 0,aver = 0;
        for(int i=0;i<b.length;i++){
            sum+= b[i];
            }
        aver = sum/(b.length);
        System.out.println("选手最后得分:" + aver);
    }
}

调用各个类

package Example5;

public class Line {
    InputScore one;
    DelScore two;
    ComputerAver three;
     Line() {
         three = new ComputerAver();
         two = new DelScore(three);
         one = new InputScore(two);
     }
     public void givaPersonScocer(){
         one.inputScore();
     }
}

主函数

package Example5;

public class SingGame {
    public static void main (String args[]){
        Line line = new Line();
        line.givaPersonScocer();
    }
}

调试结果:

当前评委数:

3
请输入各评委的分数:
99
12
56
去掉一个最高分:99.0,
去掉一个最低分:12.0。
选手最后得分:56.0
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值