1.随机点名器案例

1.1      案例介绍

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

此案例在我们昨天课程学习中,已经介绍,现在我们要做的是对原有的案例进行升级,使用新的技术来实现。

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

l  存储所有同学姓名

l  总览全班同学姓名

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

1.2      案例需求分析

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

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

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

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

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

随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。

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

package com.oracle.linkedlist;

public class Student {

String name;

int age;

}

package com.oracle.linkedlist;

import java.util.Scanner;

import java.util.Random;

class Test04 {

public static void main(String[] args) {

String[] arr=new String[5];

//  存储所有同学姓名

StudentName(arr);

//  总览全班同学姓名

StudentCname(arr);

//  存储所有同学姓名

StudentSname(arr);

}

//  存储所有同学姓名

public static void StudentName(String[] arr){

Scanner sc=new Scanner(System.in);

for (int i=0;i<arr.length;i++) {

System.out.println("第"+(i+1)+"同学姓名");

arr[i]=sc.next();

}

}

//  总览全班同学姓名

public static void StudentCname(String[] arr){

for(int i=0;i<arr.length;i++){

System.out.println("第"+(i+1)+"个同学:"+arr[i]);

}

}

//  存储所有同学姓名

public static void StudentSname(String[]arr){

int a = new Random().nextInt(arr.length);

System.out.println("被点到名的同学是:" +arr[a]);

}

}

运行结果:

2.库存管理案例

2.1      案例介绍

现在,我们将原有的库存管理案例,采用更好的集合方式实现。

将对下列功能进行方法封装:

l  打印库存清单功能

l  库存商品数量修改功能

l  退出程序功能

2.2  案例需求分析

管理员能够进行的操作有3项(查看、修改、退出),我们可以采用(switch)菜单的方式来完成。

-------------库存管理------------

1.查看库存清单

2.修改商品库存数量

3.退出

请输入要执行的操作序号:

每一项功能操作,我们采用方法进行封装,这样,可使程序的可读性增强。

选择“1.查看库存清单”功能,则控制台打印库存清单

选择“2.修改商品库存数量”功能,则对每种商品库存数进行更新

选择“3.退出”功能,则退出库存管理,程序结束

package com.oracle.demo03;

public class Stores {
    
    String sname;
    double ssize;
    double smoney;
    int sinventory;
    
}

package com.oracle.demo03;

import java.util.ArrayList;
import java.util.Scanner;

public class store {

public static void main(String[] args) {
        
        ArrayList<Stores> list=new ArrayList();
        Scanner sc=new Scanner(System.in);
        while(true){
        
            MainMenu();
            
            int num=sc.nextInt();
            switch(num){
            
            case 1:QueryStore(list);
                break;
                
            case 2:updateStore(list);
                break;
                
            case 3:addStore(list);
                break;
                
            case 4:delectStore(list);
                break;
                
            case 5:
                return;
                
            default:
                break;
            }
        
        }

}

//主菜单
    public static void MainMenu(){
        
        System.out.println("----------库存管理-----------");
        System.out.println("1.查看库存清单");
        System.out.println("2.修改商品库存数量");
        System.out.println("3.添加商品");
        System.out.println("4.删除商品");
        System.out.println("5.退出");
        System.out.println("请输入您要执行的编号:");
    }
    
    //查看库存清单
    public static void QueryStore(ArrayList<Stores> list){
        
        System.out.println("---------商城库存清单----------");
        System.out.println("品牌型号\t\t尺寸\t价格\t库存数");
        //MacBookAir品牌
        Stores s1=new Stores();
        s1.sname="MacBookAir";
        s1.ssize=13.3;
        s1.smoney=6988.88;
        s1.sinventory=5;
        System.out.println(s1.sname+"\t"+s1.ssize+"\t"+s1.smoney+"\t"+s1.sinventory);
        
        //ThinkpadT450品牌
        Stores s2=new Stores();
        s2.sname="ThinkpadT450";
        s2.ssize=14.0;
        s2.smoney=5999.99;
        s2.sinventory=10;
        System.out.println(s2.sname+"\t"+s2.ssize+"\t"+s2.smoney+"\t"+s2.sinventory);
        
        //ASUS-FL5800品牌
        Stores s3=new Stores();
        s3.sname="ASUS-FL5800";
        s3.ssize=15.6;
        s3.smoney=4999.5;
        s3.sinventory=18;
        System.out.println(s3.sname+"\t"+s3.ssize+"\t"+s3.smoney+"\t"+s3.sinventory);
            
        //总库存数
        int sum=s1.sinventory+s2.sinventory+s3.sinventory;
        //库存商品总金额
        double SUM=s1.smoney*5+s2.smoney*10+s3.smoney*18;
        
        
        
        for(int i=0;i<list.size();i++){
            
            System.out.println(list.get(i).sname+"\t\t"+list.get(i).ssize+"\t"+list.get(i).smoney+"\t"+list.get(i).sinventory);
            
        }
        System.out.println("---------------------------");
        System.out.println("总库存数:"+sum);
        System.out.println("库存商品总金额:"+SUM);
        
        
        
    }
    //修改商品数量
    public static void updateStore(ArrayList<Stores> list){
        
        QueryStore(list);
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改的品牌数量:");
        int inventory=sc.nextInt();
        Stores stores=new Stores();
        stores.sinventory=inventory;
        for(int i=0;i<list.size();i++){
            
            if(inventory==list.get(i).sinventory){
                list.set(i, stores);
            }
            
        }
        
        
        
        
    }
    //添加清单
    public static void addStore(ArrayList<Stores> list){
        
        Scanner sc=new Scanner(System.in);
        Stores stores=new Stores();
        System.out.println("请输入新增加的品牌型号:");
        String name=sc.next();
        System.out.println("请输入新增加的品牌尺寸:");
        double size=sc.nextDouble();
        System.out.println("请输入新增加的品牌价格:");
        double money=sc.nextDouble();
        System.out.println("请输入新增加的品牌库存数:");
        int inventory=sc.nextInt();
        stores.sname=name;
        stores.ssize=size;
        stores.smoney=money;
        stores.sinventory=inventory;
        list.add(stores);
        System.out.println("添加商品成功!");
        
        
    }
    
    
    //删除清单
    public static void delectStore(ArrayList<Stores> list){
        
        QueryStore(list);
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入您要删除的品牌名称:");
        String num=sc.next();
        for(int i=0;i<list.size();i++){
            
            if(num==list.get(i).sname){
                
                list.remove(i);
            }
            System.out.println("删除商品成功!");
        }
        
    }
}

运行结果:

Java案例整理的更多相关文章

  1. Java validator整理

    Java validator整理 因为想对方法的入参和出参作简单的非空或者非空字符做校验,所以找了下相关的@NotNull注解 类 | 说明 --- | --- javax.validation.co ...

  2. _00019 Storm架构介绍和Storm获取案例(简单的官方网站Java案例)

    博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

  3. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  4. Java资料整理

    Java资料整理 原创 2017年08月25日 17:20:44 14211  1.LocalThread的应用场景,数据传输适合用LocalThread么 2.linux的基本命令    软链接.更 ...

  5. ETL工具之kittle使用案例整理

    主花了一下午时间,收集全网,学习了下kittle,觉得该大v写的不错,特意整理给大家!学会这几个案例kittle基本就没问题了. 1.kettle案例一抽取gz格式文本内容保存到mongodb  ht ...

  6. JAVA基础整理-集合篇(一)

    集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...

  7. Java数据结构整理(一)

    ava数据结构内容整理关键字: 数据结构 Collection:List.SetMap:HashMap.HashTable如何在它们之间选择一.Array , ArraysJava所有“存储及随机访问 ...

  8. 面试之Java知识整理

    1.面向对象都有哪些特性 继承.封装.多态性.抽象 2.Java中实现多态的机制是什么? 继承与接口 3.Java中异常分为哪些种类 3.1按照异常需要处理的时机分为编译时异常(CheckedExce ...

  9. Java案例:双色球的实现

    //随机生成双色球号码 //案例:6颗红球(33选1)  1颗蓝球(16选1) 代码实现如下: import java.util.Random; import java.util.Arrays; // ...

随机推荐

  1. caffe2学习

    https://www.jianshu.com/p/50bf3bd4e3d0 知乎专栏 https://zhuanlan.zhihu.com/kingbob

  2. codeforces493B

    Vasya and Wrestling CodeForces - 493B Vasya has become interested in wrestling. In wrestling wrestle ...

  3. 11/5/2018模拟 Problem C

    题面 题解 我有特殊的哈希技巧 以到下一个相同字符的距离为值哈希, 如果不存在或在串外, 就是 \(|T| + 1\). 加入一个新字符 \(S_i\) 时, 同时修改它上一次出现时的值, 由 \(| ...

  4. JarvisOJ Basic 美丽的实验室Logo

    出题人丢下个logo就走了,大家自己看着办吧 扔进01Editor中,发现最后有14844个不属于jpg的字节 扔进Kali中用dd命令提取出附加的文件,可以看到也是一个图片,图片上的文字即是flag

  5. JarvisOJ Basic 熟悉的声音

    两种元素,还有声音,想到了莫尔斯电码,解码得到 jbluwewnz 提交,发现不对,觉得应该是有实际意义的东西,实在想不到还能怎么解,就去看了题解. 发现这个还可以再套一个凯撒密码,就拿python写 ...

  6. CentOS 安装git

    git安装 yum install git 初始化git “git init --bare 文件夹” 添加所有 “git add . ” 提交 “git commit -m "提交信息&qu ...

  7. BZOJ1014[JSOI2008]火星人——非旋转treap+二分答案+hash

    题目描述 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 ...

  8. 【XSY1081】随机存储器 网络流

    题目描述 Bob有\(2^n\)字节的内存,编号为\([0,2^n-1)\).他想对每个字节的内存分别分配一个值.对于编号为\(i\)的内存,如果它被分配了一个值\(j(0\leq j<2^m) ...

  9. hihocoder#1333 : 平衡树·Splay2 (区间操作)

    题面: #1333 : 平衡树·Splay2 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:好麻烦啊~~~~~ 小Hi:小Ho你在干嘛呢? 小Ho:我在干活啊! ...

  10. django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

    报错现象 django 启动的时候报错 django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 报错解决 记不清是我有毛 ...