1083 List Grades java

Given a list of N student records with name, ID and grade. You are supposed to sort the records with respect to the grade in non-increasing order, and output those student records of which the grades are in a given interval.

Input Specification:

Each input file contains one test case. Each case is given in the following format:

N
name[1] ID[1] grade[1]
name[2] ID[2] grade[2]
... ...
name[N] ID[N] grade[N]
grade1 grade2

where name[i] and ID[i] are strings of no more than 10 characters with no space, grade[i] is an integer in [0, 100], grade1 and grade2 are the boundaries of the grade's interval. It is guaranteed that all the grades are distinct.

Output Specification:

For each test case you should output the student records of which the grades are in the given interval [grade1grade2] and are in non-increasing order. Each student record occupies a line with the student's name and ID, separated by one space. If there is no student's grade in that interval, output NONE instead.

Sample Input 1:

4
Tom CS000001 59
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
60 100

Sample Output 1:

Mike CS991301
Mary EE990830
Joe Math990112

Sample Input 2:

2
Jean AA980920 60
Ann CS01 80
90 95

Sample Output 2:

NONE
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.nextLine();
        List<Student1083> student1083s = new ArrayList<>();
        for (int i=0; i<n; ++i) {
            Student1083 temp = new Student1083();
            String inputString = scanner.nextLine();
            String[] eachInput = inputString.split("\\s+");
            temp.name = eachInput[0];
            temp.id = eachInput[1];
            temp.score = Integer.parseInt(eachInput[2]);
            student1083s.add(temp);
        }
        int grade1 = scanner.nextInt();
        int grade2 = scanner.nextInt();
        Collections.sort(student1083s);
        boolean tag = true;
        for (int i=0; i<student1083s.size(); ++i) {
            Student1083 temp = student1083s.get(i);
            if (temp.score>=grade1&&temp.score<=grade2) {
                System.out.println(temp.name+" "+temp.id);
                tag = false;
            }
        }
        if (tag) {
            System.out.println("NONE");
        }
    }
}
class Student1083 implements Comparable<Student1083>{
    String name;
    String id;
    Integer score;
    @Override
    public int compareTo(Student1083 o) {
        return o.score.compareTo(this.score);
    }

    @Override
    public String toString() {
        return "Student1083{" +
                "name='" + name + '\'' +
                ", id='" + id + '\'' +
                ", score=" + score +
                '}';
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用递归的方式将List年级、班级和课程转换为树形结构。以下是一个示例的Java代码: ```java import java.util.ArrayList; import java.util.List; class TreeNode { private String name; private List<TreeNode> children; public TreeNode(String name) { this.name = name; this.children = new ArrayList<>(); } public void addChild(TreeNode child) { this.children.add(child); } public String getName() { return name; } public List<TreeNode> getChildren() { return children; } } class Course { private String name; public Course(String name) { this.name = name; } public String getName() { return name; } } public class Main { public static void main(String[] args) { // 创建年级、班级和课程列表 List<String> grades = List.of("Grade 1", "Grade 2"); List<String> classes = List.of("Class A", "Class B"); List<String> courses = List.of("Math", "English", "Science"); // 转换为树形结构 TreeNode root = new TreeNode("Root"); for (String grade : grades) { TreeNode gradeNode = new TreeNode(grade); for (String clazz : classes) { TreeNode classNode = new TreeNode(clazz); for (String course : courses) { TreeNode courseNode = new TreeNode(course); classNode.addChild(courseNode); } gradeNode.addChild(classNode); } root.addChild(gradeNode); } // 打印树形结构 printTree(root, 0); } private static void printTree(TreeNode node, int level) { StringBuilder indent = new StringBuilder(); for (int i = 0; i < level; i++) { indent.append(" "); } System.out.println(indent + node.getName()); for (TreeNode child : node.getChildren()) { printTree(child, level + 1); } } } ``` 在上述代码中,我们创建了一个`TreeNode`类来表示树的节点,每个节点有一个名称和一个子节点列表。我们还创建了一个`Course`类来表示课程。 在`Main`类的`main`方法中,我们使用三个列表来表示年级、班级和课程。然后,我们使用嵌套的循环来将它们转换为树形结构。最后,我们使用递归的方式打印出整个树形结构。 注意:这只是一个示例代码,您可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值