7. 设某一个班共有N 名学生,期末考试5门课程,请编一程序评定学生的奖学金,要求打印输出一、二等奖学金学生的学号、姓名和各门课成绩。 (奖学金评定标准是:总成绩超过全班总平成绩20%发给一个奖学金,超过全班总平成绩10%发给二个奖学金。)JAVA
时间: 2024-09-28 11:14:48 浏览: 33
在Java中,你可以创建一个Student类来表示每个学生的信息,包括学号、姓名以及五门课程的成绩。然后,你需要计算全班平均成绩和每个学生的总成绩。接下来,可以按照奖学金评定标准来确定哪些学生符合条件。以下是一个简单的Java程序框架:
```java
import java.util.ArrayList;
import java.util.List;
class Student {
int id;
String name;
double[] scores; // 存储五门课程成绩
// 构造函数,getters和setters...
}
public class ScholarshipCalculator {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
// 添加学生信息...
// 计算全班平均分
double totalScore = calculateTotalScore(students);
double averageScore = totalScore / students.size();
// 遍历学生,评定奖学金
for (Student student : students) {
double studentAverage = calculateStudentAverage(student.scores);
if (studentAverage > averageScore * 1.2) { // 一等奖学金
printScholarship("一等奖", student.id, student.name, studentAverage);
} else if (studentAverage > averageScore * 1.1) { // 二等奖学金
printScholarship("二等奖", student.id, student.name, studentAverage);
}
}
}
private static double calculateTotalScore(List<Student> students) {
// 计算所有学生成绩之和
double total = 0;
for (Student student : students) {
for (double score : student.scores) {
total += score;
}
}
return total;
}
private static double calculateStudentAverage(double[] scores) {
// 计算单个学生各科平均分
return sum(scores) / scores.length;
}
private static void printScholarship(String type, int id, String name, double average) {
System.out.println("学生ID:" + id + ", 姓名:" + name + ", " + type + "奖学金, 总平均分:" + average);
}
private static double sum(double[] array) {
// 计算数组元素之和
double sum = 0;
for (double num : array) {
sum += num;
}
return sum;
}
}
```
在这个程序中,你需要添加学生数据,并根据实际需求完善`printScholarship()`函数和相关的数据输入部分。注意,这个示例假设你已经有了一个包含学生信息的数据结构。如果你需要用户输入数据,还需要相应的输入处理。
阅读全文