列表

详情


阅读以下说明和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[i].  (3)  < s[j].  (4)  ) {
   Student tmp = s[i];
   s[i] = 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。

上一题