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

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

在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 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器