java设计一个学生类CStudent,其数据成员是学生的学号、姓名、数学、外语、计算机课程成绩。 建立学生对象的数组并输入相关信息,打印所有学生信息。 查找出学号为n的学生的信息。 学生类增加一个成员方法:求平均分 测试类中将学生按照平均分排序输出。
时间: 2023-12-16 15:47:37 浏览: 90
好的,我可以回答您的问题。以下是 Java 代码示例:
```java
import java.util.Arrays;
class CStudent {
private String studentNumber;
private String name;
private double mathScore;
private double englishScore;
private double computerScore;
public CStudent(String studentNumber, String name, double mathScore, double englishScore, double computerScore) {
this.studentNumber = studentNumber;
this.name = name;
this.mathScore = mathScore;
this.englishScore = englishScore;
this.computerScore = computerScore;
}
public String getStudentNumber() {
return studentNumber;
}
public String getName() {
return name;
}
public double getMathScore() {
return mathScore;
}
public double getEnglishScore() {
return englishScore;
}
public double getComputerScore() {
return computerScore;
}
public double calcAverageScore() {
return (mathScore + englishScore + computerScore) / 3;
}
@Override
public String toString() {
return String.format("学号:%s,姓名:%s,数学成绩:%.2f,外语成绩:%.2f,计算机成绩:%.2f",
studentNumber, name, mathScore, englishScore, computerScore);
}
}
public class Main {
public static void main(String[] args) {
CStudent[] students = new CStudent[3]; // 建立学生对象数组
// 输入所有学生信息
students[0] = new CStudent("1001", "张三", 80, 90, 85);
students[1] = new CStudent("1002", "李四", 75, 85, 95);
students[2] = new CStudent("1003", "王五", 90, 80, 90);
// 打印所有学生信息
for (CStudent student : students) {
System.out.println(student);
}
// 查找学号为n的学生信息
String targetNumber = "1002";
for (CStudent student : students) {
if (student.getStudentNumber().equals(targetNumber)) {
System.out.println("查找到学生信息:" + student);
break;
}
}
// 按平均分排序并输出
Arrays.sort(students, (s1, s2) -> Double.compare(s2.calcAverageScore(), s1.calcAverageScore())); // 使用 Lambda 表达式排序
System.out.println("按平均分排序后的学生信息:");
for (CStudent student : students) {
System.out.println(student);
}
}
}
```
希望这段代码可以帮助您解决问题。如果您有任何其他问题,欢迎随时向我提问。
阅读全文