Посчитать средний и общий бал

264
13 октября 2017, 13:42

Есть такой вот код, в условиях задачи сказано: Display the average and total rating of all student.

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

Подскажите, как присвоить переменной avgRating средний рейтинг всех студентов? А также посчитать общий рейтинг.

import java.util.Scanner;
/**
 * Created by golov on 12.10.2017.
 */
public class ExampleStudents {
    public static void main(String[] args) {
        Student student = new Student("Andrew",4.3);
        System.out.println(student);
    }
}
class Student {
    private String name;
    private double rating;
    static double avgRating;

    public void setName(String name) {
        this.name = name;
    }
    public void setRating(double rating) {
        this.rating = rating;
    }

    public String getName() {
        return name;
    }
    public double getRating() {
        return rating;
    }
    public Student(){

    }
    public Student(String name, double rating) {
        this.name = name;
        this.rating = rating;

    }
    //definite the better student (between two, return true or false)
    public boolean betterStudent (Student student1, Student student2){
        if (student1.getRating()>student2.getRating()){
            return true;
        } else {
            return false;
        }
    }
    @Override
    public String toString() {
        return "Student [Name = "+getName()+", rating "+getRating()+"]";
    }
    //change the rating of student
    void changeRating(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter rating of the student: ");
        setRating(scanner.nextDouble());
    }
}
Answer 1

Тебе не обязательно хранить переменную среднего рейтинга в классе студента, лучше вынеси её в другой класс или функцию. Далее просто в цикле перебери всех студентов, возьми их рейтинг, и посчитай средний балл. Далее присвой его в переменную avgRating. Если так надо, то просто создай setAvgRating и туда передавай эту переменную. Ну и в том же цикле складывай в другую переменную весь рейтинг и получишь total rating of all student.

Student[] arr = new Student[3];
    arr[0].setName();
    arr[0].setRating();
    arr[1].setName();
    arr[1].setRating();
    arr[2].setName();
    arr[2].setRating();
    for (int i = 0; i < arr.length; i++) {
        System.out.println(arr[i].toString());
    }
READ ALSO
Ошибочная сериализация полей с Gson

Ошибочная сериализация полей с Gson

У меня в обьекте есть поле:

237
Вопрос по защите приложения

Вопрос по защите приложения

Вообще никак нельзя определить, что приложение декомпилируетсяДекомпилятор работает с кодом как с потоком байтов, а не исполняемой сущностью

274
В чём разница между İnterface и Abstract класс

В чём разница между İnterface и Abstract класс

Добрый деньРаньше interface не имеел реализации и нам приходилось реализовывать абстрактные классы тд и тп

216