Untitled
unknown
plain_text
2 years ago
6.1 kB
30
Indexable
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(); //дополнительный перенос строки
}
}Editor is loading...