A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1169646761 中级黑马   /  2014-9-8 01:54  /  875 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

import cn.itcast.bean.Student;

public class Test1 {

        /**
         *  请输入学生考试成绩:
         * 张三,80,80,80
         * 李四,70,75,65
         * 王五,90,95,80
         * 赵六,60,60,60
         * quit
         *
         * 排序后的学生信息:
         * 王五,90,95,80,265
         * 张三,80,80,80,240
         * 李四,70,75,65,210
         * 赵六,60,60,60,180
         */
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);                        //创建Scanner对象
                System.out.println("请输入学生成绩:格式是 姓名,数学成绩,语文成绩,英语成绩");
                TreeSet<Student> ts = new TreeSet<>(new Comparator<Student>() {
                        @Override
                        public int compare(Student s1, Student s2) {
                                int num = s2.getSum() - s1.getSum();        //按照学生的总成绩降序排列
                                return num == 0 ? 1 : num;                                //如果总成绩一样保留,返回不是0即可保留
                        }
                });
                while(true) {
                        String line = sc.nextLine();                                //将键盘录入的结果存储在line中
                        if("quit".equals(line))                                                //如果是quit
                                break;                                                                        //退出无限循环
                        try {
                                String[] arr = line.split(",");                        //将录入的字符串切割
                                int math = Integer.parseInt(arr[1]);        //将数组中的第二个值转换为int
                                int chinese = Integer.parseInt(arr[2]);
                                int english = Integer.parseInt(arr[3]);
                                ts.add(new Student(arr[0], math, chinese, english));//封装成Student对象并添加到TreeSet集合中
                        } catch (Exception e) {                                                //录入格式错误,温馨提示
                                System.out.println("您录入的格式非法,格式是 姓名,数学成绩,语文成绩,英语成绩");
                        }
                }
               
                System.out.println("排序后的学生成绩是:");
                for (Student student : ts) {                                        //遍历集合
                        System.out.println(student);                                //打印集合中的每一个元素
                }
        }

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
学习学习ing
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马