定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int) 在本题中使用封装性应用。 现有计算机专业的学生,需要你写出计算机专业学生类(类名自定义),父类为学生类设定专业主修课程major。创建30个计算机专业学生对象,学号为1到30,成绩为随机数据,打印出3年级(state 3)的学生信息,使用冒泡排序按学生成绩排序,遍历所有学生信息。测试中显示自己的名字和学号。 提示:生成随机数:Math.random(),返回值类型double; 四舍五入取整:Math.round(double d),返回值类型为long;
时间: 2024-03-26 08:41:28 浏览: 54
写一个类Student,包含三个属性学号id,姓名name和年龄age;要求覆盖基类Object中的ToString()方法和Equals()方法,使得直接输出Student对象时输出的是对象的id,name和age信息;并且当两个对象的学号相同时认为它们相等;
4星 · 用户满意度95%
好的,以下是根据你的要求编写的Java程序:
```java
// 学生类
class Student {
private int number; // 学号
private int state; // 年级
private int score; // 成绩
// 构造方法
public Student(int number, int state, int score) {
this.number = number;
this.state = state;
this.score = score;
}
// getter方法
public int getNumber() {
return number;
}
public int getState() {
return state;
}
public int getScore() {
return score;
}
// setter方法
public void setNumber(int number) {
this.number = number;
}
public void setState(int state) {
this.state = state;
}
public void setScore(int score) {
this.score = score;
}
}
// 计算机专业学生类
class ComputerMajorStudent extends Student {
private String major; // 专业主修课程
// 构造方法
public ComputerMajorStudent(int number, int state, int score, String major) {
super(number, state, score);
this.major = major;
}
// getter方法
public String getMajor() {
return major;
}
// setter方法
public void setMajor(String major) {
this.major = major;
}
}
// 测试类
public class StudentTest {
public static void main(String[] args) {
// 创建30个计算机专业学生对象
ComputerMajorStudent[] students = new ComputerMajorStudent[30];
for (int i = 0; i < students.length; i++) {
int number = i + 1;
int state = (int) (Math.random() * 4) + 1; // 年级为1到4中的随机整数
int score = (int) Math.round(Math.random() * 100); // 成绩为0到100中的随机整数
String major = "计算机科学";
students[i] = new ComputerMajorStudent(number, state, score, major);
}
// 打印出3年级(state 3)的学生信息
System.out.println("姓名:[你的姓名],学号:10.0,3年级的学生信息:");
for (int i = 0; i < students.length; i++) {
if (students[i].getState() == 3) {
System.out.println("学号:" + students[i].getNumber() + ",年级:" + students[i].getState() + ",成绩:" + students[i].getScore());
}
}
// 冒泡排序按学生成绩排序
for (int i = 0; i < students.length - 1; i++) {
for (int j = 0; j < students.length - 1 - i; j++) {
if (students[j].getScore() > students[j + 1].getScore()) {
ComputerMajorStudent temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
// 遍历所有学生信息
System.out.println("\n姓名:[你的姓名],学号:10.0,所有学生信息:");
for (int i = 0; i < students.length; i++) {
System.out.println("学号:" + students[i].getNumber() + ",年级:" + students[i].getState() + ",成绩:" + students[i].getScore());
}
}
}
```
请将代码中的 [你的姓名] 替换成你的真实姓名。
在这个程序中,我们定义了一个 `Student` 类,包含了学号、年级、成绩三个属性,使用封装性进行了封装,并提供了相应的 getter 和 setter 方法。接着定义了一个 `ComputerMajorStudent` 类,它继承了 `Student` 类并添加了一个专业主修课程属性。然后在测试类中创建了30个 `ComputerMajorStudent` 对象,并使用随机数生成器生成了学号、年级、成绩三个属性的随机值。接着打印出了3年级学生的信息,并使用冒泡排序按学生成绩排序,最后遍历了所有学生的信息。
在这个程序中,我们使用了Math.random()和Math.round()两个方法来生成随机数,并使用了冒泡排序算法对学生成绩进行了排序。
阅读全文