Java——集合(输入5个学生的信息按总分高低排序)
题目要求:
键盘录入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 输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束
实验1 输入若干个学生的信息(学号.姓名.成绩),当输入学号为0时结束,用单向链表组织这些学生信息后,再按顺序输出. 输入: 输出: 1 zhang 78 1 ...
- 学生的基本信息包括学号、姓名、成绩, 写出表示学生数据的结构类型,编写一个程序,输入整数n,再输入n个学生的信息,输出成绩最高的学生信息。
学生的基本信息包括学号.姓名.成绩, 写出表示学生数据的结构类型,编写一个程序,输入整数n,再输入n个学生的信息,输出成绩最高的学生信息. 代码如下: #include<stdio.h>s ...
- java学籍管理系统_JavaWeb实现学生学籍信息管理系统
1 项目简介 1.1项目意义 学校学生管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础.在此,基于SpringMVC模式编写了学生学籍管理网站. 1.2项目说明 该项目主要开发针对学校学 ...
- java键盘循环输入5个学生的成绩_键盘录入5个学生的信息根据总分从高到低输出在控制台...
第一部分: public class Student { private String name; private Integer chinese; private Integer math; pri ...
- java基于ssm的高校学生学籍信息管理系统
该大学生学籍管理系统,采用了jsp的mvc结构模式开发,利用mysql作为系统后台数据库,实现了大学生学籍信息的登记以及管理等. 学生学籍管理系统,采用了bs技术模式开发,用于高校设计的参考学习,也用 ...
- 基于JAVA+SpringMVC+Mybatis+MYSQL的学生健康信息管理系统
项目功能: 学生端: 检查公告查询 我的病原史信息查询 我的传染病信息查询 我的身体健康查询 我的心里健康查询 管理员端: 人员管理 班级管理 学院管理 检查公告管理 学生病原史信息管理 学生传染病信 ...
- java集合输入存储_Java练习IO流使用Properties集合存储数据并...
案例: package IO; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; ...
- C语言:某班有N名同学,每个学生的信息包括学号、姓名、三门课的成绩,从键盘输入名学生的信息,打印出N名学生三门课的平均成绩,以及最高分学生的信息(包括学号,姓名,三门课的成绩,平均分)
/*某班有N名同学,每个学生的信息包括学号.姓名.三门课的成绩,从键盘输入名学生的信息, 打印出N名学生三门课的平均成绩,以及最高分学生的信息(包括学号,姓名,三门课的成绩,平均分)*/ #inclu ...
- java hashset应用_三.java集合的应用
目录 需求一:存放学生信息 定义学生类,按年龄升序,将学生信息存放在集合中,遍历学生的信息(Student注释部分为后续的HashSet使用,此处可忽略) 思路:①定义一个学生类,声明name,age ...
最新文章
- 供SAPI中TTS功能用使的Win8.1语言包安装
- 使用 Eclipse Memory Analyzer 进行堆转储文件分析
- java ajax搜索框提示,Javaweb-案例练习-2-给搜索框添加提示
- glassfish发布应用_WildFly 8与GlassFish 4 –选择哪个应用服务器
- mysql期末考试试卷_mysql试题
- Nginx http 视频点播服务器搭建操作指南
- 关于数据分析用到的统计学知识
- C#中计算两个时间的差
- 关于TCP/IP协议
- 蚂蚁(挑战程序设计竞赛)
- PLSQL注册码,亲测,可用
- coreldraw怎么打印荣誉证书_教你如何打印大于A4尺寸的荣誉证书和奖状
- ACCESS-入门思维导图
- springboot整合jett导出数据(2)
- [附源码]计算机毕业设计JAVA新能源汽车租赁管理系统
- 使用opencv python进行手检测和手指计数
- 分享 stormzhang的Andoid学习之路
- 科技兴盛下,传统银行该如何转型?
- 比尔盖茨小时候的故事
- 【黑客免杀攻防】读书笔记1 - 初级免杀基础理论(反病毒软件特征码提取介绍、免杀原理、壳)...