Java编程实现:求物联网某班30个同学的Java课程的平均成绩,分别统计出各个等级成绩的人数及所占百分比。 学生成绩等级和分数(百分制)对应关系如下: 优:成绩>=90 良:80=<成绩<90 中:70<=成绩<80 及格:60<=成绩<70 不及格:成绩<60。
时间: 2024-12-06 17:27:15 浏览: 14
在Java中,你可以创建一个名为`Student`的类来表示学生的信息,并包含一个成绩字段。然后,你可以创建一个`GradeStatistics`类来计算平均分以及各等级的成绩分布情况。以下是简化的示例代码:
```java
class Student {
private String name;
private int score;
// 构造函数、getter和setter省略
public void setScore(int score) {
this.score = score;
}
// 获取成绩的方法,例如getScore()
}
public class GradeStatistics {
private static final int CLASS_SIZE = 30;
private Student[] students = new Student[CLASS_SIZE];
public double calculateAverage() {
int totalScore = 0;
for (Student student : students) {
totalScore += student.getScore();
}
return (double) totalScore / CLASS_SIZE;
}
public void calculateGradesDistribution() {
int[] gradeCounts = {0, 0, 0, 0, 0}; // 初始化优、良、中、及格、不及格的计数器
for (int i = 0; i < CLASS_SIZE; i++) {
if (students[i].getScore() >= 90) gradeCounts[0]++;
else if (students[i].getScore() >= 80) gradeCounts[1]++;
else if (students[i].getScore() >= 70) gradeCounts[2]++;
else if (students[i].getScore() >= 60) gradeCounts[3]++;
else gradeCounts[4]++;
}
double percentageSum = 0;
for (int count : gradeCounts) {
percentageSum += (count * 100.0) / CLASS_SIZE;
System.out.printf("等级:%s, 分数:%d人, 占比:%2.2f%%\n",
grades[count], count, percentageSum);
}
}
public static void main(String[] args) {
// 创建30个学生的实例并填充成绩,这里仅举例:
for (int i = 0; i < CLASS_SIZE; i++) {
students[i] = new Student();
// 设置随机成绩示例
students[i].setScore((int)(Math.random() * 100));
}
GradeStatistics stats = new GradeStatistics();
double average = stats.calculateAverage();
System.out.println("班级平均成绩:" + average);
stats.calculateGradesDistribution();
}
}
```
在这个例子中,我们首先初始化了30个学生的数组,然后计算平均分和每个等级的学生人数及其占比。注意,这个例子假设你在`main`方法中手动创建并设置每个学生的成绩,实际应用中可能需要从数据库或用户输入获取。
阅读全文