Java 为什么我的GPA方法在传递了正确的参数后计算不正确?
大家好,我正在努力解决这个JAVA家庭作业,下午的大部分时间我都在努力让我的GPA构造函数为我提供正确的结果 我需要的输出是学生的名字和它的平均成绩。目前,名字和姓氏都被正确打印出来了,但是对于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
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而不是一系列的双倍成绩,对吗?