标签:
/* * 3、 有五个学生,每个学生有3门课(语文、数学、英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩), * 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。 * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息 * */ import java.io.*; import java.util.*; public class Test3 { public static void main(String[] args)throws Exception{ //传入学生人数 Student(5); } //键盘录入学生,保存到stu.txt的方法 public static void Student(int number)throws Exception{ //创建Scanner对象 接受从控制台输入 Scanner in=new Scanner(System.in); //因为可能会出现姓名和总分都一样的学生,为了保证学生不丢失,建立List容器 List<Student> list=new ArrayList<>(); //循环录入学生到集合,排好顺序 System.out.println("输入格式为: 姓名,语文,数学,英语(,号是小写状态)"); for(int x=1;x<=number;x++){ System.out.println("请输入第"+x+"个学生的信息"); String[] s=in.nextLine().split(","); int a=Integer.parseInt(s[1]); int b=Integer.parseInt(s[2]); int c=Integer.parseInt(s[3]); Student stu=new Student(s[0],a,b,c); list.add(stu); } //用比较器进行总分从高到低的排序 Collections.sort(list,new StuCompare()); //定义输出流输出到stu.txt BufferedWriter bufw=new BufferedWriter(new FileWriter("stu.txt")); for(Student stu:list){ bufw.write(stu.getStu()); bufw.newLine(); bufw.flush(); } //关闭资源 in.close(); bufw.close(); } } //学生对象 class Student{ private String name; private int a, b, c,sum; //学生对象建立需要传入姓名和3门课的成绩 Student(String name, int a, int b, int c){ this.name=name; this.a=a; this.b=b; this.c=c; sum=a+b+c; } public int getsum(){ return sum; } //输出一个符合格式的字符串 public String getStu(){ return name+" 数学:"+a+" 语文:"+b+" 英语:"+c+" 总分:"+sum; } } //定义比较器,按总分排序 class StuCompare implements Comparator<Student>{ public int compare(Student s1,Student s2){ int a=new Integer(s2.getsum()).compareTo(s1.getsum()); return a; } }
有五个学生,每个学生有3门课(语文、数学、英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)
标签:
原文地址:http://www.cnblogs.com/s158/p/5092798.html