博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO流的练习4 —— 键盘录入学生成绩信息,进行排序后存入文本中
阅读量:5270 次
发布时间:2019-06-14

本文共 4047 字,大约阅读时间需要 13 分钟。

需求:

  键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件

分析:

  A:创建学生类
  B:创建集合对象
      TreeSet<Student>
  C:键盘录入学生信息存储到集合
  D:遍历集合,把数据写到文本文件

 

首先创建个学生类

1 package zl_Test; 2 /** 3  * 这是个记录学生成绩类 4  * @author LZL 5  * 6  */ 7 public class Student { 8     private String name; 9     private int chinese;10     private int math;11     private int english;12     13     14     public Student() {15         super();16         // TODO Auto-generated constructor stub17     }18 19 20     public Student(String name, int chinese, int math, int english) {21         super();22         this.name = name;23         this.chinese = chinese;24         this.math = math;25         this.english = english;26     }27 28 29     public String getName() {30         return name;31     }32 33 34     public void setName(String name) {35         this.name = name;36     }37 38 39     public int getChinese() {40         return chinese;41     }42 43 44     public void setChinese(int chinese) {45         this.chinese = chinese;46     }47 48 49     public int getMath() {50         return math;51     }52 53 54     public void setMath(int math) {55         this.math = math;56     }57 58 59     public int getEnglish() {60         return english;61     }62 63 64     public void setEnglish(int english) {65         this.english = english;66     }67     68     public int getsum() {69          return this.chinese + this.english + this.math;70         71 72     }73     74 }
View Code

 

具体实现类:

1 package zl_Test; 2  3 import java.io.BufferedWriter; 4 import java.io.FileWriter; 5 import java.io.IOException; 6 import java.util.Comparator; 7 import java.util.Scanner; 8 import java.util.TreeSet; 9 10 public class StudentDemo {11 12     public static void main(String[] args) throws IOException {13         // 创建集合对象14         TreeSet
ts = new TreeSet
(new Comparator
() {15 // 比较器16 public int compare(Student s1, Student s2) {17 18 int num1 = s2.getsum() - s1.getsum();19 int num2 = num1 == 0 ? s2.getChinese() - s1.getChinese() : num1;20 int num3 = num2 == 0 ? s2.getMath() - s1.getMath() : num2;21 int num4 = num3 == 0 ? s2.getName().compareTo(s1.getName())22 : num3;23 return num4;24 25 }26 });27 28 // 键盘录入学生信息29 for (int x = 0; x < 5; x++) {30 Scanner sc = new Scanner(System.in);31 32 System.out.println("请输入学生姓名:");33 String name = sc.nextLine();34 System.out.println("请输入语文成绩");35 int chinese = sc.nextInt();36 System.out.println("请输入数学成绩");37 int math = sc.nextInt();38 System.out.println("请输入英语成绩");39 int english = sc.nextInt();40 41 // 创建学生对象,调用学生类42 Student s = new Student();43 s.setName(name);44 s.setChinese(chinese);45 s.setMath(math);46 s.setEnglish(english);47 48 // 把信息添加到集合中49 ts.add(s);50 }51 52 // 文本打开能看得懂的信息,用缓冲字符流53 // 创建缓冲字符输出流对象54 BufferedWriter bw = new BufferedWriter(new FileWriter("student.txt"));55 // 先写文本里面的内容56 bw.write("学生成绩记录");57 bw.newLine();58 bw.flush();59 bw.write("语文成绩" + "\t" + "数学成绩" + "\t" + "英语成绩");60 bw.newLine();61 bw.flush();62 63 // 遍历集合,把得到的数据添加到文件中64 for (Student student : ts) {65 // 对得到的信息进行拼接66 StringBuilder sb = new StringBuilder();67 sb.append(student.getName() + "\t\t")68 .append(student.getChinese() + "\t\t")69 .append(student.getMath() + "\t\t")70 .append(student.getEnglish());71 bw.write(sb.toString());72 bw.newLine();73 }74 bw.close();75 System.out.println("学生成绩存储完毕");76 }77 }

 

转载于:https://www.cnblogs.com/LZL-student/p/5927791.html

你可能感兴趣的文章
stm8s_IAP_xmode串口升级
查看>>
usb 编程知识 总结
查看>>
2016.7.15 落实字符及字符串读取的结果
查看>>
他看了几千份技术简历,愿意把技术简历的秘籍传授给你
查看>>
Struts2学习(三)
查看>>
学习Linux的第十二课时
查看>>
使用电子邮件模板
查看>>
IoC 依赖注入、以及在Spring中的实现
查看>>
机器学习 —— 概率图模型(贝叶斯网络)
查看>>
树、森林和二叉树的转换
查看>>
Array:Missing Number
查看>>
数列有序!
查看>>
jQuery1.11源码分析(2)-----Sizzle源码中的正则表达式[原创]
查看>>
javascript面向对象学习(一)
查看>>
高可用redis 缓存搭建
查看>>
10分钟理解JS引擎的执行机制
查看>>
转 memcached 一致性hash原理
查看>>
Extjs Column布局常见问题及解决方法
查看>>
微信JS-SDK官方示例程序
查看>>
nginx实现请求的负载均衡 + keepalived实现nginx的高可用
查看>>