Мне нужно написать программу, которая создает класс HomeworkGrades(), который хранит оценки домашних заданий по 8 главам в массиве doubles. Мне нужно создать конструктор, который принимает массив в качестве входных данных, копирует содержимое массива и копирует его в массив классов. Наконец, в моем классе main() мне нужно распечатать среднее значение оценок в массиве и наименьшее значение в массиве. Я думаю, что правильно создал свой класс HomeworkGrades(), я просто не могу понять, как вызвать правильные методы, чтобы значения выводились на экран.
Вот мой класс main() ...
package classwork_7_1;
public class ClassWork_7_1 {
public static void main(String[] args) {
double[] grades = {98.7, 77.9, 90, 83, 67, 33, 81, 90};
double lowChap = grades[0];
System.out.println(average(grades[]));
System.out.println(lowChap(lowChap[]));
}
}
Вот мой класс HomeworkGrades() ...
package classwork_7_1;
public class HomeworkGrades {
private double[] grades = new double[8];
public HomeworkGrades(double[] grades) {
this.grades = grades;
}
public double average(double[] grades) {
int chap = 8;
double sum = 0;
for (int i = 0; i < grades.length; i++)
sum += i;
double average = sum / chap;
return average;
}
public double lowChap(double[] grades) {
double minValue = grades[0];
for (int i = 0; i < grades.length; i++) {
if (grades[i] < minValue) {
minValue = grades[i];
return minValue;
}
}
}
}
@MegaBluejay, конечно ... все может помочь, я просто не могу использовать .sort




Вот в этих строках:
double lowChap = grades[0];
System.out.println(average(grades[]));
System.out.println(lowChap(lowChap[]));
lowChap - это одиночный double, и вы пытаетесь передать lowChap[] в lowChap(), который принимает Array двойников и должен быть вызван для объекта HomeWorkGrades. Ясно, что это не сработает. Вместо этого вы должны создать object типа HomeWorkGrades и передать grades в конструктор, а затем вызвать методы этого объекта. В этом случае вы можете удалить аргументы в своих методах и просто использовать this.grades:
HomeWorkGrades hw = new HomeWorkGrades(grades);
System.out.println(hw.average());
System.out.println(hw.lowChap());
Итак, в ваших методах у вас будет:
public double average(){
int chap = 8;
double sum = 0;
for(int i = 0; i<grades.length; i++)
sum+=grades[i];
double average = sum / chap;
return average;
}
public double lowChap(){
double minValue = grades[0];
for(int i=0;i<grades.length;i++){
if (grades[i] < minValue)
minValue = grades[i];
}
return minValue;
}
Обратите внимание, что в average я заменил sum += i; на sum+= grades[i];, чтобы добавить оценку с индексом i к sum вместо только i.
Вывод:
77.575
33.0
Обратите внимание, что приведенный ниже код не обрабатывает случай пустого массива grades.
double min = Arrays.stream(grades).min().getAsDouble();
double average = Arrays.stream(grades).average().getAsDouble();
У вас есть класс
HomeworkGrades, но вы никогда не создаете его экземпляр вmain(вызываяnew HomeworkGrades), это было бы хорошим началом.