Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
6.1 kB
11
Indexable
Never
import java.util.Scanner;

    class StepTracker {
        Scanner scanner; // Объявили переменную с типом Scanner для этого класса.
        // new Scanner(System.in) - не пишем, видимо он видит её из класса мейн.

        MonthData monthData = new MonthData(); // создали экземпляр класса
        MonthData[] monthToData = new MonthData[12]; //  это массив из объектов класса MonthData, сам объект создали выше
        // проинициализировали массив, ссылки пока пустые, равно null
        int goalByStepsPerDay = 10000;

        StepTracker(Scanner scan) {
            scanner = scan;

            for (int i = 0; i < monthToData.length; i++) {
                monthToData[i] = new MonthData(); // заполнили массив monthToData 12 ссылками на объект.

            }
        }

        public void addNewNumberStepsPerDay(){
                System.out.println("Введите номер месяца");
                int month = scanner.nextInt(); // ввод и проверка номера месяца
                if (month<1){
                    System.out.println("Вы ввели: " + month);
                    System.out.println("Введите номер месяца от 1 до 12");
                } else if (month>12) {
                    System.out.println("Вы ввели: " + month);
                    System.out.println("Введите номер месяца от 1 до 12");
                    return;} // ??? не нравится ,  надо еще подумать куда деть ретюрн


                System.out.println("Введите день от 1 до 30 (включительно)");
                int day = scanner.nextInt();
                // ввод и проверка номера дня
                    if (day < 1) {
                    System.out.println("Вы ввели: " + day);
                    System.out.println("Введите от 1 до 30");
                    } else if (day > 30) {
                    System.out.println("Вы ввели: " + day);
                    System.out.println("Введите от 1 до 30");
                    return;
                    }


                System.out.println("Введите количество шагов"); // ввод и проверка количества шагов
                int steps = scanner.nextInt();

                if (steps <= 0) {
                    System.out.println("Вы ввели количество шагов за день: " + steps);
                    System.out.println("Количество шагов должно быть больше нуля");
                    return;
                }

                    // Получение соответствующего объекта MonthData из массива
                    // нужна  новая переменная, которой нужно присвоить ссылку из массива с нужным месяцем
                     MonthData monthData = monthToData[month-1]; //это будет новая переменная с именем monthData
                     monthData.days[day-1] = steps;
                     System.out.println("Количество шагов введено.");// Сохранение полученных данных

            // подругому это выражение принимает вид  monthData[month-1].days[day-1] = numberOfSteps;
            // это как  двумерный массив  в другом виде, типа  monthToData[month-1] [day-1 ] = numberOfSteps

        }
        void changeStepGoal() {
                System.out.println("Введите цель. Сколько вы хотите пройти за день?");
                int newGoalByStepsPerDay = scanner.nextInt(); // ввели новое значение
                if (newGoalByStepsPerDay <= 0) {
                    System.out.println("Неверное значение. Количество шагов должно быть больше нуля");
                return; // ???????? надо еще подумать
                } else {
                    goalByStepsPerDay = newGoalByStepsPerDay;
                    System.out.println("Цель шагов за день: " + goalByStepsPerDay + ". Удачи!");
                }
        }

        void printStatistic() {
            System.out.println("Введите число месяца");
            int month = scanner.nextInt(); // ввод и проверка номера месяца
            if (month < 1 || month > 12) {
                System.out.println("Вы ввели: " + month);
                System.out.println("Введите номер месяца от 1 до 12");
                return;
            }

            MonthData monthData = monthToData[month - 1];  // получение соответствующего месяца

            int sumSteps;  // получение суммы шагов за месяц
            // вывод общей статистики по дням
            // вывод суммы шагов за месяц
            // вывод максимального пройденного количества шагов за месяц
            // вывод среднего пройденного количества шагов за месяц
            // вывод пройденной за месяц дистанции в км
            // вывод количества сожжённых килокалорий за месяц
            // вывод лучшей серии
            System.out.println(); //дополнительный перенос строки


        }
        }