黑马程序员技术交流社区
标题:
【记录】代码练习-录入学生成绩并总分排序到文本文件中
[打印本页]
作者:
Kevin.Kang
时间:
2015-7-29 15:44
标题:
【记录】代码练习-录入学生成绩并总分排序到文本文件中
package com.kxg_2;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
/*
* 需求:键盘录入5个学生信息(姓名,语数英成绩),按照总分从高到底存入文本文件
*
* 分析:
* A:创建学生类
* B:创建集合对象
* TreeSet<Student>
* C:键盘录入学生信息存储到集合
* D:遍历集合,把数据写到文本文件
*/
public class StudentDemo {
public static void main(String[] args) throws IOException {
// 创建集合,并用比较器排序
TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num = s1.getSum() - s2.getSum();
int num2 = num == 0 ? s1.getChinese() - s2.getChinese() : num;
int num3 = num2 == 0 ? s1.getMath() - s2.getMath() : num2;
int num4 = num3 == 0 ? s1.getEnglish() - s2.getEnglish() : num3;
int num5 = num4 == 0 ? s1.getName().compareTo(s2.getName())
: num4;
return num5;
}
});
// 定义五次循环,循环一次录入一个对象
for (int i = 1; i <= 5; i++) {
// 录入学生姓名,语数英成绩
Scanner sc = new Scanner(System.in);
System.out.println("请录入第" + i + "位学生");
System.out.println("姓名:");
String name = sc.nextLine();
System.out.println("语文成绩:");
int chinese = sc.nextInt();
System.out.println("数学成绩:");
int math = sc.nextInt();
System.out.println("英语成绩:");
int english = sc.nextInt();
// 创建学生对象,添加学生信息
Student s = new Student();
s.setName(name);
s.setChinese(chinese);
s.setMath(math);
s.setEnglish(english);
// 把学生对象添加到集合中去
ts.add(s);
}
// 封装需要写入的文件
BufferedWriter bw = new BufferedWriter(new FileWriter("student.txt"));
bw.write("学生信息如下:");
bw.newLine();
bw.flush();
bw.write("学生姓名,语文成绩,数学成绩, 英语成绩");
bw.newLine();
bw.flush();
// 遍历得到每个学生对象
for (Student s : ts) {
// 定义字符串缓冲区
StringBuilder sb = new StringBuilder();
// 添加学生信息添加到字符串缓冲区中
sb.append(s.getName()).append(",").append(s.getChinese())
.append(",").append(s.getMath()).append(",")
.append(s.getEnglish());
// 把字符串缓冲区转成字符串类型写入到文件中去
bw.write(sb.toString());
bw.newLine();
bw.flush();
}
// 切记:释放资源,不然数据写不进去
bw.close();
}
}
复制代码
作者:
郝志学
时间:
2015-8-29 20:10
受教了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2