zoukankan      html  css  js  c++  java
  • Java基础知识强化之集合框架笔记49:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)按照总分从高到低输出到控制台

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

    分析:
       A: 定义学生类
         B: 创建一个TreeSet集合
           C: 总分从高到底如何实现呢?
           D: 键盘录入5个学生信息
           E: 遍历TreeSet集合

    2. 代码示例:

    (1)Student.java:

     1 package cn.itcast_08;
     2 
     3 public class Student {
     4     // 姓名
     5     private String name;
     6     // 语文成绩
     7     private int chinese;
     8     // 数学成绩
     9     private int math;
    10     // 英语成绩
    11     private int english;
    12 
    13     public Student(String name, int chinese, int math, int english) {
    14         super();
    15         this.name = name;
    16         this.chinese = chinese;
    17         this.math = math;
    18         this.english = english;
    19     }
    20 
    21     public Student() {
    22         super();
    23     }
    24 
    25     public String getName() {
    26         return name;
    27     }
    28 
    29     public void setName(String name) {
    30         this.name = name;
    31     }
    32 
    33     public int getChinese() {
    34         return chinese;
    35     }
    36 
    37     public void setChinese(int chinese) {
    38         this.chinese = chinese;
    39     }
    40 
    41     public int getMath() {
    42         return math;
    43     }
    44 
    45     public void setMath(int math) {
    46         this.math = math;
    47     }
    48 
    49     public int getEnglish() {
    50         return english;
    51     }
    52 
    53     public void setEnglish(int english) {
    54         this.english = english;
    55     }
    56 
    57     public int getSum() {
    58         return this.chinese + this.math + this.english;
    59     }
    60 }

    (2)TreeSetDemo.java:

     1 package cn.itcast_08;
     2 
     3 import java.util.Comparator;
     4 import java.util.Scanner;
     5 import java.util.TreeSet;
     6 
     7 /*
     8  * 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
     9  * 
    10  * 分析:
    11  *         A:定义学生类
    12  *         B:创建一个TreeSet集合
    13  *         C:总分从高到底如何实现呢?        
    14  *         D:键盘录入5个学生信息
    15  *         E:遍历TreeSet集合
    16  */
    17 public class TreeSetDemo {
    18     public static void main(String[] args) {
    19         // 创建一个TreeSet集合
    20         TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
    21             @Override
    22             public int compare(Student s1, Student s2) {
    23                 // 总分从高到低
    24                 int num = s2.getSum() - s1.getSum();
    25                 // 总分相同的不一定语文相同
    26                 int num2 = num == 0 ? s1.getChinese() - s2.getChinese() : num;
    27                 // 总分相同的不一定数学相同
    28                 int num3 = num2 == 0 ? s1.getMath() - s2.getMath() : num2;
    29                 // 总分相同的不一定英语相同
    30                 int num4 = num3 == 0 ? s1.getEnglish() - s2.getEnglish() : num3;
    31                 // 姓名还不一定相同呢
    32                 int num5 = num4 == 0 ? s1.getName().compareTo(s2.getName())
    33                         : num4;
    34                 return num5;
    35             }
    36         });
    37 
    38         System.out.println("学生信息录入开始");
    39         // 键盘录入5个学生信息
    40         for (int x = 1; x <= 5; x++) {
    41             Scanner sc = new Scanner(System.in);
    42             System.out.println("请输入第" + x + "个学生的姓名:");
    43             String name = sc.nextLine();
    44             System.out.println("请输入第" + x + "个学生的语文成绩:");
    45             String chineseString = sc.nextLine();
    46             System.out.println("请输入第" + x + "个学生的数学成绩:");
    47             String mathString = sc.nextLine();
    48             System.out.println("请输入第" + x + "个学生的英语成绩:");
    49             String englishString = sc.nextLine();
    50 
    51             // 把数据封装到学生对象中
    52             Student s = new Student();
    53             s.setName(name);
    54             s.setChinese(Integer.parseInt(chineseString));
    55             s.setMath(Integer.parseInt(mathString));
    56             s.setEnglish(Integer.parseInt(englishString));
    57 
    58             // 把学生对象添加到集合
    59             ts.add(s);
    60         }
    61         System.out.println("学生信息录入完毕");
    62 
    63         System.out.println("学习信息从高到低排序如下:");
    64         System.out.println("姓名	语文成绩	数学成绩	英语成绩");
    65         // 遍历集合
    66         for (Student s : ts) {
    67             System.out.println(s.getName() + "	" + s.getChinese() + "	"
    68                     + s.getMath() + "	" + s.getEnglish());
    69         }
    70     }
    71 }

    运行效果,如下:

  • 相关阅读:
    ajax小白理解
    Once more
    win滚动条样式修改
    NOIP2018游记
    Stirling数笔记
    【Start From Here】HNOI2018 滚粗记
    6面相对象
    5方法定义及调用
    Java4数组
    Java3流程控制语句
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4858731.html
Copyright © 2011-2022 走看看