java假设班上有10个学生,输入这10个学生的成绩,然后计算这些学生的平均分数和最高分数,最后对这10个学生的成绩进行排序。
时间: 2024-09-26 14:10:22 浏览: 64
在Java中,你可以使用ArrayList来存储学生的成绩,并利用Scanner从用户处获取输入。这里是一个简单的步骤说明:
1. **创建数据结构**:
首先,创建一个`Student`类,包含姓名和成绩属性。例如:
```java
class Student {
String name;
int score;
// 构造函数、getters和setters省略
}
```
2. **收集成绩**:
使用ArrayList存储学生的成绩:
```java
ArrayList<Student> students = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.println("请输入第" + (i+1) + "位同学的成绩:");
Student student = new Student();
student.score = scanner.nextInt();
student.name = "学生" + (i+1); // 这里仅作示例,实际应用可能会有更具体的学生信息输入方式
students.add(student);
}
scanner.close();
```
3. **计算平均分和最高分**:
```java
double sum = 0;
int maxScore = Integer.MIN_VALUE;
for (Student student : students) {
sum += student.score;
if (student.score > maxScore) {
maxScore = student.score;
}
}
double averageScore = sum / students.size();
System.out.println("平均成绩: " + averageScore);
System.out.println("最高分: " + maxScore);
```
4. **排序成绩**:
对于ArrayList,可以使用Collections.sort()方法:
```java
Collections.sort(students, Comparator.comparingInt(Student::getScore)); // 按照score降序排列
```
现在`students`列表已经是按成绩从高到低排序。
5. **显示结果**:
输出排序后的学生和他们的成绩。
**相关问题--:**
1. Java中如何读取用户输入并转换为整数?
2. 如果成绩有浮点数怎么办?如何修改代码处理浮点数?
3. 如何优化程序性能,处理大量学生数据?
阅读全文