zoukankan      html  css  js  c++  java
  • 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("品牌型号 尺寸 价格 库存数");
            //MacBookAir品牌
            Stores s1=new Stores();
            s1.sname="MacBookAir";
            s1.ssize=13.3;
            s1.smoney=6988.88;
            s1.sinventory=5;
            System.out.println(s1.sname+" "+s1.ssize+" "+s1.smoney+" "+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+" "+s2.ssize+" "+s2.smoney+" "+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+" "+s3.ssize+" "+s3.smoney+" "+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+" "+list.get(i).ssize+" "+list.get(i).smoney+" "+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("删除商品成功!");
            }
            
        }
    }



    运行结果:

  • 相关阅读:
    链接错误error LNK2005可能原因之一
    ACCESS一些特殊数据类型
    flex&bison学习笔记(2)
    经典小故事
    spoj 2939 Query on a tree V 动态树分治
    spoj 913 Query on a tree II 倍增
    CEOI 2004 sweets 容斥原理
    poj 1741 Tree 树的分治
    zjoi 2007 hide 捉迷藏 动态树分治
    spoj 2798 Query on a tree again! 树链剖分
  • 原文地址:https://www.cnblogs.com/mengmengi/p/10436379.html
Copyright © 2011-2022 走看看