一个培训班(Shool)包含若干学生(Student),培训班能够计算所招学生的平均成绩,两个类具体说明如下: (1) Student类 a) 一个私有的name属性存放学生的姓名; b) 一个私有的score属性存放学生的入学成绩; c) 一个公有的不带参数的构造方法; d) 一个共有的带参数的构造方法; e) set方法和get方法; f) 一个公有的toString()方法,返回学生的姓名和成绩,格式参考如下: 张三 300.0 (2) Shool类 a) 一个私有的name属性存放培训班的名称; b) 一个私有的Student类型的数组students属性存放培训班的学生; c) 一个无参的和一个有参的构造方法; e) set和get方法; f) 一个公有的getAverageScore()方法,用于返回培训班所招学生的平均成绩, g) 一个公有的toString()方法,用于返回培训班所有学生的姓名和成绩信息,参考格式如下: 提示:调用每一个员工的toString()方法获取学生的信息。 张三 300.0 李四 320.0 王五 290.0 (1) 编程实现两个类; (2) 按要求补充2处测试类代码,测试两个类的功能; (3) 样例如下,输出培训班所有学生的姓名和成绩,并通过调用Shool类的getAverageScore() 方法 ,计算并输出培训班学生的平均成绩: import java.util.Scanner; public class TestShool { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); Student stu1 = new Student(scanner.next(), scanner.nextDouble()); Student stu2 = new Student(scanner.next(), scanner.nextDouble()); Student stu3 = new Student(scanner.next(), scanner.nextDouble()); Shool shool = new Shool(); Student[] students={stu1,stu2,stu3}; //补充代码1:把数组students添加到shool对象中 System.out.println("姓名\t\t" + "成绩"); System.out.println("-------------------------"); System.out.println(shool.toString()); //补充代码:按照样例输出培训班所招学生的平均成绩 } }
时间: 2024-01-23 14:01:34 浏览: 101
建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。
4星 · 用户满意度95%
下面是两个类的代码实现,以及补充代码的测试类代码:
Student类:
```java
public class Student {
private String name;
private double score;
public Student() {}
public Student(String name, double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public String toString() {
return name + "\t" + score;
}
}
```
Shool类:
```java
public class Shool {
private String name;
private Student[] students;
public Shool() {}
public Shool(String name, Student[] students) {
this.name = name;
this.students = students;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student[] getStudents() {
return students;
}
public void setStudents(Student[] students) {
this.students = students;
}
public double getAverageScore() {
double sum = 0.0;
for (Student s : students) {
sum += s.getScore();
}
return sum / students.length;
}
public String toString() {
String result = "";
for (Student s : students) {
result += s.toString() + "\n";
}
return result;
}
}
```
测试类代码:
```java
import java.util.Scanner;
public class TestShool {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Student stu1 = new Student(scanner.next(), scanner.nextDouble());
Student stu2 = new Student(scanner.next(), scanner.nextDouble());
Student stu3 = new Student(scanner.next(), scanner.nextDouble());
Shool shool = new Shool();
Student[] students = {stu1, stu2, stu3};
shool.setStudents(students); // 补充代码1:把数组students添加到shool对象中
System.out.println("姓名\t\t" + "成绩");
System.out.println("-------------------------");
System.out.println(shool.toString());
// 补充代码2:按照样例输出培训班所招学生的平均成绩
System.out.println("平均成绩:" + shool.getAverageScore());
}
}
```
测试结果示例:
输入:
```
张三 300
李四 320
王五 290
```
输出:
```
姓名 成绩
-------------------------
张三 300.0
李四 320.0
王五 290.0
平均成绩:303.3333333333333
```
阅读全文