对某班学生成绩排序。从键盘依次输入某班学生的姓名和成绩(一个班级人数最多不超过50人)并保存,然后分别按学生成绩由高到低顺序输出学生姓名和成绩,成绩相同时,则按输入次序排序。用java实现
时间: 2024-09-15 13:09:10 浏览: 29
接收从键盘输入某班学生的学号、姓名、成绩,对学 生的成绩进行排序.zip
5星 · 资源好评率100%
在Java中,你可以创建一个Student类,包含姓名(name)和成绩(score)属性,然后用一个ArrayList或HashMap来存储所有的学生信息。这里是一个简单的示例:
```java
import java.util.*;
class Student {
String name;
double score;
public Student(String name, double score) {
this.name = name;
this.score = score;
}
// getters and setters
}
public class Main {
private List<Student> students = new ArrayList<>();
public void addStudent(String name, double score) {
students.add(new Student(name, score));
}
public void sortStudents() {
Collections.sort(students, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
if (s1.score == s2.score) {
return s1.name.compareTo(s2.name);
} else {
return Double.compare(s2.score, s1.score);
}
}
});
}
public void printStudents() {
for (Student student : students) {
System.out.println("Name: " + student.name + ", Score: " + student.score);
}
}
public static void main(String[] args) {
Main main = new Main();
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String[] input = scanner.nextLine().split(",");
main.addStudent(input[0], Double.parseDouble(input[1]));
}
main.sortStudents();
main.printStudents();
scanner.close();
}
}
```
在这个程序中,我们首先通过`Scanner`读取用户输入的姓名和成绩,并添加到`students`列表中。然后,使用`Collections.sort`方法对列表进行排序,如果成绩相同则按照姓名的字典顺序排列。最后,打印出所有学生的姓名和成绩。
阅读全文