以下是一个可能的解决方案:

public class Student {
    private String name;
    private int grade;
    private double[] scores;
    private double[] credits;

    public Student(String name, int grade, double[] scores, double[] credits) {
        this.name = name;
        this.grade = grade;
        this.scores = scores;
        this.credits = credits;
    }

    public double getAverageScore() {
        double sum = 0;
        for (double score : scores) {
            sum += score;
        }
        return sum / scores.length;
    }

    public double getTotalCredits() {
        double sum = 0;
        for (double credit : credits) {
            sum += credit;
        }
        return sum;
    }

    public double getGPA() {
        double gpa = 0;
        for (int i = 0; i < scores.length; i++) {
            gpa += scores[i] / 20 * credits[i];
        }
        return gpa / getTotalCredits();
    }
}

在这里,我们定义了一个名为Student的类,它有一个构造方法,它接受学生的姓名,年级,分数和学分数组。我们还定义了三个方法来计算平均分,总学分和gpa。请注意,我们假设每个学科的最高分数为100,最低分数为0,所以我们用scores[i] / 20来将分数转换为gpa,因为gpa的范围通常在0到4之间。

为了使用这个类,我们可以这样做:

public class Main {
    public static void main(String[] args) {
        double[] scores1 = {80, 90, 85};
        double[] credits1 = {3, 4, 2};
        Student student1 = new Student("张三", 1, scores1, credits1);
        System.out.println(student1.getAverageScore()); // 输出:85.0
        System.out.println(student1.getGPA()); // 输出:3.46

        double[] scores2 = {75, 85, 90};
        double[] credits2 = {2, 3, 4};
        Student student2 = new Student("李四", 2, scores2, credits2);
        System.out.println(student2.getAverageScore()); // 输出:83.33
        System.out.println(student2.getGPA()); // 输出:3.26
    }
}

在这里,我们创建了两个学生对象,并使用它们的方法计算平均分,总学分和gpa。我们可以看到,张三的平均分是85.0,gpa是3.46,李四的平均分是83.33,gpa是3.26

Java通过构造方法实现全校学生3门课程的平均分和学分计算他的总gpa

原文地址: https://www.cveoy.top/t/topic/epB7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录