设计一个学生类,包含学生的姓名、学号、课程数(不可修改)、各门课程的成绩;可以获取学生的学号,但不能修改;可以获取和修改姓名;可以输入和读取成绩;可以获得学生的平均成绩。 写出具体类的成员方法和函数定义,并写出测试的main函数
时间: 2024-09-26 07:04:34 浏览: 32
为了设计一个学生类,我们可以创建一个名为`Student`的类,包含姓名(name)、学号(id)、课程数量(courseCount)以及成绩数组(grades)。由于学号通常在创建时确定,我们将其设为final,不允许修改。姓名和成绩可以进行读写操作。平均成绩则是通过计算所有成绩的平均值得到。
```java
public class Student {
private final String id;
private String name;
private int courseCount;
private double[] grades;
// 构造函数,接收学号和姓名
public Student(String id, String name) {
this.id = id;
this.name = name;
this.courseCount = 0;
this.grades = new double[5]; // 假设最多5门课程
}
// 获取学号的方法
public String getId() {
return id;
}
// 设置和获取姓名的方法
public void setName(String newName) {
name = newName;
}
public String getName() {
return name;
}
// 添加成绩的方法
public void addGrade(double grade) {
if (courseCount < grades.length) {
grades[courseCount++] = grade;
} else {
throw new IllegalStateException("已达到最大课程数限制");
}
}
// 获取平均成绩的方法
public double getAverageGrade() {
if (courseCount == 0) {
return 0.0;
} else {
double sum = 0.0;
for (double grade : grades) {
sum += grade;
}
return sum / courseCount;
}
}
// 测试的main函数
public static void main(String[] args) {
Student student = new Student("123456", "张三");
student.setName("李四");
student.addGrade(90);
student.addGrade(85);
System.out.println("学号:" + student.getId());
System.out.println("姓名:" + student.getName());
System.out.println("平均成绩:" + student.getAverageGrade());
}
}
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)