一个班里有20名学生,期末考试五门课程,请编一程序,要求打印输出一、二等奖学金学生的学号,姓名和各门课成绩(学生总成绩超过全班总平均成绩的20%发一等奖学金,学生总成绩超全班总平均成绩的10%发一等奖学金)
时间: 2024-09-24 15:02:04 浏览: 35
fgr.zip_K._fgr_一班有m个女生
4星 · 用户满意度95%
在编写这样一个程序时,我们可以假设已经有一个包含学生信息的数据结构,比如一个名为`Student`的类,其中包含学号、姓名以及五门课程的成绩。下面是一个简单的Java伪代码示例:
```java
import java.util.ArrayList;
import java.util.List;
class Student {
int studentID;
String name;
double[] grades; // 假设grades数组长度为5
// 构造函数、getters和setters省略
}
public class GradeCalculator {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
// 假设这里填充了20名学生的信息
double totalAverage = calculateTotalAverage(students);
for (Student student : students) {
double totalScore = calculateTotalScore(student);
if (totalScore > totalAverage * 0.20) { // 一等奖学金条件
printScholarship("一等奖", student.studentID, student.name, totalScore);
} else if (totalScore > totalAverage * 0.10) { // 二等奖学金条件
printScholarship("二等奖", student.studentID, student.name, totalScore);
}
}
}
private static double calculateTotalAverage(List<Student> students) {
double sum = 0;
for (Student student : students) {
for (double grade : student.grades) {
sum += grade;
}
}
return sum / students.size();
}
private static double calculateTotalScore(Student student) {
return student.grades[0] + student.grades[1] + student.grades[2] + student.grades[3] + student.grades[4];
}
private static void printScholarship(String scholarshipType, int id, String name, double totalScore) {
System.out.println("学生学号:" + id + ", 姓名:" + name + ", " + scholarshipType + "奖学金:" + totalScore);
}
}
阅读全文