键盘录入6个学生信息(姓名,学号,数学成绩, java成绩,数据结构),按照总分从高到低输出到控制台 1、创建一个学生类Student 2、创建一个Main类,显示学生信息录入,最终按照总分从高到低输出 用ArrayList实现,不允许用TreeSet.
时间: 2024-10-07 17:00:53 浏览: 13
首先,我们需要创建一个名为`Student`的类,用于存储学生的个人信息:
```java
public class Student {
private String name;
private int studentId;
private double mathScore;
private double javaScore;
private double dataStructuresScore;
public Student(String name, int studentId, double math, double java, double structs) {
this.name = name;
this.studentId = studentId;
this.mathScore = math;
this.javaScore = java;
this.dataStructuresScore = structs;
}
// Getters and setters
public String getName() { return name; }
public int getStudentId() { return studentId; }
public double getMathScore() { return mathScore; }
public double getJavaScore() { return javaScore; }
public double getDataStructuresScore() { return dataStructuresScore; }
@Override
public String toString() {
return "Name: " + name + ", Student ID: " + studentId +
", Math Score: " + mathScore + ", Java Score: " + javaScore +
", Data Structures Score: " + dataStructuresScore;
}
}
```
接下来,在`Main`类中,我们创建一个`ArrayList<Student>`来存储学生,并实现输入、计算总分以及排序的功能:
```java
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
System.out.println("Enter details for 6 students (name, id, math score, java score, data structures score):");
for (int i = 0; i < 6; i++) {
System.out.print("Student " + (i+1) + ": ");
String name = scanner.nextLine();
int studentId = scanner.nextInt();
double math = scanner.nextDouble();
double java = scanner.nextDouble();
double structs = scanner.nextDouble();
Student student = new Student(name, studentId, math, java, structs);
students.add(student);
}
// Calculate total scores
students.sort((a, b) -> Double.compare(b.getTotalScore(), a.getTotalScore()));
// Output the students in descending order of total score
System.out.println("Students sorted by total score from high to low:");
for (Student s : students) {
System.out.println(s);
}
scanner.close();
}
// Method to calculate total score
private static double getTotalScore(Student student) {
return student.getMathScore() + student.getJavaScore() + student.getDataStructuresScore();
}
}
```
在这个例子中,我们使用了`ArrayList`来存储学生并手动实现排序,而不是使用`TreeSet`,因为我们明确禁止使用`TreeSet`。`getTotalScore`方法用于计算每个学生的总分。
阅读全文