首页 技术 正文
技术 2022年11月9日
0 收藏 822 点赞 4,811 浏览 3716 个字

案例介绍:

  模拟真实的库存管理逻辑,完成超市管理系统的日常功能实现,见下图

                  Java案例:超市库存管理系统

案例需求分析:

根据案例介绍,我们进行分析,首先需要一个功能菜单,然后输入功能序号后,调用序号对应的功能方法,实现想要的操作。分析步骤如下

1.完成超市商品初始化。创建商品,将商品添加到集合

2.显示来到超市能做的操作,也就是显示主菜单

3.根据接收到的功能选项,执行对应的功能

   3.1.库存货物查询

  3.2.添加新货物

  3.3.删除货物

  3.4.修改货物

  3.5.退出系统,结束main方法的运行

4.循环,回到 2.显示主菜单

实现代码步骤:

  每种库存商品都拥有多项商品信息,为了方便管理每种商品的信息,我们对商品信息进行封装,编写FruitItem.java文件

public class FruitItem {    int ID;            //商品编号    String name;        //商品名称    double price;        //商品单价}

  上述代码中,对商品信息(编号、名称、单价、数量、金额)进行了封装。这样做的好处在于以后只要找到这个商品,就能够知道该商品的每项信息了。

  编写FruitStore.java,完成如下功能:

      //编写main主方法  public static void main(String[] args) {        //定义数组,记录每个商品信息        ArrayList<FruitItem> list = new ArrayList<FruitItem>();        /*         * 1.超市商品初始化         */        init(list);        while(true){            /*             * 2.显示主菜单             */            mainMenu();            /*             * 3.根据接收到的功能选项,执行对应的功能             */            chooseFunction(list);        }    }

  上述代码中,通过while(true)循环,完成用户调用不同功能。实现重复功能选择操作。

  1.超市商品初始化,创建商品,将商品添加到集合

public static void init(ArrayList<FruitItem> list) {        FruitItem item = new FruitItem();        item.name = "少林寺酥饼核桃";        item.ID = 9001;        item.price = 120.0;        FruitItem item2 = new FruitItem();        item2.name = "尚康杂粮牡丹饼";        item2.ID = 9002;        item2.price = 20.0;        FruitItem item3 = new FruitItem();        item3.name = "新疆原产哈密瓜";        item3.ID = 9003;        item3.price = 7.0;        list.add(item);        list.add(item2);        list.add(item3);    }

  上述代码中,完成商品集合的初始化操作,添加了3件商品。

  2.显示来到超市能做的操作,也就是显示主菜单

   public static void mainMenu() {         System.out.println("=========================欢迎光临itcast超市=========================");         System.out.println("1:查询货物 2:添加新货物 3:删除货物 4:修改货物");         System.out.println("5:退出系统");    }

  上述代码,用来完成用户操作界面的显示。

  3.根据接收到的功能选项,执行对应的功能

   public static void chooseFunction(ArrayList<FruitItem> list) {        System.out.println("请您输入要操作的功能序号:");        Scanner sc = new Scanner(System.in);//键盘输入对象        String choose = sc.next();        //根据接收到的选择,执行对应的功能        switch (choose) {        case "1": //3.1.库存货物查询            showFruitList(list);            break;        case "2": //3.2.添加新货物            addFruitItem(list);            break;        case "3": //3.3.删除货物            delFruitItem(list);            break;        case "4": //3.4.修改货物            updateFruitItem(list);            break;        case "5": //3.5.退出系统,退出JVM            System.out.println("退出系统");            return;        default:            System.out.println("对不起,没有您输入的功能,请重新选择");            break;        }    }

  上述代码中,参数list为库存商品集合。当键盘输入功能序号后,通过switch语句匹配后,调用对应的方法完成对应功能的实现。

  3.1.库存货物查询

   public static void showFruitList(ArrayList<FruitItem> list) {        System.out.println("=======================商品库存清单=======================");        System.out.println("商品编号\t商品名称\t\t商品单价");        //查询每种库存商品信息        for (int i = 0; i < list.size(); i++) {            FruitItem item = list.get(i);            System.out.println(item.ID + "\t" + item.name + "\t" + item.price);        }    }

   上述代码中,用来查询所有库存商品信息。

  3.2.添加新货物

  public static void addFruitItem(ArrayList<FruitItem> list) {        //创建新获取对象        FruitItem newItem = new FruitItem();        Scanner sc = new Scanner(System.in);//键盘输入对象        //提示输入信息        System.out.print("请输入新水果的名称:");        newItem.name = sc.next();        System.out.print("请输入新水果的编号:");        newItem.ID = sc.nextInt();        System.out.print("请输入新水果单价:");        newItem.price = sc.nextDouble();        //向货物集合中添加新的物品项        list.add(newItem);    }

  上述代码中,通过键盘录入,将录入的商品信息存储到库存商品集合中。

  3.3.删除货物

   public static void delFruitItem(ArrayList<FruitItem> list) {        System.out.print("请输入您要删除的水果编号:");        Scanner sc = new Scanner(System.in);//键盘输入对象        int fruitID = sc.nextInt();        //删除集合元素        for (int i = 0; i < list.size(); i++) {            FruitItem thisItem = list.get(i);            if(thisItem.ID == fruitID) {                list.remove(thisItem);                System.out.println("水果信息删除完毕!");                return;            }        }        System.out.println("对不起,没有这个编号的水果!");    }

  上述代码中,通过键盘录入,在库存集合中查找对应的商品编号,如果找到该商品,将该商品删除,否则,提示没有这个编号的商品。

  3.4.修改货物

   public static void updateFruitItem(ArrayList<FruitItem> list) {        System.out.println();        System.out.print("请输入您要修改信息的水果编号:");        Scanner sc = new Scanner(System.in);//键盘输入对象        int fruitID = sc.nextInt();        //更新集合元素        for (int i = 0; i < list.size(); i++) {            FruitItem thisItem = list.get(i);            if(thisItem.ID == fruitID) {                System.out.print("请输入新的水果ID:");                thisItem.ID = sc.nextInt();                System.out.print("请输入新的水果名称:");                thisItem.name = sc.next();                System.out.print("请输入新的水果单价:");                thisItem.price = sc.nextDouble();                System.out.println("水果信息更新完毕!");                return;            }        }        System.out.println("对不起,没有这个编号的水果!");    }

  上述代码中,通过键盘录入,在库存集合中查找对应的商品编号,如果找到该商品,则键盘录入修改商品信息,否则,提示没有这个编号的商品。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905