java 用集合完成随机点名器和库存管理案例
一 随机点名器
1.案例需求
随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息。
我们来完成随机点名器,它具备以下3个内容:
存储所有同学姓名
总览全班同学姓名
随机点名其中一人,打印到控制台
2.案例分析
全班同学中随机的找出一名同学,打印这名同学的个人信息。
我们对本案例进行分析,得出如下分析结果:
1.存储全班同学信息(姓名、年龄)
2.打印全班同学每一个人的信息(姓名、年龄)
3.在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学信息(姓名、年龄)
随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以
针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。
而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很
难一次性将全部数据持有。此时,我们采用ArrayList集合来解决多个学生信息的存储问题。
3.代码:
import java.util.*;
class Demo02
{
public static void main(String[] args)
{ //储存全体学生的信息
ArrayList<String> stuname = new ArrayList<String>();
stuname.add("姓名:张三,年龄:99");
stuname.add("姓名:李四,年龄:100");
stuname.add("姓名:王五,年龄:77");
stuname.add("姓名:赵六,年龄:50");
stuname.add("姓名:孙七,年龄:60");
//总览全体同学信息
for (int i = 0;i<stuname.size() ;i++ ){
System.out.print(stuname.get(i)+" ");
}
System.out.println();
//随机点名
Random ra = new Random();
int r = ra.nextInt(stuname.size());
System.out.println(stuname.get(r));
}
}
二 库存管理案例
1.案例需求

打印库存清单功能
库存商品数量修改功能
退出程序功能
2.代码:
import java.io.*;
import java.util.Scanner;
import java.util.ArrayList;
class HomeWork0630
{
public static void main(String[] args)throws IOException
{
menu();
}
public static void show(){
System.out.println("------库存管理------");
System.out.println("1.查看库存清单");
System.out.println("2.修改商品库存数量");
System.out.println("3.退出");
System.out.println("请输入要执行的操作序号:");
}
public static void menu()throws IOException{
Scanner sc = new Scanner(System.in);
ArrayList<String> brand =new ArrayList<String>();
ArrayList<Double> sizee =new ArrayList<Double>();
ArrayList<Double> price =new ArrayList<Double>();
ArrayList<Integer> num =new ArrayList<Integer>();
brand.add("MacBookAir");
brand.add("ThinkpadT450");
brand.add("ASUS-FL5800");
sizee.add(13.3);
sizee.add(14.0);
sizee.add(15.6);
price.add(6988.88);
price.add(5999.99);
price.add(4999.5);
num.add(5);
num.add(10);
num.add(18);
while(true){
show();
int s = sc.nextInt();
switch(s){
case 1:
look(brand,sizee,price,num);
break;
case 2:
change(brand,num);
break;
case 3:
return;
default:
System.out.println("输入有误请重新输入!");
}
}
}
public static void look(ArrayList<String> brand,ArrayList<Double> sizee,ArrayList<Double> price,
ArrayList<Integer> num)throws IOException{
System.out.println("----------商城库存清单----------");
System.out.println("品牌型号\t尺寸\t价格\t库存数");
for (int i=0;i<brand.size() ;i++ ){
System.out.println(brand.get(i)+"\t"+sizee.get(i)+"\t"+price.get(i)+"\t"+num.get(i));
}
System.out.println("--------------------------------");
int sum = 0;
for (int i = 0;i<brand.size() ;i++ ){
sum+=num.get(i);
}
System.out.println("总库存数:"+sum);
double sum2 = 0;
for (int i = 0;i<brand.size() ;i++ ){
sum2+=num.get(i)*price.get(i);
}
System.out.println("库存商品总金额:"+sum2);
System.out.println("输入回车键返回主菜单");
if(new InputStreamReader(System.in).read() == 13){
return;
}
}
public static void change(ArrayList<String> brand,ArrayList<Integer> num){
Scanner sca = new Scanner(System.in);
while(true){
System.out.println("-------------库存表-------------");
System.out.println("序号\t品牌型号\t库存数");
for (int i=0;i<brand.size() ;i++ ){
System.out.println(i+1+"\t"+brand.get(i)+"\t"+num.get(i));
}
System.out.println("--------------------------------");
System.out.println("请根据上表输入需要改库存商品的序号,按0返回主界面:");
int s = sca.nextInt();
int num1=0;
if ((s-1)<brand.size()&&s>0){
System.out.println("请输入修改后的内存数:");
num1=sca.nextInt();
num.set(s-1,num1);
System.out.println("修改成功!结果为:");
System.out.println("-------------库存表-------------");
System.out.println("序号\t品牌型号\t库存数");
for (int i=0;i<brand.size() ;i++ ){
System.out.println(i+1+"\t"+brand.get(i)+"\t"+num.get(i));
}
System.out.println("--------------------------------");
while(true){
System.out.println("是否继续修改:按1继续,按0返回主菜单");
int b = sca.nextInt();
if (b==1){
break;
}else if(b==0){
return;
}else{
System.out.println("您的输入有误请重新输入!");
}
}
}else if(s==0){
return;
}else{
System.out.println("您的输入有误请重新输入!");
}
}
}
}
java 用集合完成随机点名器和库存管理案例的更多相关文章
- java方法中参数传递与随机点名器、库存管理案例
一 参数传递 1.定义: 参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数, 这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我 们称 ...
- Java案例:随机点名器
案例介绍: 随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息.需具备以下3个内容:1)存储所有同学姓名2)总览全班同学姓名3)随机点名其中一人,打印到控制台 案例需求分析: 全班同 ...
- 2017.10.14 Java的流程控制语句switch&&随机点名器
今日内容介绍 1.流程控制语句switch 2.数组 3.随机点名器案例 ###01switch语句解构 * A:switch语句解构 * a:switch只能针对某个表达式的值作 ...
- JAVA基础 随机点名器案例
1.1 案例介绍 随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息. 此案例在我们昨天课程学习中,已经介绍,现在我们要做的是对原有的案例进行升级,使用新的技术来实现. 我 ...
- 【Java】集合_学习笔记
一.集合 1.集合类也称容器类,主要负责保存.盛装其他数据. 2.集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组). 3.Java5后提供一些多线程安全的集合类,放在java.ut ...
- SAS文档:简单的随机点名器
本次实验,我们设计了一个简单的随机点名系统,下面我来介绍一下它的SRS文档. 1.功能需求: 1.1 模块1 在此模块中,我们设置了RandomName类,创建一个随机点名器,里面加入了所在课程的名单 ...
- 谈谈Java的集合组件
让我们一起谈谈Java的集合组件 我们在使用Java的时候,都会遇到并使用到Java的集合.在这里通过自己的理解和网上的资源对Java的集合方面的使用做一个简单的讲解和总结. Java主要分为3个集合 ...
- java.util 集合框架集合
java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Colle ...
- Java基础——集合框架
Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...
随机推荐
- TX 1核4G2M云服务器,376/2年,可免费续1年
腾讯云个人开发者活动 https://cloud.tencent.com/act/developer
- java中int相除取小数点后两位或限定位数
java 两个整数相除保留两位小数: http://blog.sina.com.cn/s/blog_624d755d0101cvuq.html java中,当两个整数相除时,由于小数点以后的数字会被截 ...
- 题解 CF1359B 【New Theatre Square】
题意 有一个 n×m 的广场,其中一部分要铺地砖,地砖有两种, 1 × 1 和 1×2 的,后者只能横着铺,其中, 1 × 1的单价为 x , 1 × 2 的单价为 y , 输入这个广场," ...
- “Python的单例模式有四种写法,你知道么?”——孔乙己
什么是单例模式 单例模式(Singleton Pattern)是最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创建自己的 ...
- humlbe bundle如何绑定二次验证码_虚拟MFA_两步验证_谷歌身份验证器?
一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接 humlbe bundle如何绑定二次验证码_虚拟MFA_两步验证_谷歌身份验证器? 二次验证码小程序于谷歌身份验证器APP的 ...
- jmeter接口测试 -- Base64加密(函数助手添加自定义函数)
图片转码 base64 致谢参考博客: https://www.cnblogs.com/qiaoyeye/p/7218770.html https://www.cnblogs.com/lasdaybg ...
- 使样式只在webkit内核生效
@media screen and (-webkit-min-device-pixel-ratio:0){ .do someting{ } } 使用媒体查询,制定样式
- C#结合SMTP实现邮件报警通知
写在前面 C#是微软推出的一门面向对象的通用型编程语言,它除了可以开发PC软件.网站(借助 http://ASP.NET)和APP(基于 Windows Phone),还能作为游戏脚本,编写游戏逻辑. ...
- 大一寒假我在一个oj网站只刷了这些题从此入门了绝大部分通用算法
如果你想入门算法,那么我这篇文章也许可以帮到你. 先说点题外话.这是在一个不冷不热的寒假,照理来说寒假应该很冷,但这个寒假是真的舒服.这样舒服的寒假学习似乎是一件不可能的事情,所以我继续我的游戏生涯, ...
- python基础--深浅copy(重点)
在此申明一下,博客参照了https://www.cnblogs.com/jin-xin/,自己做了部分的改动 深浅copy(重点) 先问问大家,什么是拷贝?拷贝是音译的词,其实他是从copy这个英文单 ...