【JAVASE基础】对象的相关练习:对象数组题目

对象数组题目:
定义类Student,包含三个属性:学号number(int),年级state(int),成绩
score(int)。创建20个学生对象, 学号为1到20,年级和成绩都由随机数确定。
问题一:打印出3年级(state值为3)的学生信息。|
问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
提示:
1)生成随机数: Math.random(), 返回值类型double;
2)四舍五入取整: Math.round(double d), 返回值类型long。

/*
* 定义一个学生类
* */
public class Student {
    //定义属性
    int number;
    int state;
    int score;
    //打印学生信息的方法,代码复用
    public void showStuinfo(){
        System.out.println("number="+number+",state="+state+",score="+score);

    }


}

/*
* 创建一个学生测试类
* */
public class StudentTest {
    public static void main(String[] args) {
        //创建一个动态数组,数据类型为引用数据类型
        Student[] studentarr = new Student[20];
        //用for循环创建对象
        for (int i = 0; i < 20; i++) {
            //new出一个对象
            Student student = new Student();
            //给对象的属性赋值
            student.number = i + 1;

            student.state = (int) (Math.random() * 10) + 1;
            student.score = (int) (Math.random() * 100);
            //将new出的地址值赋给数组
            studentarr[i] = student;
            //打印3年级学生信息
            if (studentarr[i].state == 3) {
                student.showStuinfo();
            }
        }
        System.out.println("*********************");
        //打印全部的学生信息
        for (int i = 0; i < studentarr.length; i++) {
            studentarr[i].showStuinfo();
        }
        System.out.println("*********************");
        //冒泡排序
        //外层循环
        for (int i = 0; i < 20; i++) {
            //内层循环
            for (int j = 0; j < (20 - i - 1); j++) {
                if (studentarr[j].score > studentarr[j + 1].score) {

                    Student swap = studentarr[j];

                    studentarr[j] = studentarr[j + 1];

                    studentarr[j + 1] = swap;
                }


            }

        }
        System.out.println("__________________________");
        for (int i = 0; i < studentarr.length; i++) {
            studentarr[i].showStuinfo();
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值