未来AI 2021-04-06 17:32 采纳率: 50%
浏览 62
已采纳

这个代码可能有语法上的错误,但不知道哪里错了?

在Student类中有两个属性(学生成绩和id),在另一个Bubblesort类中建立一个数组,数组中为Student中属性的值,使用冒泡排序将学生的成绩进行冒泡排序,并输出学生的id。(不知道哪里错了呀,请大佬解答一下)

一、Student类

package assignment2;

public class Student {
    
    int Grade;
    String studentID;
    
    public void setGrade(int Grade){
        this.Grade = Grade;
    }
    
    public int getGrade(){
        return Grade;
    }
    
    public void setStudentID(String studentID){
        this.studentID = studentID;
    }
    
    public String getStudentID(){
        return studentID;
    }

}

二、Bubblesort类

package assignment2;

public class BubbleSort {
    
    public static void BubbleSort(Student[] stu){
        
        if(stu == null || stu.length == 1){
            return;
        }
        
        for(int i=0;i<stu.length-1;i++){
        
            boolean ifSorted = true;
            
            for(int j=0;j<stu.length-1-i;j++){
            
                Student temp;
                if(stu[j].getGrade()>stu[j+1].getGrade()){
                    
                    temp=stu[j];
                    stu[j]=stu[j+1];
                    stu[j+1]=temp;
                    
                    ifSorted = false;
                }
            }
            
            if(ifSorted) return;
            
            System.out.println("排序后: ");
            for(int j=0;j<stu.length;j++){
                
                System.out.println(stu[j].getStudentID());
            }
        }
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        Student[] stu = new Student[5];
        stu[0].setStudentID("001");
        stu[1].setStudentID("002");
        stu[2].setStudentID("003");
        stu[3].setStudentID("004");
        stu[4].setStudentID("005");
        stu[0].setGrade(89);
        stu[1].setGrade(92);
        stu[2].setGrade(73);
        stu[3].setGrade(65);
        stu[4].setGrade(86);
        
        System.out.print("排序前:");
        
        for(int j=0;j<stu.length;j++){
            
            System.out.println(stu[j].getStudentID());
        }
        
        BubbleSort(stu);
        
    }

}
 

  • 写回答

3条回答 默认 最新

  • CSDN专家-三岁丫 2021-04-06 17:46
    关注
    public class Test {
      public static void main(String[] args){
        Student[] stu = new Student[5];
        // 先初始化
        for (int i = 0; i < 5; i++) {
          stu[i] = new Student();
        }
        stu[0].setStudentID("001");
        stu[1].setStudentID("002");
        stu[2].setStudentID("003");
        stu[3].setStudentID("004");
        stu[4].setStudentID("005");
        stu[0].setGrade(89);
        stu[1].setGrade(92);
        stu[2].setGrade(73);
        stu[3].setGrade(65);
        stu[4].setGrade(86);
    
        System.out.print("排序前:");
    
        for(int j=0;j<stu.length;j++){
    
          System.out.println(stu[j].getStudentID());
        }
        
        // 调用其他类的静态方法,需要带上类名
        BubbleSort.BubbleSort(stu);
      }
    }
    
    class BubbleSort {
    
      public static void BubbleSort(Student[] stu) {
    
        if (stu == null || stu.length == 1) {
          return;
        }
           
        for (int i = 0; i < stu.length - 1; i ++) {
          for (int j = 0; j < stu.length - 1 - i; j ++) {
            if (stu[j].getGrade() > stu[j + 1].getGrade()) {
              Student temp = stu[j];
              stu[j] = stu[j + 1];
              stu[j + 1] = temp;
            }
          }
        }
        
        // 修改了打印位置
        System.out.println("排序后: ");
        for (int j = 0; j < stu.length; j++) {
          System.out.println(stu[j].getStudentID());
        }
      }
    }
    
    class Student {
    
      int Grade;
      String studentID;
    
      public void setGrade(int Grade){
        this.Grade = Grade;
      }
    
      public int getGrade(){
        return Grade;
      }
    
      public void setStudentID(String studentID){
        this.studentID = studentID;
      }
    
      public String getStudentID(){
        return studentID;
      }
    
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料