对象数组题目:
定义类Student,包含三个属性:学号number(int),年级state(int),成绩
score(int)。 创建20个学生对象,学号为1到20,年级和成绩都由随机数确定。
问题一:打印出3年级(state值为3)的学生信息。
问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
package com.company;
public class Student {
private int number; // 学号
private int state; // 年级
private int score; // 成绩
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
package com.company;
public class Main {
/**
* 文档注释
*
* @param args
* @lzx
*/
public static void main(String[] args) {
Student[] list = new Student[20]; // 对象数组
// 自动生成数据
for (int i = 1; i <= list.length; i++) {
Student stu = new Student();
stu.setNumber(i); //设置学号
int state = (int) (Math.random() * 6 + 1);
stu.setState(state); // 设置年级
int score = (int) (Math.random() * 100);
stu.setScore(score); // 设置分数0-99
list[i - 1] = stu; // 存对象
}
getStundentMessage(6, list);// 打印某年级的学生信息。
System.out.println("==========================================");
maoPao(list); //冒泡打印
}
public static void getStundentMessage(int state, Student[] list) {// 打印某年级的学生信息。
for (int i = 0; i < list.length; i++) {
int st = list[i].getState();
if (st == state) {
System.out.println("学号:" + list[i].getNumber() + ",年级:" + list[i].getState() + ",分数为:" + list[i].getScore());
}
}
}
public static void maoPao(Student[] list) { //冒泡排序
for (int i = 0; i < list.length; i++) {
for (int j = 0; j < list.length - 1 - i; j++) {
if (list[j].getScore() < list[j + 1].getScore()) { //分数低的交换到后面
Student temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
// 遍历打印
for (int i = 0; i < list.length; i++){
System.out.println("学号:"+list[i].getNumber() + ",年级:" + list[i].getState() + ",分数:" + list[i].getScore() );
}
}
}