如何通过这些变量来计算我班级的新GPA?

时间:2016-10-02 21:06:27

标签: java

对于我上一篇文章中的这个非常相似的问题感到抱歉,但我的问题与我的上一个问题略有不同。我已经完成了在我的项目中编译和工作的所有内容,但我不知道如何通过传递总分数和总课数来为我的班级中的student1和student2计算新的gpa。我的老师希望我们通过为7个班级总分40分来计算student1的gpa,并通过为8个班级总分36分来计算student2的gpa。就像我说的那样,我的其余代码都可以工作,我还不确定如何做到这一点,因为我还是比较新的编码。答案可能很简单,但我无法弄清楚我的生活。这是我的代码:

public class student
{
   private String name;
   private int year;
   private int age;
   private double gpa;
   /*
    * Default Constructor
    */
   public student()
   {
       name = "John";
       year = 2016;
       age = 16;
       gpa = 4.0;
   }
   /* 
    * other constructor
    */
   public student(String name, int year, int age, double gpa)
   {
       this.name = name;
       this.year = year;
       this.age = age;
       this.gpa = gpa;
   }
   /*
    * accessors
    */
   public String getName()
   {
       return name; 
   }
   public int getAge()
   {
       return age;
   }
   public int getYear()
   {
       return year;
   }
   public double getGpa()
   {
       return gpa;
   }
   /*
    * mutators
    */
   public void setName(String name)
   {
       this.name=name;
   }
   public void setGpa(double gpa)
   {
       this.gpa=gpa;
   }
   public void setYear(int year)
   {
       this.year=year;
   }
   public void setAge(int age)
   {
       this.age=age;
   }
   /*
    * calculate GPA
    */
   public double calcGpa(double points, int classes)
   {
      gpa = points / classes;       
      return gpa; 
   }
   public String toString() 
   {
    return name + year + age + gpa;
   }
}



public class studentReal
    {
       public static void main(String[] args)
       {
           student student1= new student("Jackie Java", 2018, 16, 4.7);
           student student2= new student("John Java", 2019, 15, 3.8);
           student student3= new student();
           System.out.println(student1.getName() + ", class " + student1.getYear()+ ", " + student1.getAge() + ", " + student1.getGpa());
           System.out.println(student2.getName() + ", class " + student2.getYear()+ ", " + student2.getAge() + ", " + student2.getGpa());
           System.out.println(student3.getName() + ", class " + student3.getYear()+ ", " + student3.getAge() + ", " + student3.getGpa());
       }
    }

2 个答案:

答案 0 :(得分:0)

要使用您目前使用的功能执行此操作,我将使用此路线。

double newGpa = student.gpaCalc(<any number>, <any number>);
student.setGpa(newGpa);

您的其他选项位于calcGpa函数中,调用setGpa函数而不是返回值,或者将其设置在函数中,如下所示:

public double calcGpa(double points, int classes)
   {
      gpa = points / classes;       
      this.gpa = gpa 
}

答案 1 :(得分:0)

在studentReal类中,在main方法中,使用您在Student类中为每个学生创建的calcGpa方法。该方法与变量一样,属于该学生。

例如:

    student1.calcGpa(40, 7);