// 分区段统计某门课程的学生总评成绩,例如60 分以下的学生人数、60 至70 分的学生人数等。
public void tongji(List<Student> list) { // 语文
int[] a = new int[3];
String kemu = null;
for (Student student : list) {
tj(student.getYuwen(), a);
if (kemu == null) {
kemu = student.getYuwen().getName();
}
}
output(a, kemu);
// 数学
getEmptyArray(a);
kemu = null;
for (Student student : list) {
tj(student.getShuxue(), a);
if (kemu == null) {
kemu = student.getShuxue().getName();
}
}
output(a, kemu);
// 英语
getEmptyArray(a);
kemu = null;
for (Student student : list) {
tj(student.getYingyu(), a);
if (kemu == null) {
kemu = student.getYingyu().getName();
}
}
output(a, kemu); } private void output(int[] a, String kemu) {
System.out.println(kemu + "\t不及格\t及格\t优秀");
System.out.println("\t" + a[0] + "\t" + a[1] + "\t" + a[2]);
} // 数组置空
private int[] getEmptyArray(int a[]) {
for (int i = a.length - 1; i >= 0; i--) {
a[i] = 0;
}
return a;
} // 统计函数
private void tj(Chengji chengji, int[] a) {
if (chengji.getPingjun() < 60) {
a[0]++;
} else if (chengji.getPingjun() < 70) {
a[1]++;
} else if (chengji.getPingjun() >= 70) {
a[2]++;
}
}

解决方案 »

  1.   

    for (Student student : list) {
    tj(student.getShuxue(), a);
    if (kemu == null) {
    kemu = student.getShuxue().getName();
    }
    for (Student student : list) {
    tj(student.getYuwen(), a);
    if (kemu == null) {
    kemu = student.getYuwen().getName();
    }
    for (Student student : list) {
    tj(student.getYingyu(), a);
    if (kemu == null) {
    kemu = student.getYingyu().getName();
    }}
    不用多次 一次循环即可