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集合中对应的值,便得到了全班同学的随机学生信息并打印。
JAVA基础 随机点名器案例的更多相关文章
- 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现
075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...
- 074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现
074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现 本文知识点:综合案例-数组移位-主方法功能3的实现 说明:因为 ...
- 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现
073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...
- 072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法
072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法 本文知识点:综合案例-数组移位-在指定位置处插入数据方法 ...
- 071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法
071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法 本文知识点:综合案例-数组移位-显示数组当中所有元素 ...
- 070 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 02 综合案例-数组移位-从键盘接收数据
070 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 02 综合案例-数组移位-从键盘接收数据 本文知识点:综合案例-数组移位-从键盘接收数据 说明:因为时间紧张 ...
- 069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求
069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求 本文知识点:综合案例-数组移位-案例需求 说明:因为时间紧张,本人写博客 ...
- java基础学习日志--异常案例
package test7; public class InvalidScroreException extends Exception { public InvalidScroreException ...
- 【JAVA基础】数组练习案例一
/* * * 输入5个学生成绩 * 计算出每个成绩与最高分的差距 * 根据差距分配等级 * * */ import java.util.Scanner; public class ArrayTask ...
随机推荐
- Zabbix 5.0 LTS版本的安装小结
Zabbix 5.0 LTS版本的安装小结 1:准备Zabbix的服务器. 这里可能需要一台或多台服务器,视需求和资源而定.也可以将Zabbix_Server.MySQL.Zabbix Web等安 ...
- Java通过http协议发送Get和Post请求
https://blog.csdn.net/qq_32599479/article/details/94439131
- SpringMVC-整合SSM
整合SSM 目录 整合SSM 1. 设计流程 2. 创建一个数据库表 3. 配置依赖 4. 准备项目框架 5. Mybatis层 1. 编写实体类 2. 编写Mapper接口和xml 1. Mappi ...
- 借助FreeHttp任意篡改Websocket报文(Websocket改包)
前言 作为Web应用中最常见的数据传输协议之一的Websocket,在我们日常工作中也势必会经常使用到,而在调试或测试中我们常常也有直接改变Websocket数据报文以确认其对应用的影响的需求,本文将 ...
- TouchAction实现连续滑动设置手势密码
首先使用工具获取到元素坐标位置,可以看到起始位置是[144,462],终点位置是[576,894] 分析: 该图形可以横竖划分六等分 那么第一个圆中心点的坐标: x=144+(576-144)/6 y ...
- python:接口开发
一.flask flask是一个python编写的轻量级框架,可以使用它实现一个网站或者web服务.本文就用flask来开发一个接口. flask需要先安装再引用.pip install flask ...
- JS语法_集合
数组方法 forEach // no-log Array.prototype.forEach_ = function (cb) { let len = this.length for (let i = ...
- fiddler工具介绍及证书设置
fiddler 目录 1.Fiddler介绍 01.介绍 02.简单使用 03.结果状态码 介绍完了,接下来就到证书了 2.Fiddler证书设置 这就是fiddler证书设置的全部步骤了 1.Fid ...
- RXJAVA之异步操作
Observable提供了一些do方法来快速提供监听响应事件. doOnComplete 当complete时,执行action. doOnTerminate 当结束执行action,无论是正常还是异 ...
- 11.深入k8s:kubelet工作原理及源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 kubelet信息量是很大的,通过我这一篇文章肯定是讲不全的,大家可 ...