阅读以下说明和Java代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应

题库2022-08-02  51

问题 阅读以下说明和Java代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。【说明】某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前30%的学生。【Java代码】import java.io.*; class Student {   private String sNO;       //学号   private int Credit;  //分数   public int getCredit( ){    return Credit;   }   public String toString() {    return "sNO = " + this.sNO + ", Credit = " + this.Credit;   }    Student(String sNO, int Credit){      (1)   = sNO;      (2)   = Credit;   }} public class SortStudent {       void sort(Student[ ] s) { //Sort the array s[ ] in descending order of    Credit    for (int i = 0; i < s.length-1; i++) {           for (int .j = i+1; j < s.length; j++) {  if (s.  (3)  < s[j].  (4)  ) {   Student tmp = s;   s = s[j];   s[j] = tmp;  }}    }    }       public static void main(String argv[ ]) {    Student[ ] testStudent = new Student[size];    try {BufferedReader in = new BufferedReader(new FileReader("students.txt"));boolean done = false; int i = 0;while (!done) {  String s = in.readLine();   //每次读取一个学生的学号和成绩  if (s != null) {   String tmp[ ] = s.split(",");   testStudent[i++] =   (5)  (tmp[0], Integer.parseInt   (tmp[1]));  } else   done = true;}in.close();  (6)   = new SortStudent();ss.sort(testStudent);System.out.println("top 30%:");for (int j = 0; j < size * 0.3; j++)  System.out.println(testStudent[j]);    } catch (IOException e) {System.out.println("io error!");    }catch (NumberFormatException e) {System.out.println("not a number!");    }    }      (7)   int size = 100; //学生总数}

选项

答案

解析 (1)this.sNO
(2)this.Credit
(3)getCredit()
(4)getCredit()
(5)new Student
(6)SortStudent ss
(7)static 或static final

首先分析程序的整体结构,本题中定义了两个类:Student和SortStudent,分别用于定义学生和进行排序。类Student的定义中,第一部分为private访问权限的成员,要对其进行访问,需要通过具有相应访问权限的成员函数。
Student类的构造器方法的参数和类中属性同名,需要用this标识符进行区分,因此前面俩空需要用this表明当前Student的属性。
  SortStudent类中的成员函数sort和Student类的对象所构成的对象数组根据分数进行排序,而由于在Strdent类中学号和分数为private访问权限,不可从外部直接访问,所以要通过getCredit而得到。
  Main函数中需要将学生信息读入,并根据学生信息创建对象并加入对象数组。空(5)为new Student。空(6)处根据其所在的语句右侧new SortStudent以及其后序语句ss.sort的方法调用,可知,需要声明SortStudent类的对象引用ss,所以空(6)处为SortStrdent ss。空(7)处是属性size的类型描述,size是作为作为数组大小的参数,其值不可变,因此是static 或者static final。
转载请注明原文地址:https://tihaiku.com/congyezige/2427661.html

最新回复(0)