package 演示练习;
//记录键盘信息,格式为 name,23,24,14,然后按照后面三门成绩的总和进行排序,存储到本地 (学生成绩单.txt)中
//思路,首先记录各组信息,并对他们进行求和排序
import java.io.*;
import java.util.*;
class student implements Comparable<student> //定义类,使其实现Comparable,具有比较性,既可以排序
{String name; //定义泛型,限制传入值,是Student类的本类或子类,不然无法排序,存储会出错
int yuwen;
int shuxue;
int yingyu;
private int sum;
student(String name,String a,String b,String c)//按要求设置构造函数
{
this.name=name;
yuwen =Integer.parseInt(a);
shuxue=Integer.parseInt(b);
yingyu=Integer.parseInt(c);
sum=yuwen+shuxue+yingyu;
}
int getsum()
{
return sum;
}
public int compareTo(student st)//覆写接口的compareTo方法,必须覆写
{if(this.getsum()==st.getsum())
return this.name.compareTo(st.name);
return st.getsum()- this.getsum();
}
}
public class 学生信息存储练习 {
public static void main(String[] args)throws Exception
{
// TODO 自动生成的方法存根
//源是System.in
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//中间是TreeSet集合
TreeSet<student> stuinfo=new TreeSet();
String st=null;
while(!(st=br.readLine()).equals("ok"))
{String[] stu=st.split(",");
stuinfo.add(new student(stu[0],stu[1],stu[2],stu[3]));}
br.close();
//目的是,写入本地文件,字符流
BufferedWriter bw=new BufferedWriter(new FileWriter("学生成绩单.txt"));
int num=1;
bw.write(" 高一六班期中成绩单");
bw.newLine();
bw.write("名次 姓名 语文 数学 英语 总分");
bw.newLine();
bw.flush();
for(student stu:stuinfo)
{
bw.write(" "+num+""+stu.name+""+stu.yuwen+""+stu.shuxue+" "+stu.yingyu+""+stu.getsum());
bw.newLine();
num++;
bw.flush();//字符流需刷新,不然会丢数据
}
bw.close();
}
}
------- android培训、java培训、期待与您交流! ----------