/*有五个学生,每个学生有3门课(语文、数学、英语)的成绩,
* 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课 成绩),
* 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。
* 要求:stu.txt文件的格式要比较直观,打开这个文件, 就可以很清楚的看到学生的信息。
*/
public class StudentTest {
public static void main(String[] args) throws IOException {
// 首先定义一个TreeSet,用于存储学生
TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
// 主要条件的是分数的高低
int num = (s2.getChinese() + s2.getMath() + s2.getEnglish())
- (s1.getChinese() + s1.getMath() + s1.getEnglish());
// 次要条件
int num2 = (num == 0) ? (s1.getName().compareTo(s2.getName()))
: num;
return num2;
}
});
// 键盘录入学生信息
// 封装键盘录入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入格式为:姓名,语文成绩,数学成绩,英语成绩:");
for (int x = 0; x < 5; x++) {
String line = br.readLine();
// 张三,90,80,70
String[] strArray = line.split(",");
// 创建学生对象
Student s = new Student();
s.setName(strArray[0]);
s.setChinese(Integer.parseInt(strArray[1]));
s.setMath(Integer.parseInt(strArray[2]));
s.setEnglish(Integer.parseInt(strArray[3]));
// 添加学生
ts.add(s);
}
br.close();
// 写入文本文件
BufferedWriter bw = new BufferedWriter(new FileWriter("stu.txt"));
bw.write("姓名\t语文成绩\t数学成绩\t英语成绩");
bw.newLine();
bw.flush();
// 遍历TreeSet
for (Student s : ts) {
bw.write(s.getName() + "\t" + s.getChinese() + "\t" + s.getMath()
+ "\t" + s.getEnglish());
bw.newLine();
bw.flush();
}
bw.close();
System.out.println("学生录入完毕");
}
}
|