复制
收藏
提问
简洁

设计学生类Student,内含如下属性:学号(int id)、姓名(String name)、数学成绩(int math)、英语成绩(int english)、计算机成绩(int cs)。创建对象数组, 并将数组进行初始化。 程序运行时,从键盘输入一个整数,根据输入的整数,将学生对象按相应的排序方式输出。将学生对象按照如下规则输出: 1、若键盘输入的是整数是1,则输出按姓名从小到大排序输出; 2、若键盘输入的整数是2,则排名规则是:按数学成绩从大到小排名;若数学成绩相同,则按英语成绩从大到小排序。 3、默认的排序方式是按学号从小到大排序。 提示:利用Arrays类的静态方法sort对学生数组进行排序. 【输入形式】输入一个整数n,换行以后再输入n个学生的信息。学生信息的顺序为:学号,姓名,数学成绩,英语成绩,计算机成绩。 【输出形式】 【样例输入】 3 【样例输出】 Student{id=10, name='wangli', math=89, english=79, cs=88} Student{id=28, name='Katefd', math=88, english=68, cs=88} Student{id=35, name='Caoyue', math=69, english=69, cs=86} Student{id=36, name='zhansa', math=70, english=70, cs=83} Student{id=47, name='wanhua', math=98, english=80, cs=88} Student{id=52, name='wanhai', math=71, english=81, cs=89} Student{id=63, name='liwuab', math=89, english=78, cs=88} 【样例说明】 输入是3,输入即不等于1也不等于2的时候,则按学号从小到大排序。 ```java import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Student[] stu = { new Student(28,"Katefd",88,68,88), new Student(10,"wangli",89,79,88), new Student(35,"Caoyue",69,69,86), new Student(36,"zhansa",70,70,83), new Student(47,"wanhua",98,80,88), new Student(52,"wanhai",71,81,89), new Student(63,"liwuab",89,78,88) }; int n = sc.nextInt(); //在下面补充代码,根据输入的整数,按规则进行排名 //补充完毕 for (Student s:stu) { System.out.println(s); } sc.close(); } } //在下面补充相应代码

3月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

根据题目要求,我们需要设计一个Student类,并创建一个对象数组。然后根据用户输入的整数,使用Arrays.sort()方法对学生数组进行排序,并输出排序后的学生信息。下面是完成这个任务的步骤和代码示例。

步骤 1: 定义Student

首先,我们需要定义一个Student类,包含学号、姓名、数学成绩、英语成绩和计算机成绩等属性。

class Student {
    int id;
    String name;
    int math;
    int english;
    int cs;

    public Student(int id, String name, int math, int english, int cs) {
        this.id = id;
        this.name = name;
        this.math = math;
        this.english = english;
        this.cs = cs;
    }

    @Override
    public String toString() {
        return "Student{id=" + id + ", name='" + name + '\'' +
               ", math=" + math + ", english=" + english + ", cs=" + cs + '}';
    }
}

步骤 2: 创建对象数组并初始化

接下来,创建一个Student数组,并初始化一些学生对象。

Student[] stu = {
    new Student(28, "Katefd", 88, 68, 88),
    new Student(10, "wangli", 89, 79, 88),
    new Student(35, "Caoyue", 69, 69, 86),
    new Student(36, "zhansa", 70, 70, 83),
    new Student(47, "wanhua", 98, 80, 88),
    new Student(52, "wanhai", 71, 81, 89),
    new Student(63, "liwuab", 89, 78, 88)
};

步骤 3: 根据输入的整数进行排序

使用Scanner类从键盘读取一个整数,然后根据这个整数的值,使用Arrays.sort()方法对Student数组进行排序。

Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine(); // 读取换行符

// 根据输入的整数进行排序
if (n == 1) {
    Arrays.sort(stu, new Comparator<Student>() {
        public int compare(Student s1, Student s2) {
            return s1.name.compareTo(s2.name);
        }
    });
} else if (n == 2) {
    Arrays.sort(stu, new Comparator<Student>() {
        public int compare(Student s1, Student s2) {
            if (s1.math != s2.math) {
                return s2.math - s1.math;
            }
            return s2.english - s1.english;
        }
    });
} else {
    Arrays.sort(stu, new Comparator<Student>() {
        public int compare(Student s1, Student s2) {
            return s1.id - s2.id;
        }
    });
}

步骤 4: 输出排序后的学生信息

最后,遍历排序后的Student数组,并输出每个学生的信息。

for (Student s : stu) {
    System.out.println(s);
}
sc.close();

这段代码将根据用户输入的整数,按照题目要求的规则对学生数组进行排序,并输出排序后的学生信息。1234578910

你觉得结果怎么样?

以上内容由AI搜集生成,仅供参考

在线客服