Java算法(六):模拟评委打分案例 && 方法封装抽离实现 &&程序的节流处理

Java算法(六)

评委打分

需求:

在编程竞赛中,有 6 个评委为参赛选手打分,分数为 0 - 100 的整数分。

选手的最后得分为:去掉一个最高分和一个最低分后 的 4个评委的平均值。

  • 注意程序的节流
package com.liujintao.judge;

import java.util.Scanner;

public class JudgeScore {
    public static void main(String[] args) {
        double result = handleScore();
        System.out.println("去掉最高分和最低分,最终得分为;" + result);
    }


    /**
     * 获取评委打分的功能方法
     */
    public static double handleScore () {
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[6];
        // 1、 获取分数
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入分数:");
            int score = sc.nextInt();
            // 判断数据是否合理
            if (score >=  0 && score <= 100) {
                arr[i] = score;
            } else {
                System.out.println("您输入的分数不合理, 请检查!");
                i--;
            }
        }

        // 1、调用max方法
        int max = handleMax(arr);

        // 2、调用min方法
        int min = handleMin(arr);

        // 3、最终将平均值返回出去
        return getAverage(arr, max, min);

    }

    /**
     * 求和的方法
     * @param arr
     * @param max
     * @param min
     * @return
     */
    private static double getAverage(int[] arr, int max, int min) {
        int sum = 0;
        double average = 0;
        // 遍历求和
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        sum = sum - max - min;
        average = (double)sum / (arr.length - 2);

        return average;
    }

    /**
     * 求最大值方法
     * @param arr
     * @return
     */
    public static int handleMax (int[] arr) {
        int max = arr[0];
        for (int i  = 1; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }
        return max;
    }

    /**
     * 求最小值方法
     */
    public static int handleMin (int[] arr) {
        int min = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (min > arr[i]) {
                min = arr[i];
            }
        }
        return min;
    }
}

  • 反复观看我的方法调用。并不是固定唯一的,但是节流是一定要有的。

运行示例
Java算法(六):模拟评委打分案例 && 方法封装抽离实现 &&程序的节流处理_第1张图片

你可能感兴趣的:(java算法,java,算法,开发语言)