package goods;
public class Goods {
private String name;// 名称
private String id;// 编号
private static int number;// 库存,静态属性,各个类对象共享
static { //类静态属性初始化
number = 0;
}
public Goods(String name) {
this.name = name;
number++;//增加货物,库存自动递增
id = "id" + number;//自动添加编号
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public static int getNumber() {
return number;
}
@Override
public String toString() {
return "货物名称:" + name + ", 货物编号:" + id + ", 货物库存:" + number;
}
}
class GoodsGroup {
private String catory;// 类别名称
private Goods[] member;// 该类别中的货物
public GoodsGroup(String catory) {
this.catory = catory;
if (member == null) {//未被初始化
member = new Goods[3];//创建数组
}
}
public void add(Goods g) { //把货物添加到类别中
int index = 0;
for (; index < member.length; index++) {
if (member[index] == null) {
break;
}
}
if (index < member.length) member[index] = g;
else System.out.println("该类别货柜已满");
}
public String getCatory() {
return catory;
}
public Goods[] getMember() {
return member;
}
public void setMember(Goods[] member) {
this.member = member;
}
public void print() {
for (Goods goods : member) {
if (goods != null)
System.out.println(goods.toString());
}
}
}
class GoodManage {
private GoodsGroup[] goodsList;//货物列表,存放货物类别和该类别中的货物
public GoodManage() {
if (goodsList == null) {
goodsList = new GoodsGroup[2];//创建 goodslist 对象,分配空间
}
}
public GoodsGroup findbyCatory(String name) {//根据货物类别查找
GoodsGroup find = null;
if (goodsList != null) {
for (int i = 0; i < goodsList.length; i++) {// 遍历货物
GoodsGroup tem = goodsList[i];
if (tem == null) break;//查找完毕,未找到
if (name.equals(tem.getCatory())) {//catory 中存放类别名称
find = tem;//找到该类别
break;//退出循环
}
}
}
return find;
}
public Goods findbyName(String name) {//根据货物名称查找
Goods find = null;
if (goodsList != null) {
for (int i = 0; i < goodsList.length; i++) {//遍历货架
GoodsGroup tem = goodsList[i];
if (tem == null) break;//查找完毕
for (int j = 0; j < tem.getMember().length; j++) {//遍历
Goods good = tem.getMember()[j];
if (good == null) break;//继续下一个类别查找
if (name.equals(good.getName())) {//判断货物名称
find = good;
i = goodsList.length; //触发父级别的停止循环条件
break;//退出循环
}
}
}
}
return find;
}
public void addGood(Goods g, String catory) {//添加一个商品到对应的类
GoodsGroup tem = findbyCatory(catory);
if (tem != null)//已经存在该类别则直接添加
tem.add(g);
else {
int index = 0;
for (; index < goodsList.length; index++) {
if (goodsList[index] == null) {
break;
}
}
if (index < goodsList.length) {
tem = new GoodsGroup(catory);//否则创建类别并添加货物
goodsList[index] = tem; //存放该类别
tem.add(g);//向该类别中添加货物
} else System.out.println("货柜已满");
}
}
public void addGoods(Goods[] g, String catory) {//添加一组商品
for (int i = 0; i < g.length; i++) {
addGood(g[i], catory);
}
}
public void show() {// 显示所有货物信息
for (GoodsGroup goodsGroup : goodsList) {
if (goodsGroup != null) {
System.out.println("类别:" + goodsGroup.getCatory() + "\n货物有:");
goodsGroup.print();
}
}
System.out.println("货物总库存" + Goods.getNumber());
}
}
class GoodsTest {
public static void main(String[] args) {
GoodManage manage = new GoodManage();
System.out.println("第一次测试");
String catory1 = "球类";
Goods g1 = new Goods("篮球");
manage.addGood(g1, catory1);//添加一件货物
manage.show();
System.out.println("************************");
System.out.println("第二次测试");
String catory2 = "水果";
Goods g2 = new Goods("苹果");
Goods g3 = new Goods("柚子");
Goods g4 = new Goods("橘子");
Goods[] list = {g2, g3, g4};
manage.addGoods(list, catory2);//添加一组货物
manage.show();
System.out.println("************************");
System.out.println("第三次测试");
Goods g5 = new Goods("橙子");
manage.addGood(g5, catory2);//添加一件货物
manage.show();
System.out.println("************************");
System.out.println("第四次测试");
String catory3 = "学习用品";
Goods g6 = new Goods("铅笔");
manage.addGood(g6, catory3);//添加一件货物
manage.show();
System.out.println("************************");
System.out.println("第五次测试,根据货物名称查找商品");
System.out.println(manage.findbyName("篮球"));
System.out.println(manage.findbyName("橘子"));
System.out.println(manage.findbyName("铅笔"));
}
}
货物管理系统,GoodsGroup,GoodManage
需积分: 0 77 浏览量
2023-11-08
20:47:26
上传
评论
收藏 2KB RAR 举报
Jin.12
- 粉丝: 0
- 资源: 1
最新资源
- 模拟退火算法matlab代码
- 模拟退火算法matlab代码
- 模拟退火算法matlab代码
- 数字电子时钟课程设计数字电子时钟课程设计
- 数字电子时钟课程设计数字电子时钟课程设计
- 数字电子时钟课程设计数字电子时钟课程设计
- 当然,我将为您提供一个带有详细注释的个人简介网页HTML和CSS代码示例 这将帮助您理解每一部分代码的功能 HTML代码 (
- 当然,我将为您提供一个带有详细注释的个人简介网页HTML和CSS代码示例 这将帮助您理解每一部分代码的功能 HTML代码 (
- 当然,我将为您提供一个带有详细注释的个人简介网页HTML和CSS代码示例 这将帮助您理解每一部分代码的功能 HTML代码 (
- 网络安全odel-for-network-ids-开发笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈