一 随机点名器

1.案例需求

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

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

  存储所有同学姓名

  总览全班同学姓名

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

2.案例分析

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

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

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

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

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

  随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以

针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。

  而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很

难一次性将全部数据持有。此时,我们采用ArrayList集合来解决多个学生信息的存储问题。

3.代码:

  1. import java.util.*;
  2. class Demo02
  3. {
  4. public static void main(String[] args)
  5. { //储存全体学生的信息
  6. ArrayList<String> stuname = new ArrayList<String>();
  7. stuname.add("姓名:张三,年龄:99");
  8. stuname.add("姓名:李四,年龄:100");
  9. stuname.add("姓名:王五,年龄:77");
  10. stuname.add("姓名:赵六,年龄:50");
  11. stuname.add("姓名:孙七,年龄:60");
  12. //总览全体同学信息
  13. for (int i = 0;i<stuname.size() ;i++ ){
  14. System.out.print(stuname.get(i)+" ");
  15. }
  16. System.out.println();
  17. //随机点名
  18. Random ra = new Random();
  19. int r = ra.nextInt(stuname.size());
  20. System.out.println(stuname.get(r));
  21. }
  22. }

二 库存管理案例

1.案例需求

打印库存清单功能

库存商品数量修改功能

退出程序功能

2.代码:

  1. import java.io.*;
  2. import java.util.Scanner;
  3. import java.util.ArrayList;
  4. class HomeWork0630
  5. {
  6. public static void main(String[] args)throws IOException
  7. {
  8. menu();
  9. }
  10. public static void show(){
  11. System.out.println("------库存管理------");
  12. System.out.println("1.查看库存清单");
  13. System.out.println("2.修改商品库存数量");
  14. System.out.println("3.退出");
  15. System.out.println("请输入要执行的操作序号:");
  16. }
  17. public static void menu()throws IOException{
  18. Scanner sc = new Scanner(System.in);
  19. ArrayList<String> brand =new ArrayList<String>();
  20. ArrayList<Double> sizee =new ArrayList<Double>();
  21. ArrayList<Double> price =new ArrayList<Double>();
  22. ArrayList<Integer> num =new ArrayList<Integer>();
  23. brand.add("MacBookAir");
  24. brand.add("ThinkpadT450");
  25. brand.add("ASUS-FL5800");
  26. sizee.add(13.3);
  27. sizee.add(14.0);
  28. sizee.add(15.6);
  29. price.add(6988.88);
  30. price.add(5999.99);
  31. price.add(4999.5);
  32. num.add(5);
  33. num.add(10);
  34. num.add(18);
  35. while(true){
  36. show();
  37. int s = sc.nextInt();
  38. switch(s){
  39. case 1:
  40. look(brand,sizee,price,num);
  41. break;
  42. case 2:
  43. change(brand,num);
  44. break;
  45. case 3:
  46. return;
  47. default:
  48. System.out.println("输入有误请重新输入!");
  49. }
  50. }
  51. }
  52. public static void look(ArrayList<String> brand,ArrayList<Double> sizee,ArrayList<Double> price,
  53. ArrayList<Integer> num)throws IOException{
  54. System.out.println("----------商城库存清单----------");
  55. System.out.println("品牌型号\t尺寸\t价格\t库存数");
  56. for (int i=0;i<brand.size() ;i++ ){
  57. System.out.println(brand.get(i)+"\t"+sizee.get(i)+"\t"+price.get(i)+"\t"+num.get(i));
  58. }
  59. System.out.println("--------------------------------");
  60. int sum = 0;
  61. for (int i = 0;i<brand.size() ;i++ ){
  62. sum+=num.get(i);
  63. }
  64. System.out.println("总库存数:"+sum);
  65. double sum2 = 0;
  66. for (int i = 0;i<brand.size() ;i++ ){
  67. sum2+=num.get(i)*price.get(i);
  68. }
  69. System.out.println("库存商品总金额:"+sum2);
  70. System.out.println("输入回车键返回主菜单");
  71. if(new InputStreamReader(System.in).read() == 13){
  72. return;
  73. }
  74. }
  75. public static void change(ArrayList<String> brand,ArrayList<Integer> num){
  76. Scanner sca = new Scanner(System.in);
  77. while(true){
  78. System.out.println("-------------库存表-------------");
  79. System.out.println("序号\t品牌型号\t库存数");
  80. for (int i=0;i<brand.size() ;i++ ){
  81. System.out.println(i+1+"\t"+brand.get(i)+"\t"+num.get(i));
  82. }
  83. System.out.println("--------------------------------");
  84. System.out.println("请根据上表输入需要改库存商品的序号,按0返回主界面:");
  85. int s = sca.nextInt();
  86. int num1=0;
  87. if ((s-1)<brand.size()&&s>0){
  88. System.out.println("请输入修改后的内存数:");
  89. num1=sca.nextInt();
  90. num.set(s-1,num1);
  91. System.out.println("修改成功!结果为:");
  92. System.out.println("-------------库存表-------------");
  93. System.out.println("序号\t品牌型号\t库存数");
  94. for (int i=0;i<brand.size() ;i++ ){
  95. System.out.println(i+1+"\t"+brand.get(i)+"\t"+num.get(i));
  96. }
  97. System.out.println("--------------------------------");
  98. while(true){
  99. System.out.println("是否继续修改:按1继续,按0返回主菜单");
  100. int b = sca.nextInt();
  101. if (b==1){
  102. break;
  103. }else if(b==0){
  104. return;
  105. }else{
  106. System.out.println("您的输入有误请重新输入!");
  107. }
  108. }
  109. }else if(s==0){
  110. return;
  111. }else{
  112. System.out.println("您的输入有误请重新输入!");
  113. }
  114. }
  115. }
  116. }

java 用集合完成随机点名器和库存管理案例的更多相关文章

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

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

  2. Java案例:随机点名器

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

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

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

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

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

  5. 【Java】集合_学习笔记

    一.集合 1.集合类也称容器类,主要负责保存.盛装其他数据. 2.集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组). 3.Java5后提供一些多线程安全的集合类,放在java.ut ...

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

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

  7. 谈谈Java的集合组件

    让我们一起谈谈Java的集合组件 我们在使用Java的时候,都会遇到并使用到Java的集合.在这里通过自己的理解和网上的资源对Java的集合方面的使用做一个简单的讲解和总结. Java主要分为3个集合 ...

  8. java.util 集合框架集合

    java的集合框架为程序提供了一种处理对象组的标准方式.设计了一系列标准泛型接口: ⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Colle ...

  9. Java基础——集合框架

    Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...

随机推荐

  1. Kafka 是如何管理消费位点的?

    Kafka 是一个高度可扩展的分布式消息系统,在实时事件流和流式处理为中心的架构越来越风靡的今天,它扮演了这个架构中核心存储的角色.从某种角度说,Kafka 可以看成实时版的 Hadoop 系统.Ha ...

  2. IDEA JRebel热部署( IDEA版本是2020.1.2)

    1.安装JRebel插件 在IDEA->Settings->plugins先安装JRebel插件: 2.下载工具 安装好JRebel后,找到lanyus大神文章中写的git地址:http: ...

  3. xenomai内核解析--双核系统调用(三)--如何为xenomai添加一个系统调用

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正. @ 目录 一.添加系统调用 二.Cobalt库添加接口 三.应用使用 一.添加系统调用 下面给xenomai添加一个系统调用g ...

  4. JQuery如何在验证表单失败的情况下阻止表单提交

    自定义验证时,使用了return false和event.preventDefault(),但是验证失败之后表单还是提交了 这个问题我也碰到了,尝试了多次也没有用,在调试的时候也发现确实return了 ...

  5. STL源码剖析:序列式容器

    前言 容器,置物之所也.就是存放数据的地方. array(数组).list(串行).tree(树).stack(堆栈).queue(队列).hash table(杂凑表).set(集合).map(映像 ...

  6. ThreadLocal源码分析以及why导致内存泄露

    1 ThreadLocal? This class provides thread-local variables. These variables differ from their normal ...

  7. 还不懂mysql的undo log和mvcc?算我输!

    最近一直没啥时间写点东西,坚持分享真的好难,也不知道该分享点啥,正好有人要问我这些东西,所以腾出点时间,写一下这个主题.同样本篇可以给读者承诺,听不懂或者没收获算我输,哈哈! 众所周知,mysql中读 ...

  8. Spring Data JPA根据属性名查询

    https://blog.csdn.net/chengqiuming/article/details/82528961

  9. Django学习路9_流程复习

    以下图示为 学习过程中,在千锋教育视频上截图的                     视频链接: https://www.bilibili.com/video/BV1rx411X717?p=11 2 ...

  10. Python 字典(Dictionary) len()方法

    Python 字典(Dictionary) len()方法 描述 Python 字典(Dictionary) len() 函数计算字典元素个数,即键的总数.高佣联盟 www.cgewang.com 语 ...