[说明]
某数据文件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; //学生总数
(3)处应填()。
参考答案:getCredit()