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(chengji−50)
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∗(chengji−50)
定义实体类代码如下:
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);
}
}
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);
}
}
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