在java中使用For循环实现:假设一个班有两个学生,各有三门课,输入学生姓名,各门课的成绩,求各个学生的总分,平均分,最高分,最低分,以及整个班级的总分,平均分,最高分,最低分。
时间: 2024-10-22 21:24:56 浏览: 71
在Java中,你可以使用For循环和ArrayList或HashMap等数据结构来存储每个学生的信息,然后遍历计算总分、平均分、最高分和最低分。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// 创建两个学生对象并初始化成绩
Student student1 = new Student("张三", 85, 90, 95, 70);
Student student2 = new Student("李四", 90, 88, 92, 85);
// 存储所有学生信息
ArrayList<Student> students = new ArrayList<>();
students.add(student1);
students.add(student2);
// 班级总分、平均分、最高分和最低分初始化
int totalScore = 0;
double averageScore = 0;
int maxScore = Integer.MIN_VALUE;
int minScore = Integer.MAX_VALUE;
// 计算总分、平均分、最高分和最低分
for (Student s : students) {
totalScore += s.getTotalScore();
averageScore += s.getAverageScore();
if (s.getMaxScore() > maxScore) {
maxScore = s.getMaxScore();
}
if (s.getMinScore() < minScore) {
minScore = s.getMinScore();
}
System.out.printf("学生 %s 的总分: %d, 平均分: %.2f, 最高分: %d, 最低分: %d%n",
s.getName(), s.getTotalScore(), s.getAverageScore(), s.getMaxScore(), s.getMinScore());
}
// 班级统计结果
double avgClassScore = averageScore / students.size();
System.out.printf("班级总分: %d, 平均分: %.2f, 最高分: %d, 最低分: %d%n", totalScore, avgClassScore, maxScore, minScore);
}
}
class Student {
private String name;
private int[] scores;
public Student(String name, int... scores) {
this.name = name;
this.scores = scores;
}
// 获取总分、平均分、最高分和最低分的方法
public int getTotalScore() {
return Arrays.stream(scores).sum();
}
public double getAverageScore() {
return (double) getTotalScore() / scores.length;
}
public int getMaxScore() {
return Arrays.stream(scores).max().getAsInt();
}
public int getMinScore() {
return Arrays.stream(scores).min().getAsInt();
}
@Override
public String toString() {
return "Name: " + name + ", 总分: " + getTotalScore() + ", 平均分: " + getAverageScore();
}
}
```
阅读全文