案例介绍:

随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息。
需具备以下3个内容:
1)存储所有同学姓名
2)总览全班同学姓名
3)随机点名其中一人,打印到控制台

案例需求分析:

全班同学中随机的找出一名同学,打印这名同学的个人信息。
1)存储全班同学信息(姓名、年龄)
2)打印全班同学每一个人的信息(姓名、年龄)
3)在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学信息(姓名、年龄)
随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。

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

实现代码步骤:

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

public class Student {
String name; //姓名
int age; //年龄
}

  编写CallName.java文件

import java.util.ArrayList;
import java.util.Scanner;
import java.util.Random;
public class CallName {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<Student>(); //1.1创建一个可以存储多个同学名字的容器
/*
* 1.存储全班同学信息
*/
addStudent(list);
/*
* 2.打印全班同学每一个人的信息(姓名、年龄)
*/
printStudent(list);
/*
* 3.随机对学生点名,打印学生信息
*/
randomStudent(list);
}
/**
* 1.存储全班同学名字
*/
public static void addStudent(ArrayList<Student> list) {
//键盘输入多个同学名字存储到容器中
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
//创建学生
Student s = new Student();
System.out.println("存储第"+i+"个学生姓名:");
s.name = sc.next();
System.out.println("存储第"+i+"个学生年龄:");
s.age = sc.nextInt();
//添加学生到集合
list.add(s);
}
}
/**
* 2.打印全班同学每一个人的信息(姓名、年龄)
*/
public static void printStudent (ArrayList<Student> list) {
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
System.out.println("姓名:"+s.name +",年龄:"+s.age);
}
} /**
* 3.随机对学生点名,打印学生信息
*/
public static void randomStudent (ArrayList<Student> list) {
//在班级总人数范围内,随机产生一个随机数
int index = new Random().nextInt(list.size());
//在容器(ArrayList集合)中,查找该随机数所对应的同学信息(姓名、年龄)
Student s = list.get(index);
System.out.println("被随机点名的同学:"+s.name + ",年龄:" + s.age);
} }

Java案例:随机点名器的更多相关文章

  1. JAVA基础 随机点名器案例

    1.1      案例介绍 随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息. 此案例在我们昨天课程学习中,已经介绍,现在我们要做的是对原有的案例进行升级,使用新的技术来实现. 我 ...

  2. java 用集合完成随机点名器和库存管理案例

    一 随机点名器 1.案例需求 随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息. 我们来完成随机点名器,它具备以下3个内容: 存储所有同学姓名 总览全班同学姓名 随机点名其中一人, ...

  3. java方法中参数传递与随机点名器、库存管理案例

    一 参数传递 1.定义: 参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数, 这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我 们称 ...

  4. 2017.10.14 Java的流程控制语句switch&&随机点名器

    今日内容介绍 1.流程控制语句switch 2.数组 3.随机点名器案例 ###01switch语句解构     * A:switch语句解构       * a:switch只能针对某个表达式的值作 ...

  5. Java案例整理

    1.随机点名器案例 1.1      案例介绍 随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息. 此案例在我们昨天课程学习中,已经介绍,现在我们要做的是对原有的案例进行升级,使用 ...

  6. SAS文档:简单的随机点名器

    本次实验,我们设计了一个简单的随机点名系统,下面我来介绍一下它的SRS文档. 1.功能需求: 1.1 模块1 在此模块中,我们设置了RandomName类,创建一个随机点名器,里面加入了所在课程的名单 ...

  7. java list随机打乱

    java list随机打乱package arrlist; import java.util.ArrayList; import java.util.Collections; import java. ...

  8. java生成随机序列号

    1.java生成随机序列号 String deleteUuid = UUID.randomUUID().toString(); 引用Jar包 //java-uuid-generator-3.1.3.j ...

  9. java生成随机字符串

    学习java comparable特性时候,定义如下Student类,需要需要随机添加学生姓名以及学号和成绩,这是java如何随机生成名字,根据我的查询,我找到目前java库支持两种方法. 1. or ...

随机推荐

  1. Hibbernate详解一

    这里先做一个简单的入门,后面有详解 记住图解原理: 这里只是没有整合spring等项目使用的hibernate的使用详解. 一.Hibernate简介 1.Hibernate在开发中所处的位置 2.O ...

  2. Numpy array 合并

    1.np.vstack() :垂直合并 >>> import numpy as np >>> A = np.array([1,1,1]) >>> ...

  3. (O)JS高阶函数应用——函数节流

    在一些函数需被频繁调用的场景,如:window.onresize.mousemove.scroll滚动事件.上传进度等等,操作频繁导致性能消耗过高,而造成浏览器卡顿现象,我们可以通过函数节流的方式解决 ...

  4. day2-pycharm创建项目,driver下载和浏览器设置

    对于ie需要设置,才能使用ie做测试 火狐的使用不能超过43版本,ie11现在有多次弹出alert无法识别其内容的问题 https://github.com/SeleniumHQ/selenium/w ...

  5. px转rem

    第一步: 第二步:html引入js 第三步:转换单位,100px=0.1rem

  6. memcache的add和set区别

    add可以做memcache锁 使用场景:用户兑换商品,在网络不好的情况下,点击多次,set会将多次提交全纪录下来,add只会记录一次

  7. python的杨辉三角

    # # / \ # # / \ / \ # # / \ / \ / \ # # / \ / \ / \ / \ # # / \ / \ / \ / \ / \ # # ---------------- ...

  8. bootstrap 坑

    1.  表格内存出不来,也不报错 .. 值是对的..  原因是  table  中必须有属性   data-toggle="table" <table id="My ...

  9. js中 xpath 使用

    一.使用: 非IE浏览器,使用 document.evaluate var result = document.evaluate("//a[@href]", document, n ...

  10. Spring Boot学习笔记:项目开发中规范总结

    Spring Boot在企业开发中使用的很广泛,不同的企业有不同的开发规范和标准.但是有些标准都是一致的. 项目包结构 以下是一个项目常见的包结构 以上是一个项目的基本目录结构,不同的项目结构会有差异 ...