Почему мой метод GPA не вычисляет правильно после передачи правильных параметров? - PullRequest
1 голос
/ 27 мая 2019

Привет всем, я пытаюсь решить эту домашнюю работу JAVA для класса, и я застрял в течение большей части дня, пытаясь заставить мой конструктор GPA предоставить мне правильный результат.

Мне нужен выводимя студента и его средний балл.В настоящее время имя и фамилия печатаются правильно, но для GPA я получаю значение Null, и сейчас я, кажется, получаю только ссылку на него.

Это мой основной код класса

package assignment2;

/**
*
* @author javyc
*/
import java.text.NumberFormat;
import java.util.HashSet;
public class Assignment2 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    Classes[]courseArray = new Classes[2];
    courseArray[0] = new Classes("Javier", "Ruiz", "Winter 2018", 3);
    courseArray[1] = new Classes("Gabriela", "Ruiz", "Fall 2018", 3);

    double[] gpa = new double[2];
        gpa[0] = 4.00;
        gpa[1] = 4.00;

        Students ArizonaStudent = new Students("Javier", "Ruiz","MIS", "2020", courseArray, gpa);
        gpa = ArizonaStudent.getGpa();
        NumberFormat formatting = NumberFormat.getNumberInstance();
        formatting.setMaximumFractionDigits(2);

        System.out.println(ArizonaStudent.getStudentFirstName()+ " " + ArizonaStudent.getStudentLastName() + "" + gpa);
        //System.out.println(ArizonaStudent.getCourses(1));
}

}

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

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package assignment2;

/**
 *
 * @author javyc
*/
public class Students {
private String studentFirstName;
private String studentLastName;
private String department;
private String gradYear;

private Classes[] courses;
private double[] gpa1;

public Students(String studentFN, String studentLN, String dept, String graduationYear, Classes[]coursesList, double[]gpaList){
    studentFirstName = studentFN;
    studentLastName = studentLN;
    department = dept;
    gradYear = graduationYear;
    setCourses(coursesList);
    setGPA(gpaList);
}

public String getStudentFirstName(){
    return studentFirstName;
}
public String getStudentLastName(){
    return studentLastName;
}
public String getStudentDepartment(){
    return department;
}
public String getStudentGraduationYear(){
    return gradYear;
}
public Classes[]getCourses(){
    return courses;
}
public double[]getGpa(){
    return gpa1;
}


public void setStudentFirstName(String studentFN){
    studentFirstName = studentFN;
}
public void setStudentLastName(String studentLN){
    studentLastName = studentLN;
}
public void setDepartment(String department){
    this.department = department;
}
public void setGraduationYear(String gradYear){
    this.gradYear = gradYear;
}
public void setCourses(Classes[]courses){
    this.courses=courses;
}
public void setGPA(double[]gpa1){
    this.gpa1=gpa1;
}
 public class GPA{
public double gradePointAverage(){
    int totalCreds = 0;
    double gpaTotal = 0.0;
    for (int i = 0; i<courses.length;i++){
        totalCreds += courses[i].getCredits();
        gpaTotal += courses[i].getCredits()* gpa1[i];  
        return gpaTotal = gpaTotal/totalCreds;
    }
    return gpaTotal = gpaTotal/totalCreds;
}
}
}

Это код моего класса

/*
 * To change this license header, choose License Headers in Project     Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package assignment2;

/**
 *
 * @author javyc
 */
public class Classes {
//We will start by declaring the attributes of the Classes offered at UA
private String professorFirstName;
private String professorLastName;
private String semesterOffered;
private int creditTotal = 0;

public Classes(String profMainName, String profLastName, String semester, int credits) 
    {
    professorFirstName = profMainName;
    professorLastName = profLastName;
    semesterOffered = semester;
    creditTotal = credits;
    }
public String returnFirstName(){
    return professorFirstName;
}
public String returnLastName(){
    return professorLastName;
}
public String returnSemester(){
    return semesterOffered;
}
public int getCredits(){
    return creditTotal;
}
public void establishedSemester(String semesterOffered){
    this.semesterOffered = semesterOffered;
}
public void establishFirstName(String professorFirstName){
    this.professorFirstName = professorFirstName;
}
public void establishLastName(String professorLastName){
    this.professorLastName = professorLastName;
}
public void establishCredits(Integer creditTotal){
    this.creditTotal = creditTotal;
}

}

1 Ответ

0 голосов
/ 27 мая 2019

Есть несколько проблем с дизайном. Я не уверен, каковы были первоначальные требования к заданию, но должен ли ваш класс быть учеником или учениками? Студенческие объекты тогда будут представлять ОДНОГО студента. Итак, разве этот студент не должен иметь только один средний балл?

Если вы устанавливаете средний балл для студента, я бы предположил, что вы должны передать метод setGPA объекта двойной, а не двойной массив. Имеет ли это смысл?

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