如图
Studern为自己定义的一个类
Studernd类
package com.atguigu.exer;
public class Studernd4 {
int number;//学号
int state;//年级
int score;//成绩
@Override
public String toString() {
return "Studernd4{" +
"学号=" + number +
", 年级=" + state +
", 成绩=" + score +
'}';
}
//创建length长度的Studernd数组并且赋随机初值
public Studernd4[] create(int length) {
int i;
Studernd4[] studernd = new Studernd4[length];
for (i = 0; i < length; i++) {
studernd[i] = new Studernd4();
studernd[i].number = i + 1;
studernd[i].state = (int) Math.round(Math.random() * 6 + 0.5);
studernd[i].score = (int) Math.round(Math.random() * 100);
}
return studernd;
}
//打印年纪为state的信息
public void print(Studernd4[] studernd,int state) {
int i;
System.out.println("年级为"+state+"的有:");
for (i = 0; i < studernd.length; i++) {
if (studernd[i].state == state) {
System.out.println(studernd[i]);
}
}
}
/**
* 成绩降序排列并且打印
* @param studernd
*/
public void SortAndprint(Studernd4[] studernd) {
int i;
Studernd4 temp;
for (i = 0; i < studernd.length; i++) { /* 外循环为排序趟数,len个数进行len-1趟 */
for (int j = 0; j < studernd.length - 1 - i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
if (studernd[j].score < studernd[j + 1].score) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
temp = studernd[j];
studernd[j] = studernd[j + 1];
studernd[j + 1] = temp;
}
}
}
System.out.println("按成绩降序排列:");
for (i = 0; i < studernd.length; i++) {
System.out.println(studernd[i]);
}
}
}
package com.atguigu.exer;
public class Studernd4Test {
public static void main(String[] args) {
//实例化一个Studernd4对象
Studernd4 studernd4 = new Studernd4();
//创建一个Studernd4数组
Studernd4[] studernd = studernd4.create(80);
studernd4.print(studernd,6);
studernd4.SortAndprint(studernd);
}
}