用java编写一个程序,统计学生成绩,其功能包括:输入学生的姓名和成绩,按照成绩从高到低顺序排列打印输出,对前70%的学生定为合格(PASS),而后30%的学生定为不合格(FAIL)。
时间: 2024-10-23 12:19:23 浏览: 12
HFUT JAVA 4_hfutjava4_
在Java中,你可以通过创建一个简单的控制台应用程序来实现这个需求。首先,我们需要定义一个学生类`Student`,包含姓名和成绩属性,并提供一些基本的方法。然后,我们将创建一个主函数来获取用户输入并处理排序、分段以及成绩结果。
```java
import java.util.*;
class Student {
String name;
int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
@Override
public String toString() {
return "Name: " + name + ", Score: " + score;
}
}
public class GradeCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<Student> students = new ArrayList<>();
// 输入学生信息
while (true) {
System.out.println("Enter student name (or 'quit' to finish):");
String input = scanner.nextLine();
if ("quit".equalsIgnoreCase(input)) break;
System.out.println("Enter their score:");
int score = scanner.nextInt();
students.add(new Student(input, score));
}
// 排序并计算合格分数线
Collections.sort(students, Comparator.comparingInt(Student::getScore).reversed());
int passingGradeCount = (int) Math.ceil(students.size() * 0.7);
// 分类并打印结果
for (Student student : students) {
if (students.indexOf(student) < passingGradeCount) {
System.out.println("PASS: " + student);
} else {
System.out.println("FAIL: " + student);
}
}
scanner.close();
}
}
```
在这个程序中,我们首先创建了一个`Student`类,用于存储姓名和成绩。然后在主函数里,通过循环读取用户输入的数据,添加到`students`列表中,并按成绩降序排列。最后,根据总人数的70%确定合格线,遍历列表并输出每个学生的成绩分类。
阅读全文