设计一个类Student,该类包括姓名、学号和成绩。设计一个方法, 按照成绩从高到低的顺序输出姓名、学号和成绩信息。
// 1. 输入学生人数 inputScanner // 2. 创建该学生人数数量的元素的数组 inputScanner // 3. 随机该数组对象的name,id,score变量 inputRandom // 4. 按照score的大小进行排序 sort // 5. 输出数组对象及其变量 output
Student 类
package practice03;
/** 设计一个类Student,该类包括姓名、学号和成绩。设计一个方法,
* 按照成绩从高到低的顺序输出姓名、学号和成绩信息。*/
// 1. 输入学生人数 inputScanner
// 2. 创建该学生人数数量的元素的数组 inputScanner
// 3. 随机该数组对象的name,id,score变量 inputRandom
// 4. 按照score的大小进行排序 sort
// 5. 输出数组对象及其变量 output
import java.util.Random;
import java.util.Scanner;
public class Student {
String name;
String id;
int score;
//输入学生人数并创建该学生人数数量的元素的数组
public static Student[] inputScanner(){
System.out.println("请输入学生人数:");
int num = new Scanner(System.in).nextInt();
return new Student[num];
}
//随机该数组对象的name,id,score变量
public static Student[] inputRandom(Student[] stu){
Random rand = new Random();
char[] ln = new char[30];
char[] fn = new char[30];
String lastName = "李王张刘陈杨赵黄周吴徐孙胡朱高林何郭马罗梁宋郑谢韩唐冯于董萧";
String firstName = "静伟芳琼嘉男睿浩博瑞昊悦妍涵玥蕊子梓宇俊轩宇泽杰豪雨梓欣子思";
for (int i = 0; i <stu.length ; i++) {
//随机分数
stu[i]=new Student();
stu[i].score = (int)(Math.random()*100);
//随机学号
int ran = (int)(Math.random()*1000000);
stu[i].id = String.valueOf(ran);
while (stu[i].id.length() < 6){
stu[i].id = "0" + stu[i].id;
}
//随机姓名
int ram = rand.nextInt(30);
int ram2 = rand.nextInt(30);
int ram3 = rand.nextInt(30);
stu[i].name = (lastName.charAt(ram)+""+firstName.charAt(ram2)+""+firstName.charAt(ram3));
}
return stu;
}
//按照每个对象的score的大小进行排序
public static void sort(Student[] stu) {
for (int i = 0; i <stu.length-1 ; i++) {
for (int j = 0; j < stu.length-1 ; j++) {
if(stu[j].score < stu[j+1].score){
Student t = stu[j];
stu[j] = stu[j+1];
stu[j+1] = t;
}
}
}
}
//输出每个对象的每个属性
public static void output(Student[] stu){
for(Student arr:stu) {
System.out.println("姓名:"+arr.name+"\t学号:"+arr.id+"\t分数:"+arr.score+"分");
}
}
}
Test 类
package practice03;
public class Test {
public static void main(String[] args) {
Student[] stu01 = Student.inputScanner();//接收一个有用户输入的数量的元素的学生数组
Student[] stu02 = Student.inputRandom(stu01);//对该数组的三大变量进行随机取值
Student.sort(stu02);//根据分数从高到低排序
Student.output(stu02);//遍历输出
}
}
效果如下: