【问题标题】:Why isnt my GPA method calculating properly after passing it the correct parameters?为什么我的 GPA 方法在传递正确的参数后不能正确计算?
【发布时间】:2019-10-12 14:03:33
【问题描述】:

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

我需要输出是学生的姓名及其 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;
}

}

【问题讨论】:

  • 对不起,当你进来看到它时,我正在将代码编辑到帖子中
  • 如果您从不致电 gradePointAverage(),您希望如何计算 GPA?

标签: java arrays class constructor


【解决方案1】:

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

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

【讨论】:

  • 我相信只是学生
  • 所以,看来您应该为每个学生使用单个 GPA 而不是一组双打,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-12
相关资源
最近更新 更多