用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 21:04:52 浏览: 206
抽象类接口和包
下面是三个类的代码实现:
```java
// 学生类
public abstract class Student {
protected String name; // 姓名
protected String course; // 所学课程
protected int score; // 课程成绩
public Student(String name, String course, int score) {
this.name = name;
this.course = course;
this.score = score;
}
// 计算成绩等级的抽象方法
public abstract String getGrade();
// 打印学生信息
public void printInfo() {
System.out.println("姓名:" + name);
System.out.println("课程:" + course);
System.out.println("成绩:" + score);
System.out.println("成绩等级:" + getGrade());
}
}
// 本科生类
public class Undergraduate extends Student {
public Undergraduate(String name, String course, int score) {
super(name, course, score);
}
// 实现计算成绩等级的方法
@Override
public String getGrade() {
if (score >= 80) {
return "优秀";
} else if (score >= 70) {
return "良好";
} else if (score >= 60) {
return "一般";
} else if (score >= 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 (score >= 90) {
return "优秀";
} else if (score >= 80) {
return "良好";
} else if (score >= 70) {
return "一般";
} else if (score >= 60) {
return "及格";
} else {
return "不及格";
}
}
}
```
接下来是主程序的实现,其中使用了 `Student` 的数组来存储学生对象,并通过循环遍历数组来打印每个学生的信息和成绩等级。
```java
public class Main {
public static void main(String[] args) {
Student[] students = new Student[4];
students[0] = new Undergraduate("张三", "Java", 95);
students[1] = new Postgraduate("李四", "Python", 85);
students[2] = new Undergraduate("王五", "C++", 60);
students[3] = new Postgraduate("赵六", "数据挖掘", 75);
for (Student student : students) {
student.printInfo();
System.out.println();
}
}
}
```
输出结果如下:
```
姓名:张三
课程:Java
成绩:95
成绩等级:优秀
姓名:李四
课程:Python
成绩:85
成绩等级:良好
姓名:王五
课程:C++
成绩:60
成绩等级:一般
姓名:赵六
课程:数据挖掘
成绩:75
成绩等级:一般
```
阅读全文