输出结果一直无法显示成绩。

求解答。输出结果一直无法显示成绩。
已知专业班级类(Majorclass)含有班级名称(className)和学生名单(studentList-Student对象数组)、学生人数(count)、课程单(courseList-String数组)等成员变量,以及部分成员方法,现在主类中声明一个含3位同学的班级,并设置好课程单数据,输入每位同学的成绩,求各科的平均分,运行效果如下。

import java.util.Scanner; 
class Student 
{   private String name;            //姓名 
    private int age=16;              //年龄 
    private int score[];              //各门课程成绩 
    private int totalScore;           //总分 
    public Student()                //构造方法 
    {  name=new String("Noname"); 
       score=new int[5]; 
    } 
    public Student(String name,int age)//构造方法 
    {  this(); 
       this.name=name; 
       this.age=age; 
    } 
    public void setName(String name) //设置姓名 
    {  this.name=name;  } 
    public void setAge(int age)        //设置年龄 
    {  this.age=age;} 
    public void setScore(int id,int sc)  //设置第id门课程的成绩 
    {  if(id>=0 && id[id]=sc; 
    } 
    public String getName()     //获取姓名 
    {  return name; } 
    public int getAge()          //获取年龄 
    {  return age; } 
    public int getScore(int id)    //获取第id门课程成绩 
    {  if(id>=0 && id[id];  
       else 
           return -1; 
    } 
    public void scoreSum()      //计算总分 
    {  int i,sum=0; 
       for(i=0;i[i]; 
       totalScore=sum; 
    } 
    public double scoreAverage()  //获取平均分 
    {  return 1.0*getTotalscore()/score.length;} 
    public int getTotalscore()      //获取总分 
    {  scoreSum(); 
       return totalScore;   
    }    
    public void printInfo()         //输出信息 
    {  System.out.println(String.format("Name:%s,Age=%d",name,age)); 
       for(int i=0;iSystem.out.println(String.format("Course%d:%d",i+1,score[i])); 
       System.out.println(String.format("ScoreAver=%.2f",scoreAverage())); 
    } 
    public int getScoreCount()     //获取课程门数 
    {  return score.length;   } 
} 
class Majorclass 
{   String className;         //班级名称 
    Student studentList[ ];     //学生名单 
    int studentCount;          //班级学生人数 
    public Majorclass()         //构造方法 
    {  className=new String("Noname");} 
    public Majorclass(String className,int count,String name[ ],int age[ ]) //构造方法 
    {  this(); 
       this.className=className; 
       this.studentCount=count; 
       studentList=new Student[studentCount];       //实例化学生数组 
       for(int i=0;i[i]=new Student();  //实例化学生数组元素 
    } 
    public void setClassname(String className)      //设置班级名称 
    {  this.className=className;  } 
    public void inputCourseScore(int id,Scanner sc)             //输入所有学生第id门课程成绩 
    {  //Scanner sc = new Scanner(System.in); 
       int score; 
       if(id[0].getScoreCount())          //id有效判断 
           for(int i=0;iInt(); 
              studentList[i].getScore(id) ; 
           }   
       else 
          System.out.println("Course id is error!"); 
    } 
    public void printStudentInfo()                  //输出班级学生信息 
    {  for(int i=0;i[i].printInfo();      
    } 
    public double getCourseAverage(int id)         //获取第id门课程成绩的平均分 
    {  int sum=0;  
       if(id[0].getScoreCount()) 
       {   for(int i=0;i[i].getScore(id); 
           return 1.0*sum/studentCount; 
       } 
       else 
           return -1; 
    } 
} 
public class Sy6_1_4  
{    public static void main(String[] args)  
     {   Scanner sc = new Scanner(System.in); 
         String sname[]={"Kate","Mary","John"};   //准备学生姓名清单 
         int age[]={16,17,18};                      //准备学生年龄清单 
         Majorclass cla=new Majorclass("Coputer2019",3,sname,age);  //实例化班级对象 
         for(int i=0;i<5;i++)                        //输入所有学生5门课程的成绩 
             cla.inputCourseScore(i,sc); 
         cla.printStudentInfo();                    //输出所有学生的信息 
         for(int i=0;i<5;i++)                        //输出所有课程的平均分 
             System.out.println("Average of Course"+(i+1)+":"+cla.getCourseAverage(i)); 
     } 
}

score=sc.nextInt();
studentList[i].getScore(id) ;
没有赋值啊
studentList[i].getScore(id).setScore(score);

getTotalScore 注意大小写

参考GPT和自己的思路:

在Majorclass类中的inputCourseScore方法中,当输入每个学生的成绩时,应该调用对应学生的setScore方法来设置成绩,而不是调用getScore方法。因此,将下面这行代码:

studentList[i].getScore(id) ;

改为:

studentList[i].setScore(id, score);