求java 完整程序

从键盘输入n个学生的m门课程成绩,求出每个学生的平均成绩,并按照平均成绩对学生排序,并输出每个学生排序后的课程成绩情况.
注意:每个学生选修的课程门数m可能不一样,要求从键盘输入各个学生所选的门数。

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
 * 类文件: AvegCourse
 * <p>
 * <p>
 * 类描述:
 * <p>
 * 作     者: 
 * <p>
 * 日     期: 2021/7/1 0001
 * <p>
 * 时     间: 22:39
 * <p>
 */
public class AverageCourse {

    public static void main(String[] args) {
        List<Float> scores = new ArrayList<>();
        int i,j,n,m,score = 0,sum = 0;
        float average = 0;
        System.out.println("请输入学生人数及课程数:");
        Scanner sca = new Scanner(System.in);
        n = sca.nextInt();
        m = sca.nextInt();
        for(i = 1;i<=n;i++){
            sum = 0;
            for(j = 1;j<=m;j++){
                System.out.println("请输入第"+i+"个学生的"+j+"门课程成绩:");
                Scanner sca1 = new Scanner(System.in);
                sum += sca1.nextInt();
            }
            average = (float)sum/m;
            System.out.println("第"+i+"个学生的总成绩为:"+sum+"平均分为:"+average);
            scores.add(average);
        }
        Collections.sort(scores);
        scores.forEach(so -> System.out.print(so+", "));

    }
}
import java.util.Scanner;
public class Hzf_4 {

    public static void main(String[] args) {
        int i,j,n,m,score = 0,sum = 0;
        float average = 0;
        System.out.println("请输入学生人数及课程数:");
        Scanner sca = new Scanner(System.in);
        n = sca.nextInt();
        m = sca.nextInt();
        for(i = 1;i<=n;i++){
            sum = 0;
            for(j = 1;j<=m;j++){
                System.out.println("请输入第"+i+"个学生的"+j+"门课程成绩:");
                Scanner sca1 = new Scanner(System.in);
                sum += sca1.nextInt();
            }
            average = (float)sum/m;
            System.out.println("第"+i+"个学生的总成绩为:"+sum+"平均分为:"+average);
        }

    }

}

img