新手上路,超市管理系统

 

小弟不才,刚入java,初写一个简单的管理系统,还有很多需要优化的地方,也许还有一些bug,请各位大佬看了多多批评,鄙人谨听教诲。

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

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

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

要求功能入下:

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

package supermarket_01;
/**
 * 管理员类
 * @author Joe
 * @date 2018年7月19日
 *
 */
public class Admin {
    private int id;//编号
    private String username;//账号
    private String password;//密码
    private String name;//姓名
    private String phone;//手机号
    public Admin() {
        // TODO Auto-generated constructor stub
    }
    public Admin(int id, String username, String password, String name, String phone) {
        super();
        this.id = id;
        this.username = username;
        this.password = password;
        this.name = name;
        this.phone = phone;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((password == null) ? 0 : password.hashCode());
        result = prime * result + ((username == null) ? 0 : username.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;
        Admin other = (Admin) obj;
        if (password == null) {
            if (other.password != null)
                return false;
        } else if (!password.equals(other.password))
            return false;
        if (username == null) {
            if (other.username != null)
                return false;
        } else if (!username.equals(other.username))
            return false;
        return true;
    }
    @Override
    public String toString() {
        return "管理员 编号=" + id + ", 姓名=" + name + ", 手机号=" + phone ;
    }
    
}
 

package supermarket_01;

import java.util.ArrayList;

/**
 * 商品类
 * @author Joe
 * @date 2018年7月19日
 *
 */
public class Goods {
    private int id;
    private String gname;//商品名
    private String sort;//类别名
    private int price;//单价
    private int inventory;//库存
    private int putaway;//状态是否上架(0为下架,1为上架)
    private Admin Aid;//管理员id
    public Goods() {
        // TODO Auto-generated constructor stub
    }
    public Goods(int id, String gname, String sort, int price, int inventory, int putaway) {
        super();
        this.id = id;
        this.gname = gname;
        this.sort = sort;
        this.price = price;
        this.inventory = inventory;
        this.putaway = putaway;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getGname() {
        return gname;
    }
    public void setGname(String gname) {
        this.gname = gname;
    }
    public String getSort() {
        return sort;
    }
    public void setSort(String sort) {
        this.sort = sort;
    }
    public int getPrice() {
        return price;
    }
    public void setPrice(int price) {
        this.price = price;
    }
    public int getInventory() {
        return inventory;
    }
    public void setInventory(int inventory) {
        this.inventory = inventory;
    }
    public int getPutaway() {
        return putaway;
    }
    public void setPutaway(int putaway) {
        this.putaway = putaway;
    }
    public Admin getAid() {
        return Aid;
    }
    public void setAid(Admin aid) {
        Aid = aid;
    }
    @Override
    public String toString() {
        return "Goods [编号=" + id + ", 商品名=" + gname + ", 类别名=" + sort + ", 单价=" + price + ", 库存="
                + inventory + ", 状态=" + putaway + "]";
    }
    
}

package supermarket_01;

import java.util.ArrayList;

/**
 * 基本功能
 * @author Joe
 * @date 2018年7月19日
 *
 */
public interface BasicManager {
    boolean add(Object obj);
    
    Object login(Object obj);//管理员登录
    
    ArrayList findAll();//查询所有
    
    ArrayList findType(Object obj);//根据类别名称显示该分类下所有商品
    
    ArrayList findOne(Object obj);//查询单个
    
    ArrayList findCondition(Object obj);//商品状态
    
    ArrayList findInventory(Object obj);//库存不足商品
    
    boolean update(Object obj);//h)    根据商品id修改商品价格
    
}
 

package supermarket_01;

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

public class AdminManager implements BasicManager{

    @Override
    public boolean add(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
    /**
     * 管理员登录
     */
    @Override
    public Object login(Object obj) {
        Admin a = (Admin)obj;
        //比较账号密码是否正确
        if(Objects.equals(a.getUsername(), "softeem")&&Objects.equals(a.getPassword(), "admin123")){
            return a;
        }
            return null;
        
    }

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

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

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

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

}

package supermarket_01;

import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
/**
 * 主函数
 * @author Joe
 * @date 2018年7月22日
 *
 */
public class Main {
    BasicManager bm = new AdminManager();
    BasicManager bm1 = new GoodsManager();
    public void menu1() {
        p("===========超市仓库商品库存管理系统========");
        p("===========管理员登录系统===============");
        logins();
    }

    public void menu2() {
        p("================【1】商品信息录入=====================================");
        p("================【2】查询所有商品信息==================================");
        p("================【3】根据类别名称显示该分类下所有商品=======================");
        p("================【4】查询所有下架(状态:0)/上架(状态:1)商品===============");
        p("================【5】显示所有库存不足商品(库存量 == 0)=====================");
        p("================【6】根据商品id修改商品价格和库存量========================");
        p("================【7】退出系统=========================================");
        Scanner input = new Scanner(System.in);
        int i = input.nextInt();
        switch (i) {
        case 1:
            adds();
            break;
        case 2:
            findAlls();
            break;
        case 3:
            findTypes();
            break;
        case 4:
            findConditions();
            break;
        case 5:
            findInventorys();
            break;
        case 6:
            updates();
            break;
        case 7:
            p("谢谢使用!");
            System.exit(0);
        }

    }

    private void updates() {
        p("请输入商品编号:要修改的价格、库存量(例如:1/100/100)");
        Scanner input = new Scanner(System.in);
        String[] i = input.next().split("/");
        Goods go = new Goods(Integer.parseInt(i[0]), null, null, Integer.parseInt(i[1]), Integer.parseInt(i[2]), 0);
        if(bm1.update(go)){
            p("修改成功!");
        }else{
            p("修改失败!");
        }
        menu2();
    }

    private void findInventorys() {
        p("库存不足商品:");
        ArrayList<Goods> a = bm1.findInventory(0);
        for (Goods g : a) {
            p(g);
        }
        menu2();
    }

    private void findConditions() {
        p("请输入商品状态(例如:上架1,下架0)");
        Scanner input = new Scanner(System.in);
        try {
            int i = input.nextInt();
            ArrayList<Goods> a = bm1.findCondition(i);
            for (Goods g : a) {
                p(g);
            }
        } catch (InputMismatchException e) {
            p("请输入正确的指令!");
            findConditions();
        }
        menu2();
    }

    private void findTypes() {
        p("请输入商品类别");
        Scanner input = new Scanner(System.in);
        String s = input.nextLine();
        ArrayList<Goods> a = bm1.findType(s);
        for (Goods g : a) {
            p(g);
        }
        menu2();
    }

    private void findAlls() {
        ArrayList<Goods> a = bm1.findAll();
        for (Goods g : a) {
            p(g);
        }
        menu2();

    }

    private void adds() {
        p("添加商品:(例如:id(int)/商品名(String)/类别名(String)/单价(int)/库存(int)/状态(0下架、1上架)(int))");
        Scanner input = new Scanner(System.in);
        String[] st = input.next().split("/");
        Goods go = new Goods(Integer.parseInt(st[0]), st[1], st[2], Integer.parseInt(st[3]), Integer.parseInt(st[4]),
                Integer.parseInt(st[5]));
        if(bm1.add(go)){
            p("添加成功!");
        }else{
            p("添加失败");
        }
        menu2();
    }

    private void logins() {
        p("请输入账号和密码(例如:账号/密码)");
        Scanner input = new Scanner(System.in);
        String[] st = input.next().split("/");
        Admin adm = new Admin(1, st[0], st[1], "乔翰林", "15171487803");
        Object obj = bm.login(adm);
        if (obj != null) {
            p("欢迎你" + adm.toString());
        } else {
            p("账号或密码错误,请重新输入!");
            logins();
        }
        menu2();
    }

    public void p(Object obj) {
        System.out.println(obj);
    }

    public static void main(String[] args) {
        Main m = new Main();
        m.menu1();
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值