未来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;
      }
    
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • CSDN专家-三岁丫 2021-04-06 17:38
    关注

    首先是在使用 Student[] 中的元素时,你需要初始化。即  stu[i] = new Student(),然后才能 stu[i].setStudentID("xxx")

    评论
  • 有问必答小助手 2021-04-06 18:36
    关注

    您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 网络打印机Ip地址自动获取出现问题
  • ¥15 求局部放电案例库,用于预测局部放电类型
  • ¥100 QT Open62541
  • ¥15 stata合并季度数据和日度数据
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
  • ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?
  • ¥15 用QT,进行QGIS二次开发,如何在添加栅格图层时,将黑白的矢量图渲染成彩色
  • ¥50 监控摄像头 乐橙和家亲版 保存sd卡的文件怎么打开?视频怎么播放?
  • ¥15 Python的Py-QT扩展库开发GUI
  • ¥60 提问一下周期性信信号的问题