黑马程序员技术交流社区

标题: 输入学生成绩,编译没有问题,只能存一个学生的成绩 [打印本页]

作者: 梁秋瑜    时间: 2013-5-25 23:20
标题: 输入学生成绩,编译没有问题,只能存一个学生的成绩
本帖最后由 梁秋瑜 于 2013-5-27 20:43 编辑

public class Student implements Comparable<Student> {
private String name;
private int chinese;
private int math;
private int english;
private int sum;
public Student() {
  super();
}
public Student(String name, int chinese, int math, int english) {
  super();
  this.name = name;
  this.chinese = chinese;
  this.math = math;
  this.english = english;
  this.sum = chinese + math + english;
}
@Override
public String toString() {
  return name + "," + chinese + "," + math + "," + english + "," + sum;
}
@Override
public int compareTo(Student o) {
  // TODO Auto-generated method stub
  int x = this.sum - o.sum;
  return x == 0 ? 1 : 0;
}
}
public class Exersicer5 {

public static void main(String[] args) throws IOException {
  Scanner sc = new Scanner(System.in);
  Set<Student> set = new TreeSet<>();
  System.out.println("请输入学生的成绩,按格式输入:姓名,chinese的成绩,math的成绩,english的成绩,如:张帅,89,89,87");
   while (sc.hasNext()) {
   String s = sc.nextLine();
   if ("quit".equals(s)) {
    sc = new Scanner(new FileInputStream("student.txt"));
    continue;
   
   }
   
   String[] arr = s.split(",");
   Student st = new Student(arr[0],Integer.parseInt(arr[1]),Integer.parseInt(arr[2]),Integer.parseInt(arr[3]));
   set.add(st);
  }
   System.out.println("输出排序后的成绩:");
   BufferedWriter bw = new BufferedWriter (new FileWriter("student.txt"));
   for (Student st : set) {
    System.out.println(st);
    bw.write(st.toString());
    bw.newLine();
   
  }
   bw.close();
   
   
}
}
//编译没什么问题,就是没能得到想要的结果,只能存一个学生的成绩,应该是可以保存学生的成绩并保存的

作者: 王靖远    时间: 2013-5-25 23:37
貌似是测试题,太长了。明天没解决在看。我也要做这一题呢。
作者: 陈潜    时间: 2013-5-26 00:10
两个地方:
1、
  1.         public int compareTo(Student o) {
  2.                 // TODO Auto-generated method stub
  3.                 int x = this.sum - o.sum;
  4.                 return x == 0 ? 0 : 1;        //这一句话你return的值弄反了
  5.         }
复制代码
2、
  1.                 sc.close();                                //关闭资源
  2.                 System.out.println("输出排序后的成绩:");
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2