Java基础综合练习案例

案例:评委打分

以下是案例的需求:
在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。

然后我们可以写一个写代码的思路,通常要从一个小白入门Java这门语言的话在写代码的时候就要先想好一个程序的思路,然后根据你的思路来写这样的话就会养成一个好习惯,对后来学习有很大的帮助。
思路:
1:定义一个数组,用动态初始化完成数组元素的初始化,长度为6
2:键盘录入评委分数
3:由于是6个评委打分,所以,接收评委分数的操作,用循环改进
4:定义方法实现获取数组中的最高分(数组最大值),调用方法
5:定义方法实现获取数组中的最低分(数组最小值) ,调用方法
6:定义方法实现获取数组中的所有元素的和(数组元素求和) ,调用方法
7:按照计算规则进行计算得到平均分
8:输出平均分

然后我根据思路写出这个案例的代码如下:

public class Test10 {
    public static void main(String[] args) {
        //定义一个数组,用动态初始化完成数组元素的初始化,长度为6
        int[] arr = new int[6];
        //键盘录入评委分数
        Scanner sc = new Scanner(System.in);
      
//        System.out.println("请输入第1个评委的打分:");
//        arr[0] = sc.nextInt();
//
//        System.out.println("请输入第2个评委的打分:");
//        arr[1] = sc.nextInt();

        //由于是6个评委打分,所以,接收评委分数的操作,用循环改进
        for(int x=0; x<arr.length; x++) {
            System.out.println("请输入第" + (x + 1) + "个评委的打分:");
            arr[x] = sc.nextInt();
        }

        //printArray(arr);

        //定义方法实现获取数组中的最高分(数组最大值),调用方法
        int max = getMax(arr);

        //定义方法实现获取数组中的最低分(数组最小值) ,调用方法
        int min = getMin(arr);

        //定义方法实现获取数组中的所有元素的和(数组元素求和) ,调用方法
        int sum = getSum(arr);

        //按照计算规则进行计算得到平均分
        int avg = (sum - max - min) / (arr.length - 2);

        //输出平均分
        System.out.println("选手的最终得分是:" + avg);

    }

    /*
        两个明确:
            返回值类型:int
            参数:int[] arr
     */
    public static int getSum(int[] arr) {
        int sum = 0;

        for(int x=0; x<arr.length; x++) {
            sum += arr[x];
        }

        return sum;
    }

    /*
        两个明确:
            返回值类型:int
            参数:int[] arr
     */
    public static int getMin(int[] arr) {
        int min = arr[0];

        for(int x=1; x<arr.length; x++) {
            if(arr[x] < min) {
                min = arr[x];
            }
        }

        return min;
    }

    /*
        两个明确:
            返回值类型:int
            参数:int[] arr
     */
    public static int getMax(int[] arr) {
        int max = arr[0];

        for(int x=1; x<arr.length; x++) {
            if(arr[x] > max) {
                max = arr[x];
            }
        }

        return max;
    }

    //遍历数组
    public static void printArray(int[] arr) {
        System.out.print("[");

        for (int x = 0; x < arr.length; x++) {
            if (x == arr.length - 1) {
                System.out.print(arr[x]);
            } else {
                System.out.print(arr[x] + ", ");
            }
        }

        System.out.println("]");
    }
}