08_java超市管理系统

超市管理系统功能介绍

* A:超市管理系统功能介绍
    * a: 显示主菜单
    
        ============欢迎光临ItCast超市============
        1: 货物 清单   2: 添加货物   3: 删除货物   4: 修改货物  5: 退出
        请您输入要操作的功能序号
        
    * b: 货物清单
    
        输入1:货物清单
        ================商品库存清单================
        商品编号         商品名称                商品单价
        9527            少林寺酥饼核桃            12.7
        9008            尚康杂粮牡丹饼            5.6
        9879            新疆原产哈密瓜             599.6
        
    * c: 添加新货物
    
        输入2:添加新货物   
        
        请输入新商品的编号:9523
        请输入新商品的名字:斯柯达苹果醋
        请输入新商品的单价:19.9
        商品添加成功
        
    * d: 删除货物
    
        输入3:删除货物
        
        选择的是删除功能
        请输入商品的编号:9523
        货物信息删除完毕
        
    * e: 修改货物
    
        输入4:修改货物
        
        选择的是修改功能
        请输入您要修改的商品的编号:9527
        输入新的商品编号:100
        输入新的商品名字:味道好凤梨干
        输入新的商品价格:6.5
        商品修改成功
    * f: 输入5:退出系统

超市管理系统案例分析

* A: 超市管理系统案例分析

  •   * 完成超市商品初始化。创建商品,将商品添加到集合
  • * 显示来到超市能做的操作,也就是显示主菜单
  • * 根据接收到的功能选项,执行对应的功能
  • * 库存货物查询
  • * 添加新货物
  • * 删除货物
  • * 修改货物
  • * 退出系统,结束main方法的运行
  • * 循环,回到 2.显示主菜单

自定义商品类

* A: 自定义商品类
    * a: 目的
        * 每种库存商品都拥有多项商品信息,为了方便管理每种商品的信息,我们对商品信息进行封装,编写FruitItem.java文件
    * b:案例代码
        public class FruitItem {
            int  ID;            //商品编号
            String  name;       //商品名称
            double  price;      //商品单价
            double  number;     //商品数量
            double  money;      //商品金额
        }
    * 补充
        * 上述代码中,对商品信息(编号、名称、单价、数量、金额)进行了封装。这样做的好处在于以后只要找到这个商品,就能够知道该商品的每项信息了。

初始化商品属性

* A: 初始化商品属性
    * a: 案例代码
        import java.util.ArrayList;
        import java.util.Scanner;
​
        /*
         *   超市管理系统主
         *   实现:
         *     1. 商品数据的初始化
         *     2. 用户的菜单选择
         *     3. 根据选择执行不同的功能
         *       3.1 Read    查看商品
         *       3.2 Create  添加商品
         *       3.3 Delete  删除商品
         *       3.4 Update  修改商品
         *       
         *       
         *   所有功能 ,必须定义方法实现
         *   主方法main  调用作用
         */
        public class Shopp {
​
            public static void main(String[] args) {
                //创建ArrayList集合,存储商品类型,存储数据类型FruitItem类型
                ArrayList<FruitItem> array = new ArrayList<FruitItem>();
                //调用商品初始化方法,传递集合
                init(array);
                
                }
            }   
            /*
             * 定义方法,实现商品数据的初始化
             * 先将一部分数据,存储集合中
             * 返回值: 无
             * 参数 : 集合
             * 方法名: init
             */
            public static void init(ArrayList<FruitItem> array){
                //创建出多个FruitItem类型,并且属性赋值
                FruitItem f1 = new FruitItem();
                f1.ID = 9527;
                f1.name = "少林寺酥饼核桃";
                f1.price = 12.7;
                
                FruitItem f2 = new FruitItem();
                f2.ID = 9008;
                f2.name = "尚康杂粮牡丹饼";
                f2.price = 5.6;
                
                FruitItem f3 = new FruitItem();
                f3.ID = 9879;
                f3.name = "新疆原产哈密瓜";
                f3.price = 599.6;
                
                //创建的3个FruitItem类型变量,存储到集合中
                array.add(f1);
                array.add(f2);
                array.add(f3);
            }
            
        }

主菜单功能

* A: 主菜单功能
    * a: 案例代码
        
        import java.util.ArrayList;
        import java.util.Scanner;
        /*
         *   超市管理系统主
         *   实现:
         *     1. 商品数据的初始化
         *     2. 用户的菜单选择
         *     3. 根据选择执行不同的功能
         *       3.1 Read    查看商品
         *       3.2 Create  添加商品
         *       3.3 Delete  删除商品
         *       3.4 Update  修改商品
         *       
         *       
         *   所有功能 ,必须定义方法实现
         *   主方法main  调用作用
         */
        public class Shopp {
​
            public static void main(String[] args) {
                //创建ArrayList集合,存储商品类型,存储数据类型FruitItem类型
                ArrayList<FruitItem> array = new ArrayList<FruitItem>();
                //调用商品初始化方法,传递集合
                init(array);
                while(true){
                    //调用菜单方法
                    mainMenu();         
                }
            }   
            /*
             * 定义方法,实现主菜单
             * 提示用户哪些选择 让选择序号
             * 返回值: 无
             * 参数: 无
             */
            public static void mainMenu(){
                System.out.println();
                System.out.println("============欢迎光临ItCast超市============");
                System.out.println("1: 货物 清单   2: 添加货物   3: 删除货物   4: 修改货物  5: 退出");
                System.out.println("请您输入要操作的功能序号");
            }
            
            /*
             * 定义方法,实现商品数据的初始化
             * 先将一部分数据,存储集合中
             * 返回值: 无
             * 参数 : 集合
             * 方法名: init
             */
            public static void init(ArrayList<FruitItem> array){
                //创建出多个FruitItem类型,并且属性赋值
                FruitItem f1 = new FruitItem();
                f1.ID = 9527;
                f1.name = "少林寺酥饼核桃";
                f1.price = 12.7;
                
                FruitItem f2 = new FruitItem();
                f2.ID = 9008;
                f2.name = "尚康杂粮牡丹饼";
                f2.price = 5.6;
                
                FruitItem f3 = new FruitItem();
                f3.ID = 9879;
                f3.name = "新疆原产哈密瓜";
                f3.price = 599.6;
                
                //创建的3个FruitItem类型变量,存储到集合中
                array.add(f1);
                array.add(f2);
                array.add(f3);
            }
            
        }

用户选择功能

* A: 用户选择功能
    * a: 案例代码
        import java.util.ArrayList;
        import java.util.Scanner;
​
        /*
         *   超市管理系统主
         *   实现:
         *     1. 商品数据的初始化
         *     2. 用户的菜单选择
         *     3. 根据选择执行不同的功能
         *       3.1 Read    查看商品
         *       3.2 Create  添加商品
         *       3.3 Delete  删除商品
         *       3.4 Update  修改商品
         *       
         *       
         *   所有功能 ,必须定义方法实现
         *   主方法main  调用作用
         */
        public class Shopp {
​
            public static void main(String[] args) {
                //创建ArrayList集合,存储商品类型,存储数据类型FruitItem类型
                ArrayList<FruitItem> array = new ArrayList<FruitItem>();
                //调用商品初始化方法,传递集合
                init(array);
                while(true){
                    //调用菜单方法
                    mainMenu();
                    //调用用户选择序号方法
                    int choose = chooseFunction();
                    switch (choose) {
                    case 1:
                        //调用1: 货物 清单
                        showFruitList(array);
                    break;
                    
                    case 2:
                        //2: 添加货物
                        addFruit(array);
                    break;
                    
                    case 3:
                        //3: 删除货物
                        deleteFruit(array);
                    break;
                    
                    case 4:
                        //4: 修改货物
                        updateFruit(array);
                    break;
                    
                    case 5:
                        return ;
​
                    default:
                        System.out.println("输入的序号没有");
                        break;
                    }
                }
            }   
            /*
             *  定义方法,实现接受用户的键盘输入
             *  返回编号
             */
            public static int chooseFunction(){
                Scanner sc = new Scanner(System.in);
                return sc.nextInt();
            }
            
            /*
             * 定义方法,实现主菜单
             * 提示用户哪些选择 让选择序号
             * 返回值: 无
             * 参数: 无
             */
            public static void mainMenu(){
                System.out.println();
                System.out.println("============欢迎光临ItCast超市============");
                System.out.println("1: 货物 清单   2: 添加货物   3: 删除货物   4: 修改货物  5: 退出");
                System.out.println("请您输入要操作的功能序号");
            }
            
            /*
             * 定义方法,实现商品数据的初始化
             * 先将一部分数据,存储集合中
             * 返回值: 无
             * 参数 : 集合
             * 方法名: init
             */
            public static void init(ArrayList<FruitItem> array){
                //创建出多个FruitItem类型,并且属性赋值
                FruitItem f1 = new FruitItem();
                f1.ID = 9527;
                f1.name = "少林寺酥饼核桃";
                f1.price = 12.7;
                
                FruitItem f2 = new FruitItem();
                f2.ID = 9008;
                f2.name = "尚康杂粮牡丹饼";
                f2.price = 5.6;
                
                FruitItem f3 = new FruitItem();
                f3.ID = 9879;
                f3.name = "新疆原产哈密瓜";
                f3.price = 599.6;
                
                //创建的3个FruitItem类型变量,存储到集合中
    array.add(f1);
    array.add(f2);
    array.add(f3);
    }

    }

商品的清单功能

* A: 商品的清单功能
    * a: 案例代码(显示商品清单的showFruitList(ArrayList<FruitItem>)方法的代码如下)
        /*
         *  定义方法,实现显示货物清单功能
         *  返回值: 无
         *  参数: 集合
         *  遍历集合,获取集合中的每个FruitItem变量,变量,调用属性
         */
        public static void showFruitList(ArrayList<FruitItem> array){
            System.out.println();
            System.out.println("================商品库存清单================");
            System.out.println("商品编号         商品名称                商品单价");
            //遍历集合
            for(int i = 0 ; i < array.size(); i++){
                //集合get方法,获取出每个FruitItem变量,可以使用FruitItem接受get结果
                FruitItem item = array.get(i);
                //变量item调用类中属性
                System.out.println(item.ID+"   "+item.name+"        "+item.price);
            }
        }

商品的添加功能

* A: 商品的添加功能
    * a: 案例代码(商品添加功能的addFruit(ArrayList<FruitItem>)方法的代码如下)
        /*
         * 定义方法,实现商品的添加功能
         * 返回值:无
         * 参数: 集合
         * 提示用户选择的是添加商品的功能
         * 
         * 提示用户输入的是什么
         * 
         * 创建FruitItem变量,变量调用的属性
         * 将输入的每个商品属性进行赋值
         */
        public static void addFruit(ArrayList<FruitItem> array){
            System.out.println("选择的是添加商品功能");
            //创建Scanner变量
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入新商品的编号:");
            //输入商品的编号
            int ID = sc.nextInt();
            //输入商品的名字
            System.out.print("请输入新商品的名字:");
            String name = sc.next();
            //输入商品的单价
            System.out.print("请输入新商品的单价:");
            double price = sc.nextDouble();
            //创建FruitItem变量
            FruitItem item = new FruitItem();
            //item.属性赋值
            item.ID = ID;
            item.name = name;
            item.price = price;
            array.add(item);
            System.out.println("商品添加成功");
        }

商品的删除功能

* A: 商品的删除功能(删除商品deleteFruit(ArrayList<FruitItem>)方法的代码如下)
    * a: 案例代码
        /*
         *  定义方法,实现商品的删除功能
         *  返回值: 无
         *  参数: 集合
         *  
         *  删除依靠的是商品的编号
         *  提示用户选择的是删除功能
         *  键盘输入商品的编号
         *  遍历集合,获取集合中的每个FruitItem变量
         *  变量调用属性 ID, 和用户的输入的编号,对比,相同就删除
         */
        public static void deleteFruit(ArrayList<FruitItem> array){
            System.out.println("选择的是删除功能");
            System.out.print("请输入商品的编号:");
            Scanner sc = new Scanner(System.in);
            
            int ID = sc.nextInt();
            //遍历集合
            for(int i = 0 ; i < array.size(); i++){
                //获取到每个FruitItem变量
                FruitItem item = array.get(i);
                //变量,调用属性ID,和用户输入的编号比较
                if( item.ID == ID){
                    //移除集合中的元素
                    //集合的方法remove实现
                    array.remove(i);
                    System.out.println("删除成功");
                    return;
                }
            }
            System.out.println("你输入的编号不存在");
        }

商品的修改功能

* A: 商品的修改功能
    * a: 案例代码(修改商品updateFruit(ArrayList<FruitItem>)方法的代码如下)
        /*
         *  定义方法,实现商品的修改功能
         *  返回值: 无
         *  参数: 集合
         *  
         *  提示用户选择的是修改功能
         *  提示用户输入需要修改的商品编号
         *  遍历集合,获取每个FruitItem变量
         *  变量调用ID属性,属性和用户输入的编号比较
         *  如果相同:
         *    修改调FruitItem中的属性值
         *    键盘输入
         */
        public static void updateFruit(ArrayList<FruitItem> array){
            System.out.println("选择的是修改功能");
            System.out.print("请输入您要修改的商品的编号:");
            
            Scanner sc = new Scanner(System.in);
            int ID = sc.nextInt();
            //遍历集合,获取每个FruitItem变量
            for(int i = 0 ; i < array.size(); i++){
                FruitItem item = array.get(i);
                //获取FruitItem的属性ID,和用户输入的ID比较
                if(item.ID == ID){
                    System.out.print("输入新的商品编号:");
                    item.ID = sc.nextInt();
                    
                    System.out.print("输入新的商品名字:");
                    item.name = sc.next();
                    
                    System.out.print("输入新的商品价格:");
                    item.price = sc.nextDouble();
                    System.out.println("商品修改成功");
                    return ;
                }
            }
            System.out.println("输入的编号不存在");
        }
原文地址:https://www.cnblogs.com/alexzhang92/p/9969313.html