Java 为什么我的GPA方法在传递了正确的参数后计算不正确?

Java 为什么我的GPA方法在传递了正确的参数后计算不正确?,java,arrays,class,constructor,Java,Arrays,Class,Constructor,大家好,我正在努力解决这个JAVA家庭作业,下午的大部分时间我都在努力让我的GPA构造函数为我提供正确的结果 我需要的输出是学生的名字和它的平均成绩。目前,名字和姓氏都被正确打印出来了,但是对于GPA,我已经得到了空值,就在现在,我似乎只得到了它的一个参考 这是我的主要课程代码 package assignment2; /** * * @author javyc */ import java.text.NumberFormat; import java.util.HashSet; public

大家好,我正在努力解决这个JAVA家庭作业,下午的大部分时间我都在努力让我的GPA构造函数为我提供正确的结果

我需要的输出是学生的名字和它的平均成绩。目前,名字和姓氏都被正确打印出来了,但是对于GPA,我已经得到了空值,就在现在,我似乎只得到了它的一个参考

这是我的主要课程代码

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;
}
}
}
这是我的学生代码

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;
}
}
}

有几个设计问题。我不确定最初的作业要求是什么,但你们班应该是学生还是学生?学生对象将分别表示一个学生。那么,那个学生不应该只有一个GPA吗


如果您为学生设置GPA,我会假设您应该将对象的setGPA方法传递给double,而不是double数组。这有意义吗?

有几个设计问题。我不确定最初的作业要求是什么,但你们班应该是学生还是学生?学生对象将分别表示一个学生。那么,那个学生不应该只有一个GPA吗


如果您为学生设置GPA,我会假设您应该将对象的setGPA方法传递给double,而不是double数组。这有意义吗?

很抱歉,当你进来时,我正在将代码编辑到帖子中,你看到了它。如果你从未调用
gradePointAverage()
,你希望如何计算GPA?很抱歉,当你进来时,我正在将代码编辑到帖子中,看到了它。如果你从未调用
gradePointAverage(),你希望如何计算GPA
?我相信这只是学生所以,似乎你应该为每个学生使用一个GPA而不是一系列的双倍成绩,对吗?我相信这只是学生所以,似乎你应该为每个学生使用一个GPA而不是一系列的双倍成绩,对吗?