面向对象(上)练习一

 1 package day1_2;
 2 
 3 /**
 4  * 定义类Student,包含三个属性,学号number(int),年级state(int),分数score(int)
 5  * 创建20个学生对象,学号为1-20号,年级[1,6]和分数[0,100]随机数确定
 6  * 问题一:打印出3年级学生的信息
 7  * 问题二:将学生的成绩按照冒泡排序,并打印学生信息
 8  */
 9 
10 public class ObjectExer {
11     public static void main(String[] args) {
12         //声明一个Student类型数组
13         Student[] students = new Student[20];
14         for (int i = 0; i < students.length; i++) {
15             //每个数组元素引用一个学生对象
16             students[i] = new Student();
17             //给每个学生对象属性赋值
18             //学号[1,20]
19             students[i].number = i+1;
20             //年级[1,6]
21             //Math.random()  返回值double类型  [0,1)
22             //使用公式 (int)(Math.random()*(max-min+1)+min)
23             students[i].state = (int)(Math.random()*(6-1+1)+1);
24             //成绩[0,100]
25             //Math.random()  返回值double类型  [0,1)
26             //方式一
27             students[i].score = (int)(Math.random()*(100-0+1));
28             //方式二
29             //Math.round(double n)  返回值long类型  对n进行四舍五入
30             //students[i].score = (int)Math.round(Math.random()*100);
31         }
32         //遍历学生信息
33         for (int i = 0; i < students.length; i++) {
34             System.out.println(students[i].info());
35         }
36 
37         System.out.println("***************");
38         //打印出3年级学生的信息
39         for (int i = 0; i < students.length; i++) {
40             if(students[i].state == 3){
41                 System.out.println(students[i].info());
42             }
43         }
44 
45         System.out.println("**********************");
46         //将学生的成绩按照冒泡排序,并打印学生信息
47         for (int i = 0; i < students.length - 1; i++) {
48             for (int j = 0; j < students.length-i-1; j++) {
49                 if (students[j].score > students[j+1].score) {
50                     //注意:是交换学生的位置,而不是交换学生的成绩
51                     Student tmp = students[j];
52                     students[j] = students[j + 1];
53                     students[j+1] = tmp;
54                 }
55             }
56         }
57 
58         //遍历排序后的学生数组
59         for (int i = 0; i < students.length; i++) {
60             System.out.println(students[i].info());
61         }
62 
63 
64     }
65 }
66 
67 class Student{
68     int number;//学号
69     int state;//年级
70     int score;//成绩
71 
72     //显示学生信息
73     public String info() {
74         return "学号:" + number + ",班级:"+ state + ",分数:" + score;
75     }
76 }

 

posted @ 2021-01-02 21:52  dog_IT  阅读(101)  评论(0编辑  收藏  举报