如题:

*        需求:键盘录入五个学生信息(姓名,语文成绩,数学成绩,英语成绩)。要求按照成绩总分从高到低写入文本文件
*      格式:姓名,语文成绩,数学成绩,英语成绩 举例:林青霞,98,98,100
*      思路:
*          1、定义学生类
*          2、创建TreeSet集合,通过比较器排序进行排序
*          3、键盘录入学生数据
*          4、创建学生对象,把键盘录入到数据对应赋值给学生对象的成员变量
*          5、把学生对象添加到TreeSet集合
*          6、创建字符缓冲输出流对象
*          7、遍历集合,得到每一个学生对象
*          8、把学生对象的数据拼接为指定格式的字符串
*          9、调用字符缓冲输出流对象的方法写入数据
*          10、释放资源
package IO流案例;/*** @ClassName Student* @Description 学生类 姓名,数学成绩,语文成绩,英语成绩,* @Author chenxys* @Date 2022/2/21 12:11* @Version*/
public class Student {private String name;//姓名private int math; //数学成绩private int chinese;//语文成绩private int english;//英语成绩//构造器public Student() {}public Student(String name, int chinese, int math, int english) {this.name = name;this.math = math;this.chinese = chinese;this.english = english;}//get;setpublic String getName() {return name;}public void setName(String name) {this.name = name;}public int getMath() {return math;}public void setMath(int math) {this.math = math;}public int getChinese() {return chinese;}public void setChinese(int chinese) {this.chinese = chinese;}public int getEnglish() {return english;}public void setEnglish(int english) {this.english = english;}public int getTotal() {//获取总分return this.chinese+this.english+this.math;}//tostring@Overridepublic String toString() {final StringBuffer sb = new StringBuffer("Student{");sb.append("name='").append(name);sb.append(",chinese=").append(chinese);sb.append(",math=").append(math);sb.append(",english=").append(english);sb.append("}");return sb.toString();}
}
package IO流案例;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;/*** @ClassName TreeSetFileDemo* @Description 需求:键盘录入五个学生信息(姓名,语文成绩,数学成绩,英语成绩)。要求按照成绩总分从高到低写入文本文件*      格式:姓名,语文成绩,数学成绩,英语成绩 举例:林青霞,98,98,100*      思路:*          1、定义学生类*          2、创建TreeSet集合,通过比较器排序进行排序*          3、键盘录入学生数据*          4、创建学生对象,把键盘录入到数据对应赋值给学生对象的成员变量*          5、把学生对象添加到TreeSet集合*          6、创建字符缓冲输出流对象*          7、遍历集合,得到每一个学生对象*          8、把学生对象的数据拼接为指定格式的字符串*          9、调用字符缓冲输出流对象的方法写入数据*          10、释放资源** @Author chenxys* @Date 2022/2/21 12:14* @Version*/
public class TreeSetFileDemo {public static Scanner sc = new Scanner(System.in);//键盘输入public static void main(String[] args) throws IOException {//创建TreeSet集合,通过比较器进行排序TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {//成绩总分从高到低int num = o2.getTotal() - o1.getTotal();//次要条件//[总分相同,则比较语文成绩]int num2 =num == 0 ? o1.getChinese() - o2.getChinese() :num;//[总分相同,语文成绩相同,则比较数学成绩]int num3 = num2 == 0 ? o1.getMath() - o2.getMath() :num2;//[总分相同,语文成绩相同,数学成绩相同,则比较姓名]int num4 = num3 == 0? o1.getName().compareTo(o2.getName()) : num3;return num4;}});//3、键盘录入学生数据for (int i = 0; i < 5; i++) {System.out.println("请录入第"+(i+1)+"个学生信息");System.out.println("姓名:");String name = sc.next();//获取键盘输入的姓名System.out.println("语文成绩:");int chinese = sc.nextInt();System.out.println("数学成绩:");int math = sc.nextInt();System.out.println("英语成绩:");int english = sc.nextInt();//4、创建学生对象Student s = new Student();s.setName(name);s.setChinese(chinese);s.setEnglish(english);s.setMath(math);//5、添加到TreeSet集合ts.add(s);}// 6、创建字符缓冲输出流对象BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/chenys/Desktop/test1/text1.txt"));//7、遍历集合,得到每一个学生对象for (Student s:ts) {//8、把学生对象的数据拼接为指定格式的字符串StringBuilder sb = new StringBuilder();sb.append(s.getName()).append(",").append(s.getChinese()).append(",").append(s.getMath()).append(",").append(s.getEnglish()).append(",").append(s.getTotal());//9、调用字符缓冲输出流对象的方法写入数据bw.write(sb.toString());bw.newLine();//换行bw.flush();}//10、关闭资源sc.close();bw.close();}
}
请录入第1个学生信息
姓名:
阿陈
语文成绩:
100
数学成绩:
100
英语成绩:
100
请录入第2个学生信息
姓名:
阿章
语文成绩:
90
数学成绩:
90
英语成绩:
100
请录入第3个学生信息
姓名:
阿赵
语文成绩:
80
数学成绩:
90
英语成绩:
98
请录入第4个学生信息
姓名:
阿刘
语文成绩:
98
数学成绩:
99
英语成绩:
98
请录入第5个学生信息
姓名:
阿何
语文成绩:
99
数学成绩:
98
英语成绩:
97

结果:

键盘录入五个学生信息(姓名,语文成绩,数学成绩,英语成绩)。要求按照成绩总分从高到低写入文本文件相关推荐

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

    分析: 创建一个学生类: 姓名,语文成绩(chineseScore),数学成绩(mathScore),英语成绩(englishScore)因为要排序,所以需要选择TreeSet进行存储学生对象键盘录入 ...

  2. 键盘录入五个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台

    package cn.itcast_06;import java.util.Comparator; import java.util.Scanner; import java.util.TreeSet ...

  3. IO流(1)-键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件...

    1.先写一个Student类 public class Student {private String name;private int chinese;private int math;privat ...

  4. java键盘录入三个学生信息,编一程序,从键盘输入学生的三门课程成绩,求其总... 编一个程序,功能是从键盘输入三个整数,将其由小到......

    导航:网站首页 > 编一程序,从键盘输入学生的三门课程成绩,求其总... 编一个程序,功能是从键盘输入三个整数,将其由小到... 编一程序,从键盘输入学生的三门课程成绩,求其总... 编一个程序 ...

  5. java键盘循环输入5个学生的成绩_键盘录入5个学生的信息根据总分从高到低输出在控制台...

    第一部分: public class Student { private String name; private Integer chinese; private Integer math; pri ...

  6. 编写C语言代码,实现以下功能:有N名学生,每个人的信息包括学号、姓名和语文、数学、英语、平均分等内容(用结构体表示 ),输出平均分排名倒数第2的学生信息。

    编写C语言代码,实现以下功能: 有N名学生,每个人的信息包括学号.姓名和语文.数学.英语.平均分等内容(用结构体表示 ),输出平均分排名倒数第2的学生信息. #define _CRT_SECURE_N ...

  7. java 有五个学生 每个学生有3门课_1、有五个学生,每个学生有3门课(语文、数学、英语)的成绩, 写一...

    1.有五个学生,每个学生有3门课(语文.数学.英语)的成绩, 写一 关注:145  答案:1  mip版 解决时间 2021-02-03 03:21 提问者神经质 2021-02-02 11:38 1 ...

  8. 【C语言结构体题】定义用于存储学生信息的结构体数组,输入学生的准考证号、姓名和成绩信息,计算总分,并按总分由高到低输出。

    在此基础上,增加下列功能函数 1.学生信息查询功能,根据学生的准考证号查询学生成绩信息 2.学生信息插入功能,在结构体数组的指定位置插入学生信息 3.学生信息删除功能,根据准考证号来删除满足条件的学生 ...

  9. 【水汐のC#】计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩。实现如下要求的功能:

    设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理学生的学号,姓名,语文,数学和英语3门课程的期末考试成绩.实现如下要求的功能: 根据姓名查询该学生的总成绩: 统计全班学生总分的 ...

最新文章

  1. Qt rviz 机器人
  2. 阶乘和matlab实现
  3. Windows Phone Dev Notes-如何使用ConnectionSettingsTask 来启动连接设置页面
  4. MongoDB 2.6.4 主从同步
  5. window wamp中配置安装xhprof步骤(windows)
  6. prometheus python client
  7. 手术步骤_近视飞秒激光手术和传统Lasik手术比较
  8. 视频:PNAS报道纤维化扩展中“旁张力信号”介导的细胞间机械通讯
  9. RS信号制java程序,java – 如何部署一个JAX-RS应用程序?
  10. 金三银四大厂面经总结,java模块化打包
  11. OpenCV学习笔记——多种Smooth平滑处理
  12. Eclipse+Maven搭建Wbe项目(1)
  13. java 加密工具包_加密工具类 - CryptoUtils.java
  14. 《老路用得上的商学课》46-50学习笔记
  15. Flink 可视化开发平台--Streamx部署
  16. SpringBoot 2.X 整合 druid + dynamic-datasource 多数据源方案
  17. Uva 437 巴比伦塔  UVA10003
  18. HTML重构:工具篇
  19. 压电雨量传感器不堵不粘维护简单的设计结构
  20. 药品市场分析怎么写?(总结归纳了20份药品报告的经验分享)

热门文章

  1. Sentienl 流控效果之匀速排队与预热实现原理与实战建议
  2. UE百度编辑器的使用
  3. [WARNING] The POM for com.tenyears:base-common:jar:1.0 is invalid, transitive dependen
  4. 使用freemarker导出excel不兼容2007问题
  5. Python编程:从入门到实践 9-6~9-8
  6. window.open()弹框页面交互+表格数据回显以及跨页回显
  7. 基于python + opencv的视频播放调节功能
  8. 茄子快传数据分析之活跃用户和新增用户数据分析
  9. Android开发技巧——设置系统状态栏颜色
  10. HUST 1408 公交系统