题目要求:
键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台

分析:
1,定义一个学生类
* 成员变量:姓名,语文成绩,数学成绩,英语成绩
* 成员方法:空参构造,有参构造;有参构造的参数分别是:姓名,语文成绩,数学成绩,英语成绩
* toString方法,遍历集合中的Student对象打印对象引用的时候会显示属性值
* 2,键盘录入需要Scanner,创建键盘录入对象
* 3,创建TreeSet集合对象,在TreeSet的构造函数中 传入比较器,按照总分比较
* 4,录入五个学生,所以,以集合中的学生个数为判断条件,如果size是小于5,就进行存储
* 5,将录入的字符串切割,用逗号切割,会返回一个字符串数组,将字符串数组中从第二个元素转换成int数组
* 6,将转换后的结果封装成Student对象,将Student添加到TreeSet集合中
* 7,遍历TreeSet集合打印每一个Student对象

package com.wsq.test;import java.util.Comparator;import java.util.Scanner;import java.util.TreeSet;import com.wsq.bean.Student;public class Test7  {//2,键盘录入需要Scanner,创建键盘录入对象Scanner wsq =  new Scanner(System.in); System.out.println("请输入学生成绩,格式是:姓名,语文成绩,数学成绩,英语成绩");//3,创建TreeSet集合对象,在TreeSet的构造函数中 传入比较器,按照总分比较TreeSet<Student > yy = new TreeSet<>(new Comparator<Student>() {@Overridepublic int compare(Student s1, Student s2) {int num = s2.getSum() - s1.getSum();return num == 0 ? 1 :num ;}});//4,录入五个学生,所以,以集合中的学生个数为判断条件,如果size是小于5,就进行存储while(yy.size() < 5){//5,将录入的字符串切割,用逗号切割,会返回一个字符串数组,将字符串数组中从第二个元素转换成int数组String line = wsq.nextLine();String [] arr = line.split(",");int chinese = Integer.parseInt(arr[1]);int math = Integer.parseInt(arr[2]);int english = Integer.parseInt(arr[3]);//6,将转换后的结果封装成Student对象,将Student添加到TreeSet集合中yy.add(new Student(arr[0],chinese,math,english));}//7,遍历TreeSet集合打印每一个Student对象System.out.println("排序后的学生信息:");for (Student s : yy) {System.out.println(s);}}}
package com.wsq.bean;
/*1,定义一个学生类成员变量:姓名,语文成绩,数学成绩,英语成绩成员方法:空参构造,有参构造;有参构造的参数分别是:姓名,语文成绩,数学成绩,英语成绩toString方法,遍历集合中的Student对象打印对象引用的时候会显示属性值
*/
public class Student {private  String name;private int chinese;private int math;private int english;private int sum;public Student() {super();}public Student(String name, int chinese, int math, int english) {super();this.name = name;this.chinese = chinese;this.math = math;this.english = english;this.sum = this.chinese + this.math + this.english;}public int getSum() {return sum;}public String toString(){return name + "," + chinese + "," + math + "," + english + "," + sum;}}

Java——集合(输入5个学生的信息按总分高低排序)相关推荐

  1. 实验1 输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束

    实验1   输入若干个学生的信息(学号.姓名.成绩),当输入学号为0时结束,用单向链表组织这些学生信息后,再按顺序输出. 输入:          输出: 1 zhang 78          1 ...

  2. 学生的基本信息包括学号、姓名、成绩, 写出表示学生数据的结构类型,编写一个程序,输入整数n,再输入n个学生的信息,输出成绩最高的学生信息。

    学生的基本信息包括学号.姓名.成绩, 写出表示学生数据的结构类型,编写一个程序,输入整数n,再输入n个学生的信息,输出成绩最高的学生信息. 代码如下: #include<stdio.h>s ...

  3. java学籍管理系统_JavaWeb实现学生学籍信息管理系统

    1 项目简介 1.1项目意义 学校学生管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础.在此,基于SpringMVC模式编写了学生学籍管理网站. 1.2项目说明 该项目主要开发针对学校学 ...

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

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

  5. java基于ssm的高校学生学籍信息管理系统

    该大学生学籍管理系统,采用了jsp的mvc结构模式开发,利用mysql作为系统后台数据库,实现了大学生学籍信息的登记以及管理等. 学生学籍管理系统,采用了bs技术模式开发,用于高校设计的参考学习,也用 ...

  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的学生健康信息管理系统

    项目功能: 学生端: 检查公告查询 我的病原史信息查询 我的传染病信息查询 我的身体健康查询 我的心里健康查询 管理员端: 人员管理 班级管理 学院管理 检查公告管理 学生病原史信息管理 学生传染病信 ...

  7. java集合输入存储_Java练习IO流使用Properties集合存储数据并...

    案例: package IO; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; ...

  8. C语言:某班有N名同学,每个学生的信息包括学号、姓名、三门课的成绩,从键盘输入名学生的信息,打印出N名学生三门课的平均成绩,以及最高分学生的信息(包括学号,姓名,三门课的成绩,平均分)

    /*某班有N名同学,每个学生的信息包括学号.姓名.三门课的成绩,从键盘输入名学生的信息, 打印出N名学生三门课的平均成绩,以及最高分学生的信息(包括学号,姓名,三门课的成绩,平均分)*/ #inclu ...

  9. java hashset应用_三.java集合的应用

    目录 需求一:存放学生信息 定义学生类,按年龄升序,将学生信息存放在集合中,遍历学生的信息(Student注释部分为后续的HashSet使用,此处可忽略) 思路:①定义一个学生类,声明name,age ...

最新文章

  1. 供SAPI中TTS功能用使的Win8.1语言包安装
  2. 使用 Eclipse Memory Analyzer 进行堆转储文件分析
  3. java ajax搜索框提示,Javaweb-案例练习-2-给搜索框添加提示
  4. glassfish发布应用_WildFly 8与GlassFish 4 –选择哪个应用服务器
  5. mysql期末考试试卷_mysql试题
  6. Nginx http 视频点播服务器搭建操作指南
  7. 关于数据分析用到的统计学知识
  8. C#中计算两个时间的差
  9. 关于TCP/IP协议
  10. 蚂蚁(挑战程序设计竞赛)
  11. PLSQL注册码,亲测,可用
  12. coreldraw怎么打印荣誉证书_教你如何打印大于A4尺寸的荣誉证书和奖状
  13. ACCESS-入门思维导图
  14. springboot整合jett导出数据(2)
  15. [附源码]计算机毕业设计JAVA新能源汽车租赁管理系统
  16. 使用opencv python进行手检测和手指计数
  17. 分享 stormzhang的Andoid学习之路
  18. 科技兴盛下,传统银行该如何转型?
  19. 比尔盖茨小时候的故事
  20. 【黑客免杀攻防】读书笔记1 - 初级免杀基础理论(反病毒软件特征码提取介绍、免杀原理、壳)...

热门文章

  1. 移动app显示远程服务器错误,KIS移动应用常见问题汇总
  2. Angularjs基础(三)
  3. 【原】相煎何太急——input的blur事件与button的click事件
  4. django中间件及中间件实现的登录验证
  5. css的再深入9(更新中···)
  6. Bootstrap中的条纹进度条使用案例
  7. 页面重构-让我们的布局自适应
  8. SpringBoot 参数符号转义,用这个包下面的类
  9. oracle快速插入大量数据
  10. memcpy、memmove、memset、memchr、memcmp、strstr详解