package Object_test;
/*
* 对象数组题目:
* 定义类Student,包含三个属性:学号ID(int),年级state(int),成绩score(int),创建20个学生对象
* 学号为1到20,年级和成绩都由随机数确定。
* 问题一:打印三年级的学生信息。
* 问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息。
* 提示:
* 1)生成随机数:Math.random(),返回值类型是double,范围[0,1)
* 2)四舍五入取整:Math.round(double d),返回值类型long
*/
public class Class_Member_test4 {
public static void main(String[] args){
Student st = new Student();
//声明Student类型的数组,一共二十个
Student[] stus = new Student[20];
//按要求给每个学号赋值
for(int i = 0; i<stus.length; i++){
stus[i] = new Student(); //注意,如果没有这句话报错 java.lang.NullPointerException
//学号从1到20
stus[i].id = i+1;
//年级[1,3]
stus[i].state = (int)(Math.random()*(3-1+1)+1);
//分数[60,100]
stus[i].score = (int)(Math.random()*(100-60+1)+60);
}
//遍历数组中所有元素
st.all_input(stus);
// for(int i = 0; i<stus.length;i++){
// System.out.println(stus[i].info());
// }
//分割线
System.out.println("--------------------------");
//输出年级为3的学生信息
for(int i = 0; i<stus.length; i++){
if(stus[i].state == 3){
System.out.println(stus[i].info());
}
}
//分割线
System.out.println("--------------------------");
//使用冒泡排序按学生成绩排序,并遍历所有学生信息。
for(int i = 0; i<stus.length; i++){
for(int j = 1; j < stus.length -i; j++){
if(stus[j-1].score > stus[j].score){
Student temp = new Student();
temp = stus[j];
stus[j] = stus[j-1];
stus[j-1] = temp;
}
}
}
//分割线
System.out.println("+++++++++++++++++++");
//遍历数组中所有元素
st.all_input(stus);
// for(int i = 0; i<stus.length;i++){
// System.out.println(stus[i].info());
// }
}
}
class Student{ //定义类的时候class Student{}就行了,而不是class Student(){}
int id; //学号
int state; //年级
int score; //分数
//显示学生信息方法
public String info(){
return "学生的学号是:" + id + ",年级是:" + state + ",成绩是:" + score;
}
//遍历数组中所有元素并输出
public void all_input(Student[] stus){
for(int i = 0; i<stus.length;i++){
System.out.println(stus[i].info());
}
}
}