Ошибка с классом конструктора? - PullRequest
0 голосов
/ 09 мая 2018

Я пишу класс и программу для генерации среднего теста для конкретного студента.

Я не уверен, что у меня ошибка в основном классе или в одном из StudentClass, но каждый раз, когда я запускаю программу, оба значения, которые она выводит, равны 0.

Может кто-нибудь увидетьпроблема с кодом, который может вызвать это?Это основной класс:

public class Student {

public static void main(String[] args) {
    StudentClass quizzes = new StudentClass();

    int[] quizArray = {54, 85, 32, 98, 43, 89};

    quizzes.addQuiz(quizArray[0]);
    quizzes.addQuiz(quizArray[1]);
    quizzes.addQuiz(quizArray[2]);
    quizzes.addQuiz(quizArray[3]);
    quizzes.addQuiz(quizArray[4]);
    quizzes.addQuiz(quizArray[5]);

    int total = quizzes.getTotalScore();
    int average = quizzes.getQuizAverage();

    System.out.println("Total score: " + total);
    System.out.println("Quiz average: " + average);



        }

    }

Это ученический класс:

public class StudentClass {
private String name;
private static int numberQuizzes;
private int average;
private int score;
private int total;

public String getName(String name) {
    return this.name;

}

public int addQuiz(int score){
    numberQuizzes++;
    return score;
}

public int getTotalScore(){
    total += score;
    return total;

}

public int getQuizAverage(){
    average = total / numberQuizzes;
    return average;

}

}

Ответы [ 3 ]

0 голосов
/ 09 мая 2018

Метод addQuiz, похоже, ничего не делает со счетом (например, добавляет его к итогу).

getTotalScore (), похоже, не понимает, что такое «оценка». Я не думаю, что вы хотите, чтобы метод типа total добавлялся к любому элементу / полю, а просто возвращал бы сумму.

Не проверено, но попробуйте:

public int addQuiz(int score){
    numberQuizzes++;
    total += score;
    return score;
}

public int getTotalScore(){
    return total;

}
0 голосов
/ 09 мая 2018

вы поставили «итого + = оценка»; в неправильном методе. следовательно, внутренние значения внутри вашего ученического класса никогда не обновляются.

не забудьте инициализировать ваш класс.
Я добавил несколько комментариев в кодах.

public class StudentClass {
private String name;
private static int numberQuizzes =0 ; //increment this every time addQuiz is called
// private int average; // you do not need this...you can re-calculate this
// private int score; //you do not need this.
private int total =0 ; //update your total score on addQuiz()

public int addQuiz(int score){
    numberQuizzes++;
    //update the total score everytime addQuiz() is called.
    total+= score; // this line is missing in your codes.

    return score;
}

public int getTotalScore(){
    // total += score; // this line is redundant.
    return total; 
}

public int getQuizAverage(){
    if(numberQuizzes==0) return 0; //prevent div by zero exception

    return total / numberQuizzes; 

}
0 голосов
/ 09 мая 2018

Вам нужно добавить тестовый экран внутрь addQuiz вместо getTotalScore метода. Переместить эту строку:

 total += score;

Таким образом, вы будете подсчитывать общее количество добавленных тестов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...