package _04_方法练习;

import java.util.Random;

public class Test7 {
    public static void main(String[] args) {
        /**
         * 需求说明：
         * 1. 系统需处理 1 个月（30 天）的图书销售数据，每天的销量通过方法随机生成（10-50 本的整数），并存储在一维数组中。
         * 2. 需实现以下功能（拆分到多个方法）：
         *    - 生成每日销量数组     数组是一个长度为30 , 里面元素是随机数 10-50
         *    - 计算全月总销量      // 求数组和
         *    - 找出本月销量最高的那一天    求最大值 所在那一天
         *    - 统计销量超过 30 本的天数（“畅销日”）    大与30 的有多少天
         */
        int[] arr = generateDailySales();
        System.out.println(arr);
        int sum = calculateTotalSales(arr);
        int day = findMaxSaleDay(arr);
        int count = countBestSellingDays(arr);
        System.out.println("月销售额为:" + sum);
        System.out.println("销售额最大的是:"+ day);
        System.out.println("一个月一共有:"+ count+"天为畅销日");
        for (int ele : arr) {
            System.out.print(ele + " ");
        }

    }

    private static int countBestSellingDays(int[] arr) {
        int count = 0;
        // 遍历数组判断如果销量大于30 就属于畅销日让count++
        for (int i : arr) {
            if(i > 30){
                count++;
            }
        }
        return count;
    }

    private static int findMaxSaleDay(int[] arr) {
        int max = arr[0];
        int day = 1;
        //遍历寻找最大值
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]> max){
                max = arr[i];
                day = i + 1;
            }
        }
        System.out.println(max);
        return day;
    }

    private static int calculateTotalSales(int[] arr) {
        int sum = 0;
        for (int i : arr) {
            sum += i;
        }
        return sum;
    }

    private static int[] generateDailySales() {
        // 创建出户来一个长度为30 的数组
        // 数组当中元素的内容为随机数
        int[] arr = new int[30];
        Random random = new Random();
        for (int i = 0; i < arr.length; i++) {
            // 0 - 40   10-50
            arr[i] = random.nextInt(41) + 10;
        }
        return  arr;
    }
}
