集合框架-键盘录入学生按照总分从高到底输出

来源:互联网 发布:c语言取反加一 编辑:程序博客网 时间:2024/06/05 05:28
package cn.itcast_08;import java.util.Comparator;import java.util.Scanner;import java.util.TreeSet;/* * 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台 *  * 分析: * A:定义学生类 * B:创建一个TreeSet集合,因为我将来要按照总分从高到低输出 * C:总分从高到底如何实现呢? * D:键盘录入5个学生信息 * E:遍历TreeSet集合 */public class TreeSetDemo {public static void main(String[] args) {// 创建一个TreeSet集合TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {@Overridepublic int compare(Student s1, Student s2) {// 总分从高到低int num = s2.getSum() - s1.getSum();// 总分相同的不一定语文相同int num2 = num == 0 ? s1.getChinese() - s2.getChinese() : num;// 总分相同的不一定数学相同int num3 = num2 == 0 ? s1.getMath() - s2.getMath() : num2;// 总分相同的不一定英语相同int num4 = num3 == 0 ? s1.getEnglish() - s2.getEnglish() : num3;// 姓名还不一定相同呢int num5 = num4 == 0 ? s1.getName().compareTo(s2.getName()) : num4;return num5;}});System.out.println("学生信息录入开始");// 键盘录入5个学生信息for (int x = 1; x <= 5; x++) {Scanner sc = new Scanner(System.in);System.out.println("请输入第" + x + "个学生的姓名:");String name = sc.nextLine();System.out.println("请输入第" + x + "个学生的语文成绩:");String chineseString = sc.nextLine();System.out.println("请输入第" + x + "个学生的数学成绩:");String mathString = sc.nextLine();System.out.println("请输入第" + x + "个学生的英语成绩:");String englishString = sc.nextLine();                        // 把数据封装到学生对象中Student s = new Student();s.setName(name);s.setChinese(Integer.parseInt(chineseString));//把字符串转成Int类型s.setMath(Integer.parseInt(mathString));s.setEnglish(Integer.parseInt(englishString));// 把学生对象添加到集合ts.add(s);}System.out.println("学生信息录入完毕");System.out.println("学习信息从高到低排序如下:");System.out.println("姓名\t语文成绩\t数学成绩\t英语成绩");// 遍历集合for (Student s : ts) {System.out.println(s.getName() + "\t" + s.getChinese() + "\t"+ s.getMath() + "\t" + s.getEnglish());}}}

package cn.itcast_08;public class Student {// 姓名private String name;// 语文成绩private int chinese;// 数学成绩private int math;// 英语成绩private int english;public Student(String name, int chinese, int math, int english) {super();this.name = name;this.chinese = chinese;this.math = math;this.english = english;}public Student() {super();}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getChinese() {return chinese;}public void setChinese(int chinese) {this.chinese = chinese;}public int getMath() {return math;}public void setMath(int math) {this.math = math;}public int getEnglish() {return english;}public void setEnglish(int english) {this.english = english;}public int getSum() {return this.chinese + this.math + this.english;}}

0 0
原创粉丝点击