超市仓库商品库存管理系统
完成一个超市仓库商品库存管理系统,系统包含商品类和管理员类,其中商品类和管理员类包含相关属性如下:
管理员(id,账号,密码,姓名,手机号)
商品(id,商品名,类别名,单价,库存量,状态-是否上架,管理员id)
要求功能入下:
- 系统存在默认管理员账号softeem,密码:admin123
- 管理员登录系统进入商品管理
- 商品信息录入
- 查询所有商品信息
- 根据类别名称显示该分类下所有商品
- 查询所有下架(状态:0)/上架(状态:1)商品
- 显示所有库存不足商品(库存量 == 0)
- 根据商品id修改商品价格
- 根据商品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等日后有时间再修改
超市仓库商品库存管理系统相关推荐
- (附源码)springboot超市仓库管理系统 毕业设计 164555
摘 要 本论文主要论述了如何使用java语言开发一个springboot超市仓库管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将 ...
- 超市仓库管理系统毕业设计
技术:Java.JSP等 摘要: 本系统主要是让仓库的管理实现信息化.系统化,方便化,把计算机用于超市的仓库管理中,这样可以很大程度上提高管理者分析和决策的科学性,提高经营管理水平.本系统主要以某超市 ...
- 小型超市库存管理系统c语言作业,C语言商品库存管理系统
建议使用VS打开运行 #pragma once #include typedef struct information //商品信息 { char number[20]; // ...
- C语言:简易商品库存管理系统(简单易懂,不用指针的入门级示例,数据结构大作业)
C语言:商品库存管理系统(简单易懂,不用指针的入门级示例) 没有使用指针,没有写入文件,全部是最基础的c语言语句,本程序使用vc6.0测试 功能: 1.创建商品的信息 2.显示全部商品对信息(商品数量 ...
- 计算机毕业设计Java超市会员积分管理系统(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java超市会员积分管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java超市会员积分管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B ...
- java毕业设计超市会员积分管理系统Mybatis+系统+数据库+调试部署
java毕业设计超市会员积分管理系统Mybatis+系统+数据库+调试部署 java毕业设计超市会员积分管理系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言: ...
- 基于Vue和SpringBoot的便利店仓库物资管理系统的设计与实现
作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue.SpringBoot和微信小程序).系统定制.远程技术指导. ...
- 基于javaweb的超市收银管理系统(java+ssm+html+mysql)
基于javaweb的超市收银管理系统(java+ssm+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/s ...
- 基于C#的超市收银管理系统
基于C#的超市收银管理系统 前序 一直在忙学习Qt有关的知识,非常有幸这学期学习了C#.让我也感觉到了一丝欣慰,欣慰的是感觉好上手啊,学了几天顿时懂了.好多控件的使用方法好类似,尽管平时上课没有怎么认 ...
最新文章
- Netbeans配置Java SE嵌入式平台(树莓派)
- java设计模式---原型模式
- MXNET gluon自定义损失函数
- python四大软件-PYPL 9月编程语言排行榜发布 Python一枝独秀
- 【Matlab】求解黎卡提 Riccati 方程 李雅普诺夫 Lyapunov 方程
- 蓝桥杯练习系统习题-历年真题解析2(完整版)
- JAVA——DES/ECB/PKCS7Padding加密算法[Cannot find any provider supporting DESEDE/CBC/PKCS7Padding]解决方案
- diamond淘宝框架使用
- 【Vue案例一】实现跑马灯效果
- Soul缘何能成为Z时代的心头好?
- python color属性_模块“cv2.cv2”没有“COLOR”属性“BGR2GREY”
- 丰巢回应小学生用照片“刷脸”取件;苹果明年或发布四款 5G 手机;Spring Boot 2.2.0 发布 | 极客头条...
- python def和lambda的应用
- Java常用实现八种排序算法与代码实现
- java使用过滤器/拦截器过滤response信息
- 直线插补和圆弧插补的区别
- 无心剑中译约翰·拉伯克《书海乐无穷》
- 汇智创科机器人,【汇智创科机器人】这个周六,和孩子一起“动手不动口”,比比看谁最棒!...
- 狐狸逮兔子——链式存储方式
- 互联网专业委员会 (Internet 缩写 CCF TCI)
热门文章
- Mac OS X 键盘字母键和数字键的切换
- [精品教程,新老鸟必读]:极限装机、优化全攻略(新手优化教程)
- 考研 | 组成原理【第二章】数据的表示和运算
- 钉钉申请发起后台提现接口
- 移动流量转赠给好友_手机包月流量用不完:教你如何转赠给好友使用
- SaaSBase:什么是Teambition?
- PaddleX 在windows10使用paddle_inference部署C#打包dll全教程
- macbook蓝牙pan未连接_macOS Catalina 10.15.1 连接iPad 13.2.2 分屏失败的解决办法
- VMware 虚拟机开启Ip地址自动更换解决
- CMarkup类操作XML