完成一个超市仓库商品库存管理系统,系统包含商品类和管理员类,其中商品类和管理员类包含相关属性如下:

管理员(id,账号,密码,姓名,手机号)

商品(id,商品名,类别名,单价,库存量,状态-是否上架,管理员id)

要求功能入下:

  1. 系统存在默认管理员账号softeem,密码:admin123

    1. 管理员登录系统进入商品管理
    2. 商品信息录入
    3. 查询所有商品信息
    4. 根据类别名称显示该分类下所有商品
    5. 查询所有下架(状态:0)/上架(状态:1)商品
    6. 显示所有库存不足商品(库存量 == 0)
    7. 根据商品id修改商品价格
    8. 根据商品id修改商品库存量

使用模板方法模式

package com.softeem.supermarket;

public class Comm {
    private int cid;            //商品id
    private String cname;    //商品名称
    private String sort;    //类别
    private double price;    //价格
    private int kucun;        //库存
    private int state;        //状态-是否上架
    private Manager man;    //管理员ID

public Comm() {
        // TODO Auto-generated constructor stub
    }

public Comm(int cid, String cname, String sort, double price, int kucun, int state, Manager man) {
        super();
        this.cid = cid;
        this.cname = cname;
        this.sort = sort;
        this.price = price;
        this.kucun = kucun;
        this.state = state;
        this.man = man;
    }

public int getCid() {
        return cid;
    }

public void setCid(int cid) {
        this.cid = cid;
    }

public String getCname() {
        return cname;
    }

public void setCname(String cname) {
        this.cname = cname;
    }

public String getSort() {
        return sort;
    }

public void setSort(String sort) {
        this.sort = sort;
    }

public double getPrice() {
        return price;
    }

public void setPrice(double price) {
        this.price = price;
    }

public int getKucun() {
        return kucun;
    }

public void setKucun(int kucun) {
        this.kucun = kucun;
    }

public int getState() {
        return state;
    }

public void setState(int state) {
        this.state = state;
    }

public Manager getMan() {
        return man;
    }

public void setMan(Manager man) {
        this.man = man;
    }

@Override
    public String toString() {
        return "ID:" + cid + ", 名字:" + cname + ", 类型:" + sort + ", 价格:" + price + ",库存:" + kucun
                + ", 上架/下架情况:" + state + ", 管理员编号:" + man.getSno();
    }
}

package com.softeem.supermarket;

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

public class CommSpuermarket implements SupermarketAble {
    ArrayList<Comm> listcom = new ArrayList<>();

/**
     * 登陆
     */
    @Override
    public Object add(Object obj) {
        
        return obj;

}
    /**
     * 录入
     */
    @Override
    public boolean luru(Object obj) {
        Comm c = (Comm) obj;
        return listcom.add(c);
        
    }
    /**
     * 查询所有
     */
    @Override
    public ArrayList show(Object obj) {
        ArrayList list = new ArrayList();
        String str =obj.toString();
        for (Comm comm : listcom) {
            
             list.add(comm);
            
        }
        return list;
    }
    /**
     * 查询一种
     */
    @Override
    public ArrayList oneShowList(Object obj) {
        ArrayList list = new ArrayList();
        String s = obj.toString();
        for (Comm comm : listcom) {
            if (Objects.equals(comm.getSort(), s)) {
                list.add(comm);
            }
        }
        return list;
    }
    /**
     * 查询已下架的
     */
    @Override
    public ArrayList showNull(Object obj) {
        ArrayList list = new ArrayList<>();
        ArrayList list2 = new ArrayList<>();
        for (Comm comm : listcom) {
            if (comm.getKucun()==1) {
                list.add(comm);
            }
            if(comm.getKucun()==0){
                list2.add(comm);
            }
        }
        if(((Integer)obj==1)){
            if(list.size()==0){
                System.out.println("暂无上架产品");
                System.err.println(list.size());
            }else{
                return list;
            }
        }
        if(list2.size()==0){
            System.out.println("暂无下架产品");
            System.out.println(list.size());
        }
        return list2;
    }
    /**
     * 查看库存
     */
    
    public ArrayList showKuCun() {
        ArrayList list = new ArrayList<>();
        for (Comm comm : listcom) {
            if (comm.getKucun()==0){
                list.add(comm);
            }
            if(list.size()==0){
                System.out.println("暂无");
            }
        }
        return list;
    }
    /**
     * 根据商品id修改商品价格
     */
    @Override
    public boolean delPrice(Object obj,int i) {
        Comm c = (Comm)obj;
        boolean flag=true;
        for (Comm comm : listcom) {
            if(Objects.equals(comm.getCid(), c.getCid())){
                System.out.println("请输入要修改的价格");
                Scanner sc = new Scanner(System.in);
                int i1 =sc.nextInt();
                comm.setPrice(i1);
                System.out.println("修改成功");
                flag=false;
            }
        }
        if(flag){
            System.out.println("没有找到该ID");
        }
        return false;
    }
    /**
     * 根据商品id修改商品库存量
     */
    @Override
    public boolean delKuCun(Object obj,int i) {
        Comm c = (Comm) obj;
        boolean flag=true;
        for (Comm comm : listcom) {
            if(Objects.equals(comm.getCid(), c.getCid())){
                System.out.println("请输入要修改的价格");
                Scanner sc = new Scanner(System.in);
                int i1 =sc.nextInt();
                comm.setKucun(i1);
                System.out.println("修改成功");
                flag=false;
            }
        }
        if(flag){
            System.out.println("没有找到该ID");
        }
        return false;
    }

}

package com.softeem.supermarket;

public class Manager {
    private int mid;        //管理员ID
    private String sno;        //管理员账号
    private String password;//管理员密码
    private String mname;    //管理员姓名
    private String phonenum;//管理员电话号码
    
    public Manager() {
        // TODO Auto-generated constructor stub
    }

public Manager(int mid, String sno, String password, String mname, String phonenum) {
        super();
        this.mid = mid;
        this.sno = sno;
        this.password = password;
        this.mname = mname;
        this.phonenum = phonenum;
    }

public int getMid() {
        return mid;
    }

public void setMid(int mid) {
        this.mid = mid;
    }

public String getSno() {
        return sno;
    }

public void setSno(String sno) {
        this.sno = sno;
    }

public String getPassword() {
        return password;
    }

public void setPassword(String password) {
        this.password = password;
    }

public String getMname() {
        return mname;
    }

public void setMname(String mname) {
        this.mname = mname;
    }

public String getPhonenum() {
        return phonenum;
    }

public void setPhonenum(String phonenum) {
        this.phonenum = phonenum;
    }

@Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((password == null) ? 0 : password.hashCode());
        result = prime * result + ((sno == null) ? 0 : sno.hashCode());
        return result;
    }

@Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Manager other = (Manager) obj;
        if (password == null) {
            if (other.password != null)
                return false;
        } else if (!password.equals(other.password))
            return false;
        if (sno == null) {
            if (other.sno != null)
                return false;
        } else if (!sno.equals(other.sno))
            return false;
        return true;
    }
    
}

package com.softeem.supermarket;

import java.util.ArrayList;
import java.util.Objects;

public class ManagerSupermarket implements SupermarketAble {
    @Override
    public Object add(Object obj) {
        // TODO Auto-generated method stub        
        Manager m = (Manager) obj;
    
            if(m.getSno().equals("softeem") && m.getPassword().equals("admin123")){
                return m;
                }
        
        return null;
        
    }

@Override
    public boolean luru(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }

@Override
    public ArrayList show(Object obj) {
        return null;
        // TODO Auto-generated method stub
        
    }

@Override
    public ArrayList oneShowList(Object obj) {
        // TODO Auto-generated method stub
        return null;
    }

@Override
    public ArrayList showNull(Object obj) {
        // TODO Auto-generated method stub
        return null;
    }

public ArrayList showKuCun() {
        // TODO Auto-generated method stub
        return null;
    }

@Override
    public boolean delPrice(Object obj,int i) {
        return false;
        // TODO Auto-generated method stub
        
    }

@Override
    public boolean delKuCun(Object obj,int i) {
        return false;
        // TODO Auto-generated method stub
    
    }

}

package com.softeem.supermarket;

import java.util.ArrayList;

public interface SupermarketAble {
    //登陆
    public Object add(Object obj);
    //商品信息录入
    public boolean luru(Object obj);
    //查询所有商品信息
    public ArrayList show(Object obj);
    //根据类别名称显示该分类下所有商品
    public ArrayList oneShowList(Object obj);
    //查询所有下架
    public ArrayList showNull(Object obj);
    //显示所有库存不足商品(库存量 == 0)
    public ArrayList showKuCun();
    //根据商品id修改商品价格
    public boolean delPrice(Object obj,int i);
    //根据商品id修改商品库存量
    public boolean delKuCun(Object obj,int i);
     
}

package com.softeem.supermarket;

import java.util.Objects;
import java.util.Scanner;

public class SupermarketSystem {
    SupermarketAble sac = new CommSpuermarket();
    SupermarketAble sam = new ManagerSupermarket();
    Manager man;
    Comm com;
    
    public void menu1(){
        System.out.println("=======仓库商品库存管理系统=======");
        System.out.println("==========1.管理员登陆===========");
        System.out.println("==========0.退出================");
        Scanner sc1 = new Scanner(System.in);
        int i =  sc1.nextInt();
        
        switch(i){
        case 1:
                lonin();
            break;
        case 0:
            System.out.println("再见");
            System.exit(0);
            break;
        }
    }
    /**
     * 信息录入
     */
    private void lonin() {
        System.out.println("请输入账号/密码");
        Scanner sc2 = new Scanner(System.in);
        String [] str = sc2.nextLine().split("/");
        Manager m = new Manager((Integer)0,str[0],str[1],null,null);
        Object obj = sam.add(m);
        if(obj!=null){
            System.out.println("登陆成功");
            man=(Manager)obj;
            menu2();
        }else{
            System.out.println("登陆失败,密码或者用户名错误");
            menu1();
        }
        
        
        
    }
    private void menu2() {
        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("====================6.根据商品id修改商品价格===========");
        System.out.println("====================7.根据商品id修改商品库存===========");
        System.out.println("====================0.退出==========================");
        System.out.println("===================================================");
        Scanner sc3 = new Scanner(System.in);
        int i = sc3.nextInt();
        switch(i){
        case 1:
            luru();
            break;
        case 2:
            show();
            break;
        case 3:
            snoShow();
            break;
        case 4:
            showPutaway();
            break;
        case 5:
            showNoKucun();
            break;
        case 6:
            UpdatePrice();
            break;
        case 7:
            UpdataKuCun();
            break;
        case 0:
                menu1();
            break;
            default :
                System.out.println("输入错误,请重新输入");
                menu2();
                break;
        }
    }
    private void UpdataKuCun() {
        System.out.println("请输入要修改商品的ID");
        Scanner sc8 = new Scanner(System.in);
        int i =sc8.nextInt();
        
        sac.delKuCun(com,i);
        menu2();
    }
    private void UpdatePrice() {
        System.out.println("请输入要修改商品的ID");
        Scanner sc7 = new Scanner(System.in);
        int i = sc7.nextInt();
        sac.delPrice(com, i);
        menu2();
        
    }
    private void showNoKucun() {
        for(Object obj:sac.showKuCun()){
            System.out.println(obj);
        }
        menu2();
        
    }
    private void showPutaway() {
        System.out.println("请输入要查询上架(1)/下架(0)");
        Scanner sc6 = new Scanner(System.in);
        int i = sc6.nextInt();
        for (Object obj : sac.showNull(i)) {
            System.out.println(obj);
        }
        menu2();
        
    }

private void snoShow() {
        System.out.println("请输入类别名");
        Scanner sc5 = new Scanner(System.in);
        String str = sc5.nextLine();
        for (Object obj : sac.oneShowList(str)) {
            System.out.println(obj);
        }
        menu2();
    }
    private void show() {
        for (Object obj : sac.show(man.getMid())) {
            System.out.println(obj);
        }
        menu2();
        
    }
    private void luru() {
        System.out.println("请输入商品信息");
        System.out.println("id/商品名/类别名/单价/库存量/状态(0/1)/管理员id");
        Scanner sc4 = new Scanner(System.in);
        String []str = sc4.nextLine().split("/");
        Comm c = new Comm(Integer.parseInt(str[0]),str[1],str[2],Double.parseDouble(str[3]),Integer.parseInt(str[4]),Integer.parseInt(str[5]),man);
            if(sac.luru(c)){
            com=c;
            System.out.println("添加成功");
            }
            menu2();
    }
}

package com.softeem.supermarket;

public class Test {
    public static void main(String[] args) {
        SupermarketSystem s = new SupermarketSystem();
        s.menu1();
    }
    
}

还有一些bug等日后有时间再修改

超市仓库商品库存管理系统相关推荐

  1. (附源码)springboot超市仓库管理系统 毕业设计 164555

    摘 要 本论文主要论述了如何使用java语言开发一个springboot超市仓库管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将 ...

  2. 超市仓库管理系统毕业设计

    技术:Java.JSP等 摘要: 本系统主要是让仓库的管理实现信息化.系统化,方便化,把计算机用于超市的仓库管理中,这样可以很大程度上提高管理者分析和决策的科学性,提高经营管理水平.本系统主要以某超市 ...

  3. 小型超市库存管理系统c语言作业,C语言商品库存管理系统

    建议使用VS打开运行 #pragma once #include typedef struct information     //商品信息 { char  number[20];        // ...

  4. C语言:简易商品库存管理系统(简单易懂,不用指针的入门级示例,数据结构大作业)

    C语言:商品库存管理系统(简单易懂,不用指针的入门级示例) 没有使用指针,没有写入文件,全部是最基础的c语言语句,本程序使用vc6.0测试 功能: 1.创建商品的信息 2.显示全部商品对信息(商品数量 ...

  5. 计算机毕业设计Java超市会员积分管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java超市会员积分管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java超市会员积分管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B ...

  6. java毕业设计超市会员积分管理系统Mybatis+系统+数据库+调试部署

    java毕业设计超市会员积分管理系统Mybatis+系统+数据库+调试部署 java毕业设计超市会员积分管理系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  7. 基于Vue和SpringBoot的便利店仓库物资管理系统的设计与实现

    作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue.SpringBoot和微信小程序).系统定制.远程技术指导. ...

  8. 基于javaweb的超市收银管理系统(java+ssm+html+mysql)

    基于javaweb的超市收银管理系统(java+ssm+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/s ...

  9. 基于C#的超市收银管理系统

    基于C#的超市收银管理系统 前序 一直在忙学习Qt有关的知识,非常有幸这学期学习了C#.让我也感觉到了一丝欣慰,欣慰的是感觉好上手啊,学了几天顿时懂了.好多控件的使用方法好类似,尽管平时上课没有怎么认 ...

最新文章

  1. Netbeans配置Java SE嵌入式平台(树莓派)
  2. java设计模式---原型模式
  3. MXNET gluon自定义损失函数
  4. python四大软件-PYPL 9月编程语言排行榜发布 Python一枝独秀
  5. 【Matlab】求解黎卡提 Riccati 方程 李雅普诺夫 Lyapunov 方程
  6. 蓝桥杯练习系统习题-历年真题解析2(完整版)
  7. JAVA——DES/ECB/PKCS7Padding加密算法[Cannot find any provider supporting DESEDE/CBC/PKCS7Padding]解决方案
  8. diamond淘宝框架使用
  9. 【Vue案例一】实现跑马灯效果
  10. Soul缘何能成为Z时代的心头好?
  11. python color属性_模块“cv2.cv2”没有“COLOR”属性“BGR2GREY”
  12. 丰巢回应小学生用照片“刷脸”取件;苹果明年或发布四款 5G 手机;Spring Boot 2.2.0 发布 | 极客头条...
  13. python def和lambda的应用
  14. Java常用实现八种排序算法与代码实现
  15. java使用过滤器/拦截器过滤response信息
  16. 直线插补和圆弧插补的区别
  17. 无心剑中译约翰·拉伯克《书海乐无穷》
  18. 汇智创科机器人,【汇智创科机器人】这个周六,和孩子一起“动手不动口”,比比看谁最棒!...
  19. 狐狸逮兔子——链式存储方式
  20. 互联网专业委员会 (Internet 缩写 CCF TCI)

热门文章

  1. Mac OS X 键盘字母键和数字键的切换
  2. [精品教程,新老鸟必读]:极限装机、优化全攻略(新手优化教程)
  3. 考研 | 组成原理【第二章】数据的表示和运算
  4. 钉钉申请发起后台提现接口
  5. 移动流量转赠给好友_手机包月流量用不完:教你如何转赠给好友使用
  6. SaaSBase:什么是Teambition?
  7. PaddleX 在windows10使用paddle_inference部署C#打包dll全教程
  8. macbook蓝牙pan未连接_macOS Catalina 10.15.1 连接iPad 13.2.2 分屏失败的解决办法
  9. VMware 虚拟机开启Ip地址自动更换解决
  10. CMarkup类操作XML