使用Java计算课程绩点、课程学分绩点、总绩点

1、定义实体类
实体类中包括属性表

名称 释义
xuefen 该课程学分
chengji 该课程取得的成绩
xuefenjidian 该课程取得的学分绩点
xuefen 该课程取得的学分

其中有式子:
j i d i a n = ( c h e n g j i − 50 ) 10.0 jidian = \frac{(chengji-50)}{10.0} jidian=10.0(chengji50)
x u e f e n j i d i a n = x u e f e n ∗ ( c h e n g j i − 50 ) 10.0 xuefenjidian =\frac{ xuefen * (chengji-50)}{10.0} xuefenjidian=10.0xuefen(chengji50)

定义实体类代码如下:

public class Grade {
    private double xuefen;
    private double chengji;
    private double xuefenjidian;
    private double jidian;

    public double getXuefen() {
        return xuefen;
    }

    public void setXuefen(double xuefen) {
        this.xuefen = xuefen;
    }

    public double getChengji() {
        return chengji;
    }

    public void setChengji(int chengji) {
        this.chengji = chengji;
    }

    public double getJidian() {
        return (this.chengji - 50) / 10.0;
    }

    public double getXuefenjidian() {
        return this.xuefen * getJidian();
    }

    public void setJidian(double jidian) {
        this.jidian = jidian;
    }

    public void setXuefenji(double xuefenji) {
        this.xuefenjidian = xuefenji;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Grade{");
        sb.append("xuefen=").append(xuefen);
        sb.append(", chengji=").append(chengji);
        sb.append(", xuefenjidian=").append(xuefenjidian);
        sb.append(", jidian=").append(jidian);
        sb.append('}');
        return sb.toString();
    }
}

测试实体类:

public class Main {
    public static void main(String[] args) {
        Grade grade = new Grade();
        grade.setXuefen(1.0);
        grade.setChengji(95);
        grade.setXuefenji(grade.getXuefenjidian());
        grade.setJidian(grade.getJidian());
        System.out.println(grade);
    }
}

使用Java计算课程绩点、课程学分绩点、总绩点_第1张图片
计算总学分绩点:

public class Main {
    public static void main(String[] args) {
        int i = 1;
        List<Grade> gradeList = new ArrayList<>();
        while (true) {
            System.out.printf("【科目%d】输入课程学分:", i);
            Scanner scanner1 = new Scanner(System.in);
            double xuefen = scanner1.nextDouble();
            System.out.printf("【科目%d】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):", i);
            Scanner scanner2 = new Scanner(System.in);
            double chengji = scanner2.nextDouble();
            Grade grade = new Grade();
            grade.setXuefen(xuefen);
            grade.setChengji(chengji);
            grade.setXuefenji(grade.getXuefenjidian());
            grade.setJidian(grade.getJidian());
            System.out.print("是否输入下一个科目?y or n 》 ");
            Scanner scanner3 = new Scanner(System.in);
            String letter = scanner3.nextLine();
            letter = letter.toLowerCase(Locale.ROOT);
            gradeList.add(grade);
            if ("n".equals(letter) || "no".equals(letter)) {
                break;
            }
            i++;
        }
        double sumXuefenjidian = gradeList.stream().mapToDouble(Grade::getXuefenjidian).sum();
        double sumXuefen = gradeList.stream().mapToDouble(Grade::getXuefen).sum();
        System.out.println("总绩点:" + sumXuefenjidian/sumXuefen);
    }
}

使用Java计算课程绩点、课程学分绩点、总绩点_第2张图片
使用Java计算课程绩点、课程学分绩点、总绩点_第3张图片

E:\Coding\java\env\jdk\run\Java\jdk1.8.0_291\bin\java.exe " app.Main
【科目1】输入课程学分:2
【科目1】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):97
是否输入下一个科目?y or n 》 
【科目2】输入课程学分:2
【科目2】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):75
是否输入下一个科目?y or n 》 
【科目3】输入课程学分:2
【科目3】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):85
是否输入下一个科目?y or n 》 
【科目4】输入课程学分:2
【科目4】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):83
是否输入下一个科目?y or n 》 
【科目5】输入课程学分:2
【科目5】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):85
是否输入下一个科目?y or n 》 
【科目6】输入课程学分:3
【科目6】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):85
是否输入下一个科目?y or n 》 
【科目7】输入课程学分:1
【科目7】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):93
是否输入下一个科目?y or n 》 
【科目8】输入课程学分:2
【科目8】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):79
是否输入下一个科目?y or n 》 
【科目9】输入课程学分:2
【科目9】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):83
是否输入下一个科目?y or n 》 
【科目10】输入课程学分:2
【科目10】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):84
是否输入下一个科目?y or n 》 
【科目11】输入课程学分:2
【科目11】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):83
是否输入下一个科目?y or n 》 
【科目12】输入课程学分:2
【科目12】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):94
是否输入下一个科目?y or n 》 
【科目13】输入课程学分:2
【科目13】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):90
是否输入下一个科目?y or n 》 
【科目14】输入课程学分:2
【科目14】输入取得的成绩(优秀-95, 良好-85,中等-75, 及格-65, 不及格-<60):81
是否输入下一个科目?y or n 》 n
总绩点:3.5214285714285714

Process finished with exit code 0

你可能感兴趣的:(java,开发语言,android)