键盘录入学生信息按照总分排序并写入文本

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("学生信息录入完毕");
		}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unknown To Known

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值