首页上一页 1 下一页尾页 2 条记录 1/1页
求解
发表在Java图书答疑
2014-08-23
是否精华
是
否
版块置顶:
是
否
public class Student implements Comparable<Student>{
private String name;
private int ma,cn,en;
private int sum;
Student(String name,int ma, int cn, int en){
this.name = name;
this.ma = ma;
this.cn = cn;
this.en = en;
sum = ma + cn + en;
}
public int compareTo(Student s){
int num = new Integer(this.sum).compareTo(new Integer(s.sum));
if(num == 0)
return this.name.compareTo(s.name);
return num;
}
public String getName(){
return name;
}
public int getSum(){
return sum;
}
public String toString(){
return "student("+name+", "+ma+", "+cn+", "+en+")";
}
public int hashCode(){
return name.hashCode() + sum*78;
}
public boolean equals(Object obj){
if(!(obj instanceof Student))
throw new ClassCastException("类型不匹配");
Student s = (Student)obj;
return this.name.equals(s.name)&& this.sum == s.sum;
}
}
public class StudentInfoToole {
public static Set<Student> getStudent() throws IOException{
return getStudent(null);
}
public static Set<Student> getStudent(Comparator<Student> cmp) throws NumberFormatException, IOException{
BufferedReader bufr
=new BufferedReader(new InputStreamReader(System.in));
String line = null;
Set<Student> stus = null;
if(cmp == null)
stus = new TreeSet<Student>();
else
stus = new TreeSet<Student>(cmp);
while((line = bufr.readLine())!= null){
if("over".equals(line))
break;
String[] info = line.split(",");
Student stu = new Student(info[0],Integer.parseInt(info[1]),Integer.parseInt(info[2]),
Integer.parseInt(info[3]));
//parseInt(String s)
}
bufr.close();
return stus;
}
public static void Write2File(Set<Student> stus)throws IOException{
BufferedWriter bufw =
new BufferedWriter(new FileWriter("e://stuInfo.txt"));
for(Student stu : stus){
bufw.write(stu.toString()+"\t");
bufw.write(stu.getSum()+"");
bufw.newLine();
bufw.flush();
}
bufw.close();
}
}public class StudentInfoTest {
public static void main(String[] args) throws IOException {
Comparator<Student> cmp = Collections.reverseOrder();
Set<Student> Stus = StudentInfoToole.getStudent(cmp);//调用方法
StudentInfoToole.Write2File(Stus);
}
}
private String name;
private int ma,cn,en;
private int sum;
Student(String name,int ma, int cn, int en){
this.name = name;
this.ma = ma;
this.cn = cn;
this.en = en;
sum = ma + cn + en;
}
public int compareTo(Student s){
int num = new Integer(this.sum).compareTo(new Integer(s.sum));
if(num == 0)
return this.name.compareTo(s.name);
return num;
}
public String getName(){
return name;
}
public int getSum(){
return sum;
}
public String toString(){
return "student("+name+", "+ma+", "+cn+", "+en+")";
}
public int hashCode(){
return name.hashCode() + sum*78;
}
public boolean equals(Object obj){
if(!(obj instanceof Student))
throw new ClassCastException("类型不匹配");
Student s = (Student)obj;
return this.name.equals(s.name)&& this.sum == s.sum;
}
}
public class StudentInfoToole {
public static Set<Student> getStudent() throws IOException{
return getStudent(null);
}
public static Set<Student> getStudent(Comparator<Student> cmp) throws NumberFormatException, IOException{
BufferedReader bufr
=new BufferedReader(new InputStreamReader(System.in));
String line = null;
Set<Student> stus = null;
if(cmp == null)
stus = new TreeSet<Student>();
else
stus = new TreeSet<Student>(cmp);
while((line = bufr.readLine())!= null){
if("over".equals(line))
break;
String[] info = line.split(",");
Student stu = new Student(info[0],Integer.parseInt(info[1]),Integer.parseInt(info[2]),
Integer.parseInt(info[3]));
//parseInt(String s)
}
bufr.close();
return stus;
}
public static void Write2File(Set<Student> stus)throws IOException{
BufferedWriter bufw =
new BufferedWriter(new FileWriter("e://stuInfo.txt"));
for(Student stu : stus){
bufw.write(stu.toString()+"\t");
bufw.write(stu.getSum()+"");
bufw.newLine();
bufw.flush();
}
bufw.close();
}
}public class StudentInfoTest {
public static void main(String[] args) throws IOException {
Comparator<Student> cmp = Collections.reverseOrder();
Set<Student> Stus = StudentInfoToole.getStudent(cmp);//调用方法
StudentInfoToole.Write2File(Stus);
}
}