用Java编写设计 3 个类 , 分别是学生类 Student, 本科生类 Undergaduate, 研究生类 Postgraduate, 其中 Student 类是一个抽象类 , 它包含一些基本的学生信息如姓名、所学课程、课程成绩等 , 而 Undergraduate 类和 Postgraduate 都是 Student 类的子类 , 它们之间的主要差别是计算课程成绩等级的方法有所不同 , 研究生的标准要比本科生的标准高一些 , 如下表所示。 本科生标准 研究生标准 80-100 优秀 90-100 优秀 70-80 良好 80-90 良好 60-70 一般 70-80 一般 50-60 及格 60-70 及格 50以下 不及格 60以下 不及格 假设某班级里既有本科生也有研究生 , 请编写程序统计出全班学生的成绩等级并显示出来。此题关键是设计一个学生数组 , 既能存放本科生对象 , 又能存放研究生对象。
时间: 2023-06-27 18:04:23 浏览: 170
下面是我编写的代码:
```
// 学生类
public abstract class Student {
private String name;
private String course;
private int score;
public Student(String name, String course, int score) {
this.name = name;
this.course = course;
this.score = score;
}
public String getName() {
return name;
}
public String getCourse() {
return course;
}
public int getScore() {
return score;
}
public abstract String getGrade();
}
// 本科生类
public class Undergraduate extends Student {
public Undergraduate(String name, String course, int score) {
super(name, course, score);
}
@Override
public String getGrade() {
if (getScore() >= 80) {
return "优秀";
} else if (getScore() >= 70) {
return "良好";
} else if (getScore() >= 60) {
return "一般";
} else if (getScore() >= 50) {
return "及格";
} else {
return "不及格";
}
}
}
// 研究生类
public class Postgraduate extends Student {
public Postgraduate(String name, String course, int score) {
super(name, course, score);
}
@Override
public String getGrade() {
if (getScore() >= 90) {
return "优秀";
} else if (getScore() >= 80) {
return "良好";
} else if (getScore() >= 70) {
return "一般";
} else if (getScore() >= 60) {
return "及格";
} else {
return "不及格";
}
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Student[] students = new Student[5];
students[0] = new Undergraduate("张三", "Java编程", 85);
students[1] = new Postgraduate("李四", "算法设计", 92);
students[2] = new Undergraduate("王五", "操作系统", 73);
students[3] = new Postgraduate("赵六", "数据库系统", 81);
students[4] = new Undergraduate("钱七", "计算机网络", 64);
for (Student student : students) {
System.out.println(student.getName() + "的成绩等级是:" + student.getGrade());
}
}
}
```
在上面的代码中,我们创建了一个抽象类 `Student` 来存储学生信息,其中包含了姓名、所学课程和课程成绩三个属性,并且定义了一个抽象方法 `getGrade()` 来计算成绩等级。然后我们创建了两个子类 `Undergraduate` 和 `Postgraduate` 来继承 `Student` 类,并分别重写了 `getGrade()` 方法来根据不同的标准计算成绩等级。
最后我们在测试类中创建了一个学生数组 `students`,并且将不同类型的学生对象存入其中。然后我们遍历这个学生数组,调用每个学生对象的 `getGrade()` 方法来计算成绩等级,并输出结果。