设计一个教师类 Teacher ,要求如下: ①基本特征包括工号,姓名,学生成绩(声明一维数组存储学生成绩,从键盘接收学生个数); ②设计一个能初始化工号、姓名的构造方法;另一个构造方法能初始化所有教师特征; ③行为包括: 202206( i )计算所有学生的总成绩; ( ii )计算所有学生的平均成绩; ( iii )输出教师的工号、姓名、总成绩和平均成绩; 2、编写测试类 Test ,接收用户输入的工号,姓名以及学生的成绩,输出学生的总成绩和平均成绩。
时间: 2024-03-09 22:47:43 浏览: 91
好的,我可以为您设计一个满足要求的教师类 Teacher 和测试类 Test,具体代码如下:
Teacher类:
```java
import java.util.Scanner;
public class Teacher {
private String id; // 工号
private String name; // 姓名
private int[] scores; // 学生成绩
// 构造方法1:初始化工号、姓名
public Teacher(String id, String name) {
this.id = id;
this.name = name;
}
// 构造方法2:初始化所有教师特征
public Teacher(String id, String name, int[] scores) {
this.id = id;
this.name = name;
this.scores = scores;
}
// 计算所有学生的总成绩
public int getTotalScore() {
int totalScore = 0;
for (int i = 0; i < scores.length; i++) {
totalScore += scores[i];
}
return totalScore;
}
// 计算所有学生的平均成绩
public double getAverageScore() {
double averageScore = 0.0;
int totalScore = getTotalScore();
if (scores.length > 0) {
averageScore = totalScore * 1.0 / scores.length;
}
return averageScore;
}
// 输出教师的工号、姓名、总成绩和平均成绩
public void printTeacherInfo() {
System.out.println("工号:" + id);
System.out.println("姓名:" + name);
System.out.println("总成绩:" + getTotalScore());
System.out.println("平均成绩:" + getAverageScore());
}
// 获取学生成绩
public int[] getScores() {
return scores;
}
// 设置学生成绩
public void setScores(int[] scores) {
this.scores = scores;
}
}
```
Test类:
```java
public class Test {
public static void main(String[] args) {
// 从键盘接收学生个数
System.out.print("请输入学生个数:");
Scanner scanner = new Scanner(System.in);
int studentCount = scanner.nextInt();
// 从键盘接收学生成绩
int[] scores = new int[studentCount];
for (int i = 0; i < studentCount; i++) {
System.out.print("请输入第" + (i + 1) + "个学生的成绩:");
scores[i] = scanner.nextInt();
}
// 初始化教师对象
Teacher teacher = new Teacher("T001", "张三", scores);
// 输出教师的工号、姓名、总成绩和平均成绩
teacher.printTeacherInfo();
}
}
```
在Test类中,我们先从键盘接收学生个数,然后再根据学生个数从键盘接收学生成绩,并将学生成绩传递给教师对象初始化。最后,输出教师的工号、姓名、总成绩和平均成绩。
注意:为了简化代码,上述示例中省略了异常处理等相关代码。在实际应用中,我们需要对用户的输入进行合法性校验,避免出现异常情况。
阅读全文