java随机点名器的思路_Java案例:随机点名器

案例介绍:

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

需具备以下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 list = new ArrayList(); //1.1创建一个可以存储多个同学名字的容器

/*

* 1.存储全班同学信息

*/

addStudent(list);

/*

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

*/

printStudent(list);

/*

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

*/

randomStudent(list);

}

/**

* 1.存储全班同学名字

*/

public static void addStudent(ArrayList 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 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 list) {

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

int index = new Random().nextInt(list.size());

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

Student s = list.get(index);

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

}

}

JAVA基础 随机点名器案例

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

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

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

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

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

2017&period;10&period;14 Java的流程控制语句switch&amp&semi;&amp&semi;随机点名器

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

Java案例整理

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

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

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

java list随机打乱

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

java生成随机序列号

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

java生成随机字符串

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

随机推荐

maven配置之setting配置

<?xml version="1.0" encoding="UTF-8"?>

&lbrack;转&rsqb;setValue和setObject的区别

在使用NSMutableDictionary的时候经常会使用setValue forKey与setObject forKey,他们经常是可以交互使用的,代码中经常每一种的使用都有. 1,先看看setV ...

Leetcode&colon; Mini Parser

Given a nested list of integers represented as a string, implement a parser to deserialize it. Each ...

iOS&colon; 学习笔记&comma; 用代码驱动自动布局实例&lpar;swift&rpar;

iOS自动布局是设置iOS界面的利器.本实例展示了如何使用自动布局语言设置水平布局, 垂直布局1. 创建空白iOS项目(swift)2. 添加一个控制器类, 修改YYAppDelegate.swift ...

java05 选择结构

public static void main(String[] args) { /* * 张浩Java成绩大于90分,老师奖励他iPhone5 ,该怎么做呢? */ Scanner scanner= ...

JVM-5&period;字节码执行引擎

一.概述 二.栈帧结构 三.方法调用 四.方法执行       一.概述 虚拟机与物理机 虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器.硬件. ...

使用Nginx&plus;Lua实现waf

使用Nginx+Lua实现waf 技术内容来自:https://github.com/loveshell/ngx_lua_waf 软件包需求: 1 .Nginx兼容性[最后测试到1.13.6] [ro ...

learning websocket protocol

websocket的产生背景: 众所周知,Web应用的通信过程通常是客户端通过浏览器发出一个请求,服务器端接收请求后进行处理并返回结果给客户端,客户端浏览器将信息呈现.这种机制对于信息变化不是特别频繁 ...

kettle中的合并记录使用记录

注意:合并记录的使用前提是2个数据源都按比较关键字排过序,否则合并之后的数据不准确,可能会多出很多. 该步骤用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按 ...

ELK&plus;Redis&plus;Nginx服务数据存储以及Nginx日志的收集

PS:此片文章是承接上篇ELK部署文档,再次便不详细说明了 [安装Redis] [root@Redis ~]# wget  http://download.redis.io/releases/redi ...

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值