小白求大神帮忙 在线等

1.2.1.设计一个Student类,该类中包括学生的姓名和成绩。创建Student类的5个对象,如下所示:

姓名 成绩
刘德华 85
张学友 100
刘杰 65
章子怡 58
周迅 76

将以上5个对象放入LinkedList中,
完成如下操作和统计:
1、输出LinkedList中的对象个数。
2、删除姓名为“刘杰”的学生信息,并输出LinkedList中现有学生信息。
3、将姓名为“刘德华”的学生成绩改为95。
4、输出成绩不及格的学生姓名

// 实体类
public class Student {
        private String name;
        private double score;

        public Student() {
        }

        public Student(String name,
                                    double score) {
                this.name = name;
                this.score = score;
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public double getScore() {
                return score;
        }

        public void setScore(double score) {
                this.score = score;
        }

        @Override
        public String toString() {
                return "Student{" + "name='" + name + '\'' + ", score=" + score + '}';
        }
}
 // 核心代码
 /**
        * 打印成绩不及格的学生姓名
        * @param students
        */
        private void printFailName(List<Student> students) {
                for (Student student : students) {
                        if (student.getScore() < 60) System.out.println(student.getName());
                }
        }

        /**
        * 根据名字修改成绩
        * @param name
        * @param score
        * @param students
        */
        private void modifyScoreByName(String name,
                                                                    double score,
                                                                    List<Student> students) {
                if (name == null) throw new RuntimeException("名字不能为空");
                for (Student student : students) {
                        if (name.equals(student.getName())) student.setScore(score);
                }
        }

        /**
        * 根据姓名移除学生信息
        *
        * @param name
        * @param students
        * @return
        */
        private void removeByName(String name,
                                                            List<Student> students) {
                if (name == null) throw new RuntimeException("名字不能为空");
                for (Student student : students) {
                        if (name.equals(student.getName())) {
                                students.remove(student);
                                break;
                        }
                }
        }

        /**
        * 初始化数据
        *
        * @return
        */
        public List<Student> init() {
                List<Student> students = new LinkedList<>();
                students.add(new Student("刘德华",
                                                                85));
                students.add(new Student("张学友",
                                                                100));
                students.add(new Student("刘杰",
                                                                65));
                students.add(new Student("章子怡",
                                                                58));
                students.add(new Student("周迅",
                                                                76));
                return students;
        }
// 测试
@Test
public void test1() {
    List<Student> students = init();// 初始化数据
    System.out.println(students);
    removeByName("刘杰",
                 students);// 移除信息;
    System.out.println(students);
    modifyScoreByName("刘德华",
                      95,
                      students);// 修改成绩
    System.out.println(students);
    printFailName(students);
    System.out.println(students);
}
    最终运行结果截图:
    ![图片说明](https://img-ask.csdn.net/upload/201703/18/1489842237_990787.png)

主要是编写函数,注意算法思想,可以在网页上搜一下,然后自己理解

在类里定义操作对象的函数,编写函数Display输出对象的各个内容,Delete 函数,第二个可以在Delete函数调用后再调用Display函数输出学生信息,第三个需要查找学生,编写一个Find函数,查找,然后修改对象成绩,第四个也可定义一个筛选函数,访问对象的成绩_grades 判断条件为Stu._grades<60,输出满足这个条件的所有对象姓名即可

上述图片说明:

补充,上述代码有个小问题就是如果有重名的只能移除第一个,所以做如下修改
/**
* 根据姓名移除学生信息
*
* @param name
* @param students
* @return
*/
private void removeByName(String name,
List students) {
if (name == null) throw new RuntimeException("名字不能为空");
leb:for (Student student : students) {
if (name.equals(student.getName())) {
students.remove(student);
break leb;
}
}
}