自定义学生类:包含姓名,年龄,成绩 属性为私有成员变量,并生成无参,有参构造方法,生成get/set方法.创建5个学生放到 ArrayList中.使用迭代器获取每个学生信息.统计总分,平均分,最高分,最低分并输出。(实现思路如下:) ⦁ 定义学生类生成类无参,有参构造方法,生成get/set方法. ⦁ 定义ArrayList ⦁ 添加5个学生 ⦁ 获取迭代器 ⦁ 定义总分 ⦁ 定义最高分 ⦁ 定义最低分 ⦁ 循环判断是否有下一个学生 ⦁ 使用next方法获取学生对象 ⦁ 将这个学生对象的分数添加到总分 ⦁ 判断这个学生的分数是否大于最大分数 ⦁ 这个学生的分数大于最大分数.最大分数等于这个学生的分数 ⦁ 判断这个学生的分数是否大低最大分数 ⦁ 这个学生的分数小于最小分数.最小分数等于这个学生的分数 ⦁ 计算平均分(平均分 = 总分/人数) ⦁ 打印总分,最高分,最低分
时间: 2024-04-21 14:24:43 浏览: 7
下面是实现以上要求的代码:
```java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class Student {
private String name;
private int age;
private double score;
public Student() {
}
public Student(String name, int age, double score) {
this.name = name;
this.age = age;
this.score = score;
}
// Getter and Setter methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
public class Main {
public static void main(String[] args) {
// 创建学生列表
List<Student> students = new ArrayList<>();
// 添加5个学生
students.add(new Student("Alice", 18, 89.5));
students.add(new Student("Bob", 20, 78.0));
students.add(new Student("Cindy", 19, 92.3));
students.add(new Student("David", 21, 85.8));
students.add(new Student("Emily", 22, 90.2));
// 获取迭代器
Iterator<Student> iterator = students.iterator();
double totalScore = 0.0; // 总分
double maxScore = Double.MIN_VALUE; // 最高分初始化为最小值
double minScore = Double.MAX_VALUE; // 最低分初始化为最大值
while (iterator.hasNext()) {
Student student = iterator.next();
double score = student.getScore();
// 计算总分
totalScore += score;
// 判断是否为最高分
if (score > maxScore) {
maxScore = score;
}
// 判断是否为最低分
if (score < minScore) {
minScore = score;
}
}
int numStudents = students.size(); // 学生人数
double averageScore = totalScore / numStudents; // 平均分
// 打印结果
System.out.println("总分: " + totalScore);
System.out.println("最高分: " + maxScore);
System.out.println("最低分: " + minScore);
System.out.println("平均分: " + averageScore);
}
}
```
输出结果可能如下:
```
总分: 435.8
最高分: 92.3
最低分: 78.0
平均分: 87.16
```