案例介绍:

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

                  

案例需求分析:

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

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("对不起,没有这个编号的水果!");

    }

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

Java案例:超市库存管理系统的更多相关文章

  1. Java学习笔记7(简易的超市库存管理系统示例)

    用以前学过的知识,可以简单地做一个超市库存管理系统: 定义一个商品类: public class FruitItem { int ID; String name; double price; int ...

  2. java全栈day07---Eclipse开发工具 超市库存管理系统

    前六天我们都是用Notepad++来编写java程序,通过DOS命令来运行,我们发现这样比较繁琐,那么我们今天就用一个工具Eclipse来开发java Eclipse的下载安装 * A: Eclips ...

  3. java超市购物管理系统

    一.概述 1.鹏哥前面有写过java项目超市管理系统项目,传送门 2.收到很多朋友私信给我,也很感谢老铁们的反馈和交流,前面这个项目只是对java基础知识和面向对象的思想练习,但是没有涉及到java如 ...

  4. Java初学者作业——为某超市设计管理系统,需要在控制台展示系统菜单,菜单之间可以完成跳转。

    返回本章节 返回作业目录 需求说明: 为某超市设计管理系统,需要在控制台展示系统菜单,菜单之间可以完成跳转. 实现思路: 定义mainMenu方法,用于显示主菜单. 主菜单主要负责显示4个选项,分别是 ...

  5. 第82节:Java中的学生管理系统

    第82节:Java中的学生管理系统 学生管理系统的删除功能 删除,点击超链接,点击弹出对话框式是否进行删除,如果确定,就删除,超链接执行的是js方法,在js里访问,跳转servlet,,servlet ...

  6. JavaSE库存管理系统项目实战

    需求分析 企业库房用于存放成品.半成品.原材料.工具等物资,一般情况下,这些物资统称为物料.库存管理常见业务包括物资的入库.出库.盘点.退货.报废以及财务核算等,业务逻辑比较复杂,库房信息系统项目开发 ...

  7. 项目一:ssm超市订单管理系统

    声明:项目参考于课程教材,学习使用,仅在此记录 项目介绍 ssm超市订单管理系统,功能模块有订单管理,供应商管理,用户管理,密码修改,退出系统,管理模块中包括基本的增删改查 集成工具使用idea,基于 ...

  8. SSM整合案例:图书管理系统

    目录 SSM整合案例:图书管理系统 1.搭建数据库环境 2.基本环境搭建 2.1.新建一个Maven项目,起名为:ssmbuild,添加web的支持 2.2.导入pom的相关依赖 2.3.Maven静 ...

  9. 面向对象案例-学生信息管理系统V0.6

    更新版本 面向对象案例 - 学生信息管理系统V1.0 项目要求: 实体类: 学生类: id, 姓名,年龄,性别,成绩 需要使用数组保存学生信息 Student[] allStu 需要完成的方法 1. ...

随机推荐

  1. Jenkins与Git持续集成&&Linux上远程部署Java项目

    一.环境搭建 1.安装所需软件 Jdk Maven Jenkins Tomcat Xshell git 以上软件去官网下载,比较简单,不一一描述了 2.安装所需的jenkins插件 Git plugi ...

  2. 《大道至简》第一章--编程的精意 读后感(JAVA伪代码)

    1. /*愚公移山 原始需求:惩山北之塞,出入之迂: 项目沟通:聚室而谋曰: 项目目标:毕力平险,指通豫南,达于汉阴: 技术方案:扣石垦壤,箕畚运于渤海之尾: 人员构成:愚公率子孙荷担者三夫,邻人京城 ...

  3. Liunx 硬盘分区

    1)什么要进行硬盘分区:a) 更容易管理和控制系统,因为相关的文件和目录都放在一个分区中.b) 系统效率更高.c) 可以限制用户使用硬盘的份额(磁盘空间的大小).d) 更容易备份和恢复. 2)硬盘的逻 ...

  4. Maven 系列 一 :Maven 快速入门及简单使用

    开发环境 MyEclipse 2014 JDK 1.8 Maven 3.2.1 1.什么是Maven? Maven是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理. 2.下载及安装 下载最 ...

  5. 定时任务起的java进程没有释放导致oracle的问题not availavle & out of memory

    最近发现一个问题,我们设置了一个定时任务,用于每天的对账,每天的对账都是启动一个java程序(jar包),时间久了,出现下面的问题: 有很多CardPaymentBatch.jar进程驻留在系统当中, ...

  6. 谁说delphi没有IOCP库,delphi新的IOCP类库,开源中: DIOCP组件JSON流模块说明

    单元:JSonStream.pas 简介:本单元实现 流和json对象的相互转换,其中有一些保留的key. 依赖:superobject 保留key: __result.errCode  返回的错误编 ...

  7. 【SoapUI】比较Json response

    package direct; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject ...

  8. Spring ConversionService 类型转换(一)Converter

    Spring ConversionService 类型转换(一)Converter Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.h ...

  9. mysql 查询 所有 父节点 单表

    SELECT T2.* FROM ( SELECT @r AS _id, ( SELECT @r := parent_id FROM tp_module_rel WHERE REL_ID = _id ...

  10. css字符串转换为类map对象及反转

    存储对象为啥是类map(即:{key:val,...}格式),因为Map对象的val为字符时,无法存储 '('.')' 左右括号,我也很无奈╮(╯▽╰)╭ 解析脚本: <!DOCTYPE htm ...