zoukankan      html  css  js  c++  java
  • JAVA基础 随机点名器案例

    1.1      案例介绍

    随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息。

    此案例在我们昨天课程学习中,已经介绍,现在我们要做的是对原有的案例进行升级,使用新的技术来实现。

    我们来完成随机点名器,它具备以下3个内容:

    l  存储所有同学姓名

    l  总览全班同学姓名

    l  随机点名其中一人,打印到控制台

    1.2      案例需求分析

    全班同学中随机的找出一名同学,打印这名同学的个人信息。

    我们对本案例进行分析,得出如下分析结果:

    1.存储全班同学信息(姓名、年龄)

    2.打印全班同学每一个人的信息(姓名、年龄)

    3.在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学信息(姓名、年龄)

    随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。

    而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有。此时,我们采用ArrayList集合来解决多个学生信息的存储问题。

    1.3      实现代码步骤

    每名学生都拥有多项个人信息,为了方便管理每个人的信息,我们对学生信息进行封装,编写Student.java文件

    /**

     * 学生信息类

     */

    public class Student {

        String name; //姓名

        int age; //年龄

    }

             上述代码中,对学生信息(姓名、年龄)进行了封装。这样做的好处在于,以后只要找到这名学生,就能够知道他的每项个人信息了。

             接下来我们编写CallName.java文件,完成程序的编写。

    l  main方法中调用三个独立方法

        public staticvoid main(String[] args) {

            ArrayList<Student>list = newArrayList<Student>(); //1.1创建一个可以存储多个同学名字的容器

            /*

             * 1.存储全班同学信息

             */

            addStudent(list);

            /*

             * 2.打印全班同学每一个人的信息(姓名、年龄)

             */

            printStudent(list);

            /*

             * 3.随机对学生点名,打印学生信息

             */

            randomStudent(list);

        }

    l  存储所有学生的个人信息

        /**

         * 1.存储全班同学名字

         */

        public staticvoidaddStudent(ArrayList<Student> list) {

            //键盘输入多个同学名字存储到容器中

            Scannersc = new Scanner(System.in);

            for (inti = 0; i < 3; i++) {

                //创建学生

                Students = new Student();

                System.out.println("存储第"+i+"个学生姓名:");

                s.name = sc.next();

                System.out.println("存储第"+i+"个学生年龄:");

                s.age = sc.nextInt();

                //添加学生到集合

                list.add(s);

            }

        }

             上述方法中,方法参数list中用来表示已存储所有学生。通过Scanner,完成新学生信息(姓名,年龄)的录入,并将学生添加到集合中。

    l  打印全班同学每一个人的信息

        /**

         * 2.打印全班同学每一个人的信息(姓名、年龄)

         */

        public staticvoid printStudent(ArrayList<Student> list) {

            for (inti = 0; i < list.size(); i++) {

                Students = list.get(i);

                System.out.println("姓名:"+s.name +",年龄:"+s.age);

            }

        }

             上述方法中,方法参数list中用来表示已存储所有学生。通过遍历集合中的每个元素,得到每个同学信息,并输出打印。

    l  随机对学生点名,打印学生信息

        /**

         * 3.随机对学生点名,打印学生信息

         */

        public staticvoid randomStudent(ArrayList<Student> list) {

            //在班级总人数范围内,随机产生一个随机数

            int index = newRandom().nextInt(list.size());

            //在容器(ArrayList集合)中,查找该随机数所对应的同学信息(姓名、年龄)

            Students = list.get(index);

            System.out.println("被随机点名的同学:"+s.name+ ",年龄:" + s.age);

        }

             上述方法中,通过随机数类Random产生一个从0到集合长度的随机索引。使用该索引获取ArrayList集合中对应的值,便得到了全班同学的随机学生信息并打印。
  • 相关阅读:
    【刷题-LeetCode】154 Find Minimum in Rotated Sorted Array II
    【刷题-LeetCode】153 Find Minimum in Rotated Sorted Array
    【刷题-LeetCode】152 Maximum Product Subarray
    迭代器,生成器
    python 16 装饰器
    python 15 闭包函数
    python 14 名称空间与作用域
    函数参数
    python 11 函数基础
    python中list、tuple、set、dict区别
  • 原文地址:https://www.cnblogs.com/inyu/p/13659110.html
Copyright © 2011-2022 走看看