用Java编写程序:设某一个班共有N(N=20)名学生,期末考试5门课程,请编一程序评定学生的奖学金,要求打印输出一、二等奖学金学生的学号、姓名和各门课成绩7.(奖学金评定标准是:总成绩超过全班总平成绩20%发给一个奖学金,超过全班总平成绩10%发给二个奖学金。
时间: 2024-09-26 17:10:04 浏览: 34
在Java中,你可以通过创建一个类`Student`表示每个学生,并包含属性如学号、姓名和成绩数组。然后定义一个`Class`类来维护班级信息和计算平均分。下面是一个简单的示例程序:
```java
import java.util.ArrayList;
class Student {
int id;
String name;
int[] grades; // 假设每门课程的成绩范围
public Student(int id, String name, int[] grades) {
this.id = id;
this.name = name;
this.grades = grades;
}
public double getTotalScore() {
double total = 0;
for (int grade : grades) {
total += grade;
}
return total / grades.length;
}
}
class ClassInfo {
ArrayList<Student> students;
double classAverage;
public ClassInfo(int n) {
students = new ArrayList<>(n);
// 填充学生的数据...
}
void calculateAverage() {
double sum = 0;
for (Student student : students) {
sum += student.getTotalScore();
}
classAverage = sum / students.size();
}
void printScholarships() {
for (Student student : students) {
double totalScore = student.getTotalScore();
if (totalScore > classAverage * 1.2) { // 一等奖学金
System.out.println("学生ID:" + student.id + ",姓名:" + student.name +
",成绩:" + Arrays.toString(student.grades));
} else if (totalScore > classAverage * 1.1) { // 二等奖学金
System.out.println("学生ID:" + student.id + ",姓名:" + student.name +
",成绩:" + Arrays.toString(student.grades));
}
}
}
}
public class Main {
public static void main(String[] args) {
int N = 20;
ClassInfo classInfo = new ClassInfo(N); // 初始化班级信息
// 填充学生数据...
classInfo.calculateAverage(); // 计算平均分
classInfo.printScholarships(); // 打印奖学金名单
}
}
```
在这个示例中,你需要填充`ClassInfo`类的`students`列表,并处理输入成绩的部分。记得给每个学生分配随机的分数或从数据库读取实际分数。运行这个`main`函数即可看到满足条件的学生信息。
阅读全文