Java案例整理

Posted 萌-萌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java案例整理相关的知识,希望对你有一定的参考价值。

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案例整理的主要内容,如果未能解决你的问题,请参考以下文章

动态生成验证码案例(Java)

Java开发面试题!java开发案例集锦pdf

23种设计模式及案例整理分享

Session--验证码案例(Java)

整理了将近三万字,超硬核BIO,NIO,AIO,Netty 超越 99% IO文章(面试题+综合案例+练习题)

Java--反射(框架设计的灵魂)案例