Keyboard input student information sorted by total score and write text

package cn.itcast_05;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

/*
 * 键盘录入学生信息(姓名 语文成绩,数学成绩,英语成绩)按照总分排序并写入文本 
 * 
 *  分析:
 *   A:创建学生类
 *   B:创建集合对象
 *    TreeSet<Student>
 *   C:键盘录入数据存储到集合中
 *   D:遍历集合,把数据写到文本文件
 *   
 */
public class 键盘录入学生信息按照总分排序并写入文本 {
    
    
         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 = s2.sum() - s1.sum();
					int num2 = num == 0 ? s1.getYun() - s2.getYun() : 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 x = 1 ;x<5 ; x++ ) {
    
    
        		 Scanner sc = new Scanner(System.in);
        		 System.out.println("请输入第" + x +"个的学生信息");
        		 System.out.println("姓名");
                  String name = sc.nextLine();
                  System.out.println("语文成绩");
                  int yun = sc.nextInt();
                  System.out.println("数学成绩");
                  int math = sc.nextInt();
                  System.out.println("英语成绩");
                  int english = sc.nextInt();
                  
                  //创建学生对象
                  Student s = new Student();
                  s.setEnglish(english);
                  s.setMath(math);
                  s.setName(name);
                  s.setYun(yun);
                  
                  //把学生信息添加到集合
                  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) {
    
    
        		StringBuffer tb = new StringBuffer();
        		tb.append(s.getName()).append("  ").append(s.getYun()).append("  ")
        		.append(s.getMath()).append("  ").append(s.getEnglish()).append("  ");
        		bw.write(tb.toString());
        		bw.newLine();
        		bw.flush();
        	 }
        	 //释放资源
        	 bw.close();
        	 System.out.println("学生信息录入完毕");
		}
}

Guess you like

Origin blog.csdn.net/kaszxc/article/details/108686842