题库 题库

【简答题】

试题六(共15分)
    阅读以下说明和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 decending 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分)
(2)this.Credit                        (2分)
(3)getCredit()                        (2分)
(4)getCredit()                        (2分)
(5)new Student                        (3分)
(6)SortStudent ss                     (2分)
(7)static,或static final             (2分)

相关试题