超市研发系统

/*
 * 下述代码中,对商品信息(编号,名称,单价)进行封装
 * 这样做到好处在于以后只要找到这个商品,就能够知道该商品的每项信息
 */
public class FruitItem01 {
    //商品的ID
    int ID;
    
    //商品的名称
    String name;
    
    //商品的单价
    double price;
}


 

   /*
     * 定义方法,实现商品数据的初始化
     * 先将一部分数据,存储在集合中
     * 返回值:void
     * 参数:共享的数据集合
     */
    public static void init(ArrayList<FruitItem01> array) {
        //创建多个FruitItem类型,并且属性赋值
        FruitItem01 f1 = new FruitItem01();
        f1.ID = 9527;
        f1.name = "少林寺酥饼核桃";
        f1.price = 12.7;
        
        FruitItem01 f2 = new FruitItem01();
        f2.ID = 9005;
        f2.name = "少林寺酥饼核桃露";
        f2.price = 122.7;
        
        FruitItem01 f3 = new FruitItem01();
        f3.ID = 9225;
        f3.name = "嵩山大饼";
        f3.price = 152.7;
        
        //创建的三个FruitItem类型变量,存储到集合中
        array.add(f1);
        array.add(f2);
        array.add(f3);
    }
    /*
     * 定义方法,实现主菜单
     * 提示用户哪些选择,让选择序号
     * 返回值:void
     * 参数:void
     */
    public static void mainMenu() {
        System.out.println();
        System.out.println("==========欢迎光临ItCast超市==========");
        System.out.println("1:货物清单 2:添加货物 3:删除货物 4:修改货物 5:退出");
        System.out.println("请输入要操作的功能序号");        
    }
    /*
     * 定义方法,实现接受用户的键盘输入
     * 返回值:int
     * 参数:无
    */
    public static int chooseFunction(){
        Scanner sc = new Scanner(System.in);
        return sc.nextInt();
    }
    /*1:货物清单
     *     定义方法,实现显示货物清单功能
     *     返回值:void
     *     参数:共享数据的集合
     *     遍历集合,获取集合中的每个FruitItem变量,变量,调用属性
     */
    public static void     showFruitItem(ArrayList<FruitItem01> array){
        System.out.println();
        System.out.println("================商品库存清单================");
        System.out.println("商品编号" + "      " + "商品名称" + "           " + "商品单价");
        //遍历集合
        for (int i = 0; i < array.size(); i++) {
            //利用集合中get方法,获取出每个FruitItem变量,可以使用FruitItem变量获取相应的属性
            FruitItem01 item = array.get(i);
            //变量item调用类中属性
            System.out.println(item.ID + "\t" + item.name + "\t" + item.price);
        }
    }    
  

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

/*
 * 超市管理系统主程序:
 * 实现步骤:
 *         1.商品数据的初始化
 *         2.用户的菜单选择
 *         3.根据选择不同执行不同的功能
 *             3.1 Read    查看商品
 *             3.2    Create    添加商品
 *             3.3 Delete    删除商品
 *             3.4 Update  修改商品
 */
public class Shopp01 {
    public static void main(String[] args) {
        //1.创建ArrayList集合,存储商品类型,存储数据类型FruitItem类型
        //让集合成为公共,方便下面方法进行参数传递
        ArrayList<FruitItem01> array = new ArrayList<FruitItem01>();
        //2.调用商品初始化方法,传递集合
        init(array);
        //打印集合中,三个地址,bingo
        //[FruitItem01@3ef810, FruitItem01@100363, FruitItem01@14e8cee]
        //System.out.println(array);//可以用来测试成功初始化商品清单
        //3.进入死循环,运行系统
        while(true){
            //3.1调用主菜单
            mainMenu();
            //3.2调用用户选择序号的方法
            int choose = chooseFunction();
            //3.3进入功能选择
            switch (choose) {
            case 1:
                    //4.1.调用1:货物清单
                    showFruitItem(array);
                break;
                
            case 2:
                    //4.2.调用2:添加货物
                    addFruitItem(array);
                break;    
                
            case 3:
                    //4.3.调用3:删除货物
                    deleteFruitItem(array);
                break;    
            
            case 4:
                    //4.4.调用4:修改货物
                    updateFruitItem(array);
                break;    
            
            case 5:
                    //4.5.调用5.退出系统
                    System.out.println("退出超市系统");
                return;    
                
            default:
                    System.out.println("没有此项功能");
                break;
            }
        }
    }


  

  /*2:添加货物
     * 定义方法,实现商品的添加功能
     * 返回值:void
     * 参数:共享数据的集合
     * 提示用户选择的是添加商品的功能
     *
     * 创建FruitItem变量,变量调用的属性
     * 将输入的每个商品属性进行赋值
     */
    public static void addFruitItem(ArrayList<FruitItem01> array){
        System.out.println("恭喜哦,选择的是添加商品的功能");
        //创建Scanner变量
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入商品的ID编号:");
        //输入商品的ID编号
        int ID = sc.nextInt();
        //输入商品的名称
        System.out.println("请输入商品的名称:");
        String name = sc.next();
        //输入商品的单价
        System.out.println("请输入商品的单价:");
        double price = sc.nextDouble();
        //创建FruitItem变量
        FruitItem01 item = new FruitItem01();
        //item.属性赋值
        item.ID = ID;
        item.name = name;
        item.price = price;
        //将集合元素装配好,放入集合容器中
        array.add(item);
        System.out.println("添加商品成功哦!");
    }

    /*3.删除货物
     * 定义方法,实现商品的删除功能
     * 返回值:void
     * 参数:共享的数据集合容器
     *
     * 删除靠的是商品的编号
     * 提示用户选择的是删除功能
     * 键盘输入商品的编号
     * 遍历集合,获取集合中的每个FruitItem变量
     * 变量调用属性ID,和用户输入的ID编号,对比相同,就删除
     */
    public static void deleteFruitItem(ArrayList<FruitItem01> array){
        System.out.println("选择的是删除功能");
        System.out.println("请输入商品的ID编号:");
        Scanner sc = new Scanner(System.in);
        int ID = sc.nextInt();
        //遍历集合
        for (int i = 0; i < array.size(); i++) {
            //获取到每个FruitItem变量
            FruitItem01 item = array.get(i);
            //变量,调用属性ID,和用户输入的ID编号进行匹配
            if(item.ID == ID){
                //移除集合中的元素
                array.remove(i);
                System.out.println("删除成功!");
                //当遍历到需要删除的ID的时候,就不需要在往下遍历
                //采用break,确实能结束这个循环,但是会继续执行for循环体后面的输出语句
                //当时采用return,结束的就是这个方法,不会在执行for循环体后面的输出语句
                return;
            }
        }
        System.out.println("您输入的ID编号不存在!");
    }


 

   /*4.修改货物
     * 定义方法,实现商品的修改功能
     * 返回值:void
     * 参数:共享数据的集合容器
     *
     * 提示用户选择的是修改功能
     * 提示用户输入需要修改的商品编号
     * 遍历集合,获取每个FruitItem变量
     * 变量调用ID属性,属性和用户输入的ID编号进行比较
     * 如果相同:
     *             修改调FruitItem中的属性值
     *             键盘输入
     *
     */
    public static void updateFruitItem(ArrayList<FruitItem01> array){
        System.out.println("选择的是修改功能");
        System.out.println("请输入您要修改的商品的ID编号:");
        
        Scanner sc = new Scanner(System.in);
        int ID = sc.nextInt();
        //遍历集合,获取每个FruitItem变量
        for (int i = 0; i < array.size(); i++) {
            FruitItem01 item = array.get(i);
            //获取FruitItem的属性ID,和用户输入的比较
            if(item.ID == ID){
                System.out.println("请输入新的ID编号:");
                item.ID = sc.nextInt();
                
                System.out.println("请输入新的商品名称");
                item.name = sc.next();
                
                System.out.println("请输入商品的单价");
                item.price = sc.nextDouble();
                
                System.out.println("修改成功");
                //当遍历到需要修改的ID的时候,就不需要在往下遍历
                //采用break,确实能结束这个循环,但是会继续执行for循环体后面的输出语句
                //当时采用return,结束的就是这个方法,不会在执行for循环体后面的输出语句
                return;
            }
        }
        System.out.println("您输入需要修改的ID编号不存在!");
    }
}

猜你喜欢

转载自blog.csdn.net/qq_27248989/article/details/84175936