一、题目
一、考试要求:
1、按照测试内容要求完成程序的设计与编程;
2、建立学号姓名文件夹,如:“信2205-1班20223921赵福奇”,将源程序文件、保存在文件夹中,压缩成rar文件提交。
3、以班级为单位上交最终考试结果。
4、需要在程序开始的注释中注明班级、学号、姓名。
二、系统背景:
某机械有限公司为了公司进一步的发展,需要实现企业数字化管理,新引进一套企业信息管理系统(ERP),由于该产品缺乏入库功能,特委托石家庄铁道大学信息科学与技术学院前进22软件有限公司开发仓库管理功能。
二、 数据结构要求:(5分)
1、定义WarehouseInformation类,其中包括九个私有变量(itemnumber,itemname,suppliername,warehousingtime,shipmenttime,warehousenumber,warehouseplace,itemnumber,outnumber)。
各成员的含义如下:
变量itemnumber 为字符串类型 String,表示商品编号(有8 位数字组成)。
变量itemname 为字符串类型 String,表示商品名称。
变量suppliername为String 类型,表示供货商名称。
变量warehousingtime为String 类型,表示入库时间,长度八位例如:20230904。
变量shipmenttime为String类型,表示出库时间,长度八位例如:20230904,如果该商品未出库,则出库时间为空,如果该商品已出库,则要求出库时间必须晚于入库时间。
变量warehousenumber为String类型,表示仓库编号。长度三位。
变量warehouseplace为String类型,表示存放商品的具体位置,长度八位数字XXXXYYZZ,其中XXXX表示货架号,YY表示货架的层号,ZZ表示存放在该货架该层的商品顺序号。
变量itemnumber为整型,表示入库商品的数量。
变量outnumber为整型,表示出库商品的数量。
对每个变量定义 get()(读取变量信息)和 set()(设置变量信息)的方法。
2、赋初值方法包括就个参数,用于为变量(sitemnumber,itemname,suppliername,warehousingtime,shipmenttime,warehousenumber,warehouseplace,itemnumber,outnumber)赋值。
三、 功能要求:(10分)
该功能完成仓库管理的基本功能功能,定义WarehouseManagement类完成下列功能。
1、利用数组实现至少存储五个商品入库的基本信息;(1分)
2、仓库管理系统的主界面如下图所示:(1分)
①界面要求;(0.5分)
***********************************************************石家庄铁道大学前进22软件开发有限公司
仓库管理系统2022版
***********************************************************
1、商品入库管理
2、商品信息修改
3、商品出库管理
4、仓库盘点管理
**********************************************************
②功能说明
输入数字1-4执行相应的功能,输入其他数字提示错误信息(该选项不存在),并返回主界面。(0.5分)
2、商品入库管理功能操作流程:(2分)
①在主界面选择“商品入库管理”功能后,进入“商品入库管理”界面,如下图所示:(0.5分)
依次录入商品编码、商品名称、供货商信息、入库时间、存放仓库号、存放位置信息,录入完成后的界面如下所示:
***********************************************************石家庄铁道大学前进22软件开发有限公司
仓库管理系统2022版***********************************************************
商品编号:20203982
商品名称:华为笔记本电脑
供货商信息:河北省正大光明有限公司
入库时间:20230904
存放仓库号:003
存放位置信息:0180350
入库商品数量:100
**********************************************************
如果商品编码、入库时间、存放仓库号、存放位置信息录入格式错误,则提示“录入错误”,要求用户重新录入正确信息。(1分)
全部正确信息录入完毕后,显示如下界面。
***********************************************************石家庄铁道大学前进22软件开发有限公司
仓库管理系统2022版***********************************************************
商品编号:20203982
商品名称:华为笔记本电脑
供货商信息:河北省正大光明有限公司
入库时间:20230904
存放仓库号:003
存放位置信息:0180350
入库商品数量:100
该商品入库操作已完成,是否提交(Y/N)
**********************************************************
选择“Y”将商品信息存储到到相应的数组中,并返回主界面。选择“N”,则忽略上述录入内容,并返回商品入库界面。(0.5分)
3、商品信息修改(2分)
①在主界面选择“商品信息修改”功能后,进入“商品信息修改”界面,如下图所示:
***********************************************************石家庄铁道大学前进22软件开发有限公司
仓库管理系统2022版***********************************************************
请输入商品编号:XXXXXXXX
**********************************************************
提示用户输入八位的商品编号。
②如果库中不存在该商品信息,则提示库中没有该商品,返回到商品修改界面。如果库中存在该商品,则显示:商品编码、商品名称、供货商信息、入库时间、存放仓库号、存放位置信息。如下图所示。(1分)
***********************************************************石家庄铁道大学前进22软件开发有限公司
仓库管理系统2022版***********************************************************
1、商品编号:20203982
2、商品名称:华为笔记本电脑
3、供货商信息:河北省正大光明有限公司
4、入库时间:20230904
5、存放仓库号:003
6、存放位置信息:0180350
7、入库商品数量:100
请选择需要修改的信息编号(1-7):
**********************************************************
输入数字1-7显示出需要修改的信息录入界面,如下图所示,输入其他数字提示错误信息(该选项不存在),并返回主界面(0.5分)***********************************************************石家庄铁道大学前进22软件开发有限公司
仓库管理系统2022版***********************************************************
1、商品编号:20203982
2、商品名称:华为笔记本电脑
3、供货商信息:河北省正大光明有限公司
4、入库时间:20230904
5、存放仓库号:003
6、存放位置信息:0180350
7、商品数量:100
请选择需要修改的信息编号(1-7):2
请输入修改后的商品名称:XXXXXXXX
**********************************************************
③选择“Y”将修改信息保存提交。选择“N”,不保存修改信息返回系统主界面。(0.5分)
4、商品出库管理(2分)
①在主界面选择“商品出库管理”功能后,进入“商品出库管理”界面,如下图所示:(0.5分)
***********************************************************石家庄铁道大学前进22软件开发有限公司
仓库管理系统2022版***********************************************************
请输入商品编号:XXXXXXXX
**********************************************************
提示用户输入八位的商品编号。
②如果库中不存在该商品信息,则提示库中没有该商品,返回到商品修改界面。如果库中存在该商品,则显示:商品编码、商品名称、供货商信息、入库时间、存放仓库号、存放位置信息。如下图所示。(1分)
***********************************************************石家庄铁道大学前进22软件开发有限公司
仓库管理系统2022版***********************************************************
1、商品编号:20203982
2、商品名称:华为笔记本电脑
3、供货商信息:河北省正大光明有限公司
4、入库时间:20230904
5、存放仓库号:003
6、存放位置信息:0180350
7、入库商品数量:100
出库时间:XXXXXXXXX
出库数量:xxx
**********************************************************
③,填写出库时间和出库数量,出库数量要小于该商品在数据库中所有入库数量之和,选择“Y”保存结果,返回系统主界面。选择“N”, 返回当前界面。(0.5分)
5、用户选择数字“4”,进入仓库盘点功能,显示如下界面。(2分)
***********************************************************石家庄铁道大学前进22软件开发有限公司
仓库管理系统2022版***********************************************************
1、商品编号:XXXXXXX、商品名称:XXXXX、库存数量:xxx
2、商品编号:XXXXXXX、商品名称:XXXXX、库存数量:xxx
3、商品编号:XXXXXXX、商品名称:XXXXX、库存数量:xxx
4、商品编号:XXXXXXX、商品名称:XXXXX、库存数量:xxx
5、商品编号:XXXXXXX、商品名称:XXXXX、库存数量:xxx
………………………………………………….
**********************************************************
显示全部商品数量,期中库存数量=入库数量之和 -- 出库数量之和
二、思路分析
(1)根据题目需求可以将整个系统分为以下几个部分:①主方法控制子方法的调用,②商品入库管理(goodsWarehousing)③商品信息修改(modifyWarehouse)④商品出库管理(outboundWarehouse)⑤商品总数盘点(countGoods)
(2)将商品信息存储在集合list中,方便统计各种商品的信息
(3)一共设计了三个类,①WarehouseInformation类用来定义一个商品类,之中存储商品的各项信息②WarehouseManagement类来控制主程序的运行③numSum类用于最后商品盘点时使用,统计相同编号的商品的总数量,最后进行输出。
(4)其中还需要一些Boolean返回值类型的方法来判断输入数据的合法性,像:三位仓库编号,出库,入库时间等应为8位
三、源码
(1)商品类
1 package today; 2 /* 3 信2205-2 4 20224089 5 连赛轩 6 */ 7 public class WarehouseInformation { 8 private String itemno; //商品编号(8位) 9 private String itemname; //商品名称 10 private String suppliername; //供货商名称 11 private String warehousingtime; //入库时间(例20230904) 12 private String shipmenttime="0"; //出库时间 13 private String warehousenumber; //仓库编号(三位) 14 private String warehouseplace; //表示存放商品的具体位置(8位) 15 private int itemnumber; //表示入库商品的数量 16 private int outnumber; //表示出库商品的数量 17 18 public WarehouseInformation() { 19 } 20 21 public WarehouseInformation(String itemno, String itemname, String suppliername, String warehousingtime, String shipmenttime, String warehousenumber, String warehouseplace, int itemnumber, int outnumber) { 22 this.itemno = itemno; 23 this.itemname = itemname; 24 this.suppliername = suppliername; 25 this.warehousingtime = warehousingtime; 26 this.shipmenttime = shipmenttime; 27 this.warehousenumber = warehousenumber; 28 this.warehouseplace = warehouseplace; 29 this.itemnumber = itemnumber; 30 this.outnumber = outnumber; 31 } 32 33 public String getItemno() { 34 return itemno; 35 } 36 37 public WarehouseInformation(String itemno, String itemname, String suppliername, String warehousingtime, String warehousenumber, String warehouseplace, int itemnumber) { 38 this.itemno = itemno; 39 this.itemname = itemname; 40 this.suppliername = suppliername; 41 this.warehousingtime = warehousingtime; 42 this.warehousenumber = warehousenumber; 43 this.warehouseplace = warehouseplace; 44 this.itemnumber = itemnumber; 45 } 46 47 public void setItemno(String itemno) { 48 this.itemno = itemno; 49 } 50 51 public String getItemname() { 52 return itemname; 53 } 54 55 public void setItemname(String itemname) { 56 this.itemname = itemname; 57 } 58 59 public String getSuppliername() { 60 return suppliername; 61 } 62 63 public void setSuppliername(String suppliername) { 64 this.suppliername = suppliername; 65 } 66 67 public String getWarehousingtime() { 68 return warehousingtime; 69 } 70 71 public void setWarehousingtime(String warehousingtime) { 72 this.warehousingtime = warehousingtime; 73 } 74 75 public String getShipmenttime() { 76 return shipmenttime; 77 } 78 79 public void setShipmenttime(String shipmenttime) { 80 this.shipmenttime = shipmenttime; 81 } 82 83 public String getWarehousenumber() { 84 return warehousenumber; 85 } 86 87 public void setWarehousenumber(String warehousenumber) { 88 this.warehousenumber = warehousenumber; 89 } 90 91 public String getWarehouseplace() { 92 return warehouseplace; 93 } 94 95 public void setWarehouseplace(String warehouseplace) { 96 this.warehouseplace = warehouseplace; 97 } 98 99 public int getItemnumber() { 100 return itemnumber; 101 } 102 103 public void setItemnumber(int itemnumber) { 104 this.itemnumber = itemnumber; 105 } 106 107 public int getOutnumber() { 108 return outnumber; 109 } 110 111 public void setOutnumber(int outnumber) { 112 this.outnumber = outnumber; 113 } 114 }
(2)控制类WarehouseManagement
1 package today; 2 /* 3 信2205-2 4 20224089 5 连赛轩 6 */ 7 8 import java.util.ArrayList; 9 import java.util.Scanner; 10 11 public class WarehouseManagement { 12 public static void main(String[] args) { 13 ArrayList<WarehouseInformation> list = new ArrayList<>(); 14 ArrayList<numSum> end=new ArrayList<>(); 15 String choose; //代表选择 16 Scanner sc = new Scanner(System.in); 17 while (true) { 18 showMenu(); 19 choose = sc.next(); 20 switch (choose) { 21 case "1" -> goodsWarehousing(list); 22 case "2" -> modifyWarehouse(list); 23 case "3" -> outboundWarehouse(list,end); 24 case "4" -> countGoods(end); 25 default -> System.out.println("该选项不存在,请重新输入"); 26 } 27 } 28 } 29 30 //1.菜单 31 public static void showMenu() { 32 System.out.println("***********************************************************"); 33 System.out.println(" 石家庄铁道大学前进22软件开发有限公司"); 34 System.out.println(" 仓库管理系统2022版"); 35 System.out.println("***********************************************************"); 36 System.out.println(" 1、商品入库管理"); 37 System.out.println(" 2、商品信息修改"); 38 System.out.println(" 3、商品出库管理"); 39 System.out.println(" 4、仓库盘点管理"); 40 System.out.println("**********************************************************"); 41 } 42 43 //2.商品入库管理(商品编码、入库时间、存放仓库号、存放位置信息) 44 public static void goodsWarehousing(ArrayList<WarehouseInformation> list) { 45 Scanner sc = new Scanner(System.in); 46 WarehouseInformation w = new WarehouseInformation(); 47 System.out.println("请输入商品的编码"); 48 loop: 49 while (true) { 50 String Nitemno = sc.next(); //商品编码 51 if (isTrue(Nitemno)) { 52 w.setItemno(Nitemno); 53 System.out.println("请输入商品名称"); 54 String Nitemname = sc.next(); //商品名称 55 w.setItemname(Nitemname); 56 System.out.println("请输入供货商信息"); 57 String Nsuppliername = sc.next(); //供货商信息 58 w.setSuppliername(Nsuppliername); 59 System.out.println("请输入入库时间"); 60 61 while (true) { 62 String Nwarehousingtime = sc.next(); //入库时间 63 if (isTrue(Nwarehousingtime)) { 64 w.setWarehousingtime(Nwarehousingtime); 65 System.out.println("请输入存放仓库号"); 66 67 while (true) { 68 String Nwarehousenumber = sc.next(); //存放仓库编号 69 if (isTrue1(Nwarehousenumber)) { 70 w.setWarehousenumber(Nwarehousenumber); 71 System.out.println("请输入存放位置信息"); 72 while (true) { 73 String Nwarehouseplace = sc.next(); //存放商品的具体位置 74 if (isTrue(Nwarehouseplace)) { 75 w.setWarehouseplace(Nwarehouseplace); 76 System.out.println("请输入入库商品数量"); 77 int Nitemnumber = sc.nextInt(); 78 w.setItemnumber(Nitemnumber); 79 //list.add(w); 80 break loop; 81 } else { 82 System.out.println("录入错误,请重新输入"); 83 } 84 } 85 } else { 86 System.out.println("录入错误,请重新输入"); 87 } 88 } 89 } else { 90 System.out.println("录入错误,请重新输入"); 91 } 92 } 93 } else { 94 System.out.println("录入错误,请重新输入"); 95 } 96 } 97 System.out.println("***********************************************************"); 98 System.out.println(" 石家庄铁道大学前进22软件开发有限公司"); 99 System.out.println(" 仓库管理系统2022版"); 100 System.out.println("***********************************************************"); 101 System.out.println(" 商品编号:" + w.getItemno()); 102 System.out.println(" 商品名称:" + w.getItemname()); 103 System.out.println(" 供货商信息:" + w.getSuppliername()); 104 System.out.println(" 入库时间:" + w.getWarehousingtime()); 105 System.out.println(" 存放仓库号:" + w.getWarehousenumber()); 106 System.out.println(" 存放位置信息:" + w.getWarehouseplace()); 107 System.out.println(" 入库商品数量:" + w.getItemnumber()); 108 System.out.println(" 该商品入库操作已完成,是否提交(Y/N)"); 109 System.out.println("**********************************************************"); 110 String res = sc.next(); 111 if (res.equals("Y")) { 112 list.add(w); 113 } 114 //如果选择N,不对输入的数据进行操作,选择Y将数据录入到集合list中 115 } 116 117 //3.商品信息修改 118 public static void modifyWarehouse(ArrayList<WarehouseInformation> list) { 119 Scanner sc = new Scanner(System.in); 120 System.out.println("***********************************************************"); 121 System.out.println(" 石家庄铁道大学前进22软件开发有限公司"); 122 System.out.println(" 仓库管理系统2022版"); 123 System.out.println("***********************************************************"); 124 System.out.println(" 请输入商品编号:XXXXXXXX"); 125 System.out.println("**********************************************************"); 126 String newItemno = sc.next(); 127 for (int i = 0; i < list.size(); i++) { 128 if (list.get(i).getItemno().equals(newItemno)) { 129 System.out.println("***********************************************************"); 130 System.out.println("石家庄铁道大学前进22软件开发有限公司"); 131 System.out.println("仓库管理系统2022版"); 132 System.out.println("***********************************************************"); 133 System.out.println("1.商品编号:" + list.get(i).getItemno()); 134 System.out.println("2.商品名称:" + list.get(i).getItemname()); 135 System.out.println("3.供货商信息:" + list.get(i).getSuppliername()); 136 System.out.println("4.入库时间:" + list.get(i).getWarehousingtime()); 137 System.out.println("5.存放仓库号:" + list.get(i).getWarehousenumber()); 138 System.out.println("6.存放位置信息:" + list.get(i).getWarehouseplace()); 139 System.out.println("7.入库商品数量:" + list.get(i).getItemnumber()); 140 System.out.println("请选择需要修改的信息编号:(1-7)"); 141 int choose; 142 while (true) { 143 choose = sc.nextInt(); 144 switch (choose) { 145 case 1 -> { 146 System.out.println("请输入修改后的商品编号:"); 147 String temp = sc.next(); 148 System.out.println("选择“Y”将修改信息保存提交。选择“N”,不保存修改信息返回系统主界面"); 149 String res = sc.next(); 150 if (res.equals("Y")) { 151 list.get(i).setItemno(temp); 152 } 153 return; 154 155 } 156 case 2 -> { 157 System.out.println("请输入修改后的商品名称:"); 158 String temp = sc.next(); 159 System.out.println("选择“Y”将修改信息保存提交。选择“N”,不保存修改信息返回系统主界面"); 160 String res = sc.next(); 161 if (res.equals("Y")) { 162 list.get(i).setItemname(temp); 163 } 164 return; 165 } 166 case 3 -> { 167 System.out.println("请输入修改后的供货商信息:"); 168 String temp = sc.next(); 169 System.out.println("选择“Y”将修改信息保存提交。选择“N”,不保存修改信息返回系统主界面"); 170 String res = sc.next(); 171 if (res.equals("Y")) { 172 list.get(i).setSuppliername(temp); 173 } 174 return; 175 } 176 case 4 -> { 177 System.out.println("请输入修改后的入库时间:"); 178 String temp = sc.next(); 179 System.out.println("选择“Y”将修改信息保存提交。选择“N”,不保存修改信息返回系统主界面"); 180 String res = sc.next(); 181 if (res.equals("Y")) { 182 list.get(i).setWarehousingtime(temp); 183 } 184 return; 185 } 186 case 5 -> { 187 System.out.println("请输入修改后的存放仓库号:"); 188 String temp = sc.next(); 189 System.out.println("选择“Y”将修改信息保存提交。选择“N”,不保存修改信息返回系统主界面"); 190 String res = sc.next(); 191 if (res.equals("Y")) { 192 list.get(i).setWarehousenumber(temp); 193 } 194 return; 195 } 196 case 6 -> { 197 System.out.println("请输入修改后的存放位置信息:"); 198 String temp = sc.next(); 199 System.out.println("选择“Y”将修改信息保存提交。选择“N”,不保存修改信息返回系统主界面"); 200 String res = sc.next(); 201 if (res.equals("Y")) { 202 list.get(i).setWarehouseplace(temp); 203 } 204 return; 205 } 206 case 7 -> { 207 System.out.println("请输入修改后的商品数量:"); 208 int temp = sc.nextInt(); 209 System.out.println("选择“Y”将修改信息保存提交。选择“N”,不保存修改信息返回系统主界面"); 210 String res = sc.next(); 211 if (res.equals("Y")) { 212 list.get(i).setItemnumber(temp); 213 } 214 return; 215 } 216 default -> { 217 System.out.println("该选项不存在,请重新输入"); 218 } 219 } 220 } 221 } 222 } 223 System.out.println("该商品不存在"); 224 modifyWarehouse(list); 225 //并返回到商品修改界面 226 } 227 228 //4.商品出库管理 229 public static void outboundWarehouse(ArrayList<WarehouseInformation> list, ArrayList<numSum> end){ 230 Scanner sc=new Scanner(System.in); 231 System.out.println("***********************************************************"); 232 System.out.println("石家庄铁道大学前进22软件开发有限公司"); 233 System.out.println("仓库管理系统2022版"); 234 System.out.println("***********************************************************"); 235 System.out.println("请输入商品编号:XXXXXXXX"); 236 System.out.println("**********************************************************"); 237 remaining(list,end); //求出每个商品库存 238 String newItemno=sc.next(); 239 for (int i = 0; i < list.size(); i++) { 240 if(list.get(i).getItemno().equals(newItemno)) { 241 System.out.println("***********************************************************"); 242 System.out.println("石家庄铁道大学前进22软件开发有限公司"); 243 System.out.println("***********************************************************"); 244 245 System.out.println("1.商品编号:" + list.get(i).getItemno()); 246 System.out.println("2.商品名称:" + list.get(i).getItemname()); 247 System.out.println("3.供货商信息:" + list.get(i).getSuppliername()); 248 System.out.println("4.入库时间:" + list.get(i).getWarehousingtime()); 249 System.out.println("5.存放仓库号:" + list.get(i).getWarehousenumber()); 250 System.out.println("6.存放位置信息:" + list.get(i).getWarehouseplace()); 251 System.out.println("7.入库商品数量:" + list.get(i).getItemnumber()); 252 System.out.println("出库时间:XXXXXXXXX"); 253 System.out.println("出库数量:xxx"); 254 System.out.println("**********************************************************"); 255 System.out.println("请输入出库时间"); 256 257 loop:while (true) { 258 String time = sc.next(); 259 if (time.compareTo(list.get(i).getWarehousingtime()) > 0) { 260 System.out.println("请输入出库数量"); 261 while (true) { 262 int newOutnum = sc.nextInt(); 263 if (newOutnum <= Sum(list, list.get(i).getItemno())) { 264 System.out.println("选择“Y”保存结果,返回系统主界面。选择“N”, 返回当前界面"); 265 String res=sc.next(); 266 if(res.equals("Y")){ 267 for (int i1 = 0; i1 < end.size(); i1++) { 268 if(end.get(i).getItemno().equals(newItemno)){ 269 end.get(i).setSum(end.get(i).getSum()-newOutnum); 270 } 271 } 272 break loop; 273 } 274 } 275 else{ 276 System.out.println("出库数量大于库存,不符合要求,请重新输入"); 277 } 278 } 279 } 280 else{ 281 System.out.println("出库时间小于了入库时间,请重新输入"); 282 } 283 } 284 } 285 } 286 } 287 //5.仓库盘点管理 288 public static void countGoods(ArrayList<numSum> end){ 289 for (int i = 0; i < end.size(); i++) { 290 System.out.println("1.商品编号:"+end.get(i).getItemno()+"、商品名称"+end.get(i).getItemname()+"、库存数量:"+end.get(i).getSum()); 291 } 292 } 293 public static void countGoods1(ArrayList<WarehouseInformation> list){ 294 295 for (int i = 0; i < list.size(); i++) { 296 int sum=0; 297 System.out.println("1.商品编号:"+list.get(i).getItemno()+"、商品名称:"+list.get(i).getItemname()+"库存数量:"+list.get(i).getItemnumber()); 298 } 299 } 300 //isTrue判断录入的格式是否正确:商品编码,入库时间,存放位置) 301 public static boolean isTrue(String s) { 302 if (s.length() != 8) { 303 return false; 304 } 305 for (int i = 0; i < s.length(); i++) { 306 if (s.charAt(i) < '0' || s.charAt(i) > '9') { 307 return false; 308 } 309 } 310 return true; 311 } 312 313 //isTrue1判断录入的格式是否正确:仓库号(3位全是数字) 314 public static boolean isTrue1(String s) { 315 if (s.length() != 3) { 316 return false; 317 } 318 for (int i = 0; i < s.length(); i++) { 319 if (s.charAt(i) < '0' || s.charAt(i) > '9') { 320 return false; 321 } 322 } 323 return true; 324 } 325 //写一个方法来求在list集合中每种商品的总数,用于出库时使用,以及最后盘点时使用 326 public static int Sum(ArrayList<WarehouseInformation> list,String itemno){ 327 int sum=0; 328 for (int i = 0; i < list.size(); i++) { 329 if(list.get(i).getItemno().equals(itemno)){ 330 sum=sum+list.get(i).getItemnumber(); 331 } 332 333 } 334 return sum; 335 } 336 //判断某商品是否存在 337 public static int contains(ArrayList<numSum> end,String s){ 338 for (int i = 0; i < end.size(); i++) { 339 if(end.get(i).getItemno().equals(s)){ 340 return i; 341 } 342 } 343 return -1; 344 } 345 //写一个方法实现在end集合中存储list中每个商品的编号和库存总数 346 public static void remaining(ArrayList<WarehouseInformation> list, ArrayList<numSum> end){ 347 for (int i = 0; i < list.size(); i++) { 348 for (int i1 = 0; i1 < end.size(); i1++) { 349 if(contains(end,list.get(i).getItemno())>=0){ 350 end.get(contains(end,list.get(i).getItemno())).setSum(end.get(contains(end,list.get(i).getItemno())).getSum()+list.get(i).getItemnumber()); 351 break; 352 } 353 } 354 numSum n = new numSum(); 355 n.setItemno(list.get(i).getItemno()); 356 n.setItemname(list.get(i).getItemname()); 357 n.setSum(n.getSum() + list.get(i).getItemnumber()); 358 end.add(n); 359 } 360 } 361 }
(3)numSum类(最后盘点时统计相同编号的商品总数量)
1 package today; 2 /* 3 信2205-2 4 20224089 5 连赛轩 6 */ 7 public class numSum { 8 private String itemno; 9 private int sum=0; 10 private String itemname; 11 12 public String getItemno() { 13 return itemno; 14 } 15 16 public void setItemno(String itemno) { 17 this.itemno = itemno; 18 } 19 20 public int getSum() { 21 return sum; 22 } 23 24 public void setSum(int sum) { 25 this.sum = sum; 26 } 27 28 public String getItemname() { 29 return itemname; 30 } 31 32 public void setItemname(String itemname) { 33 this.itemname = itemname; 34 } 35 36 public numSum(String itemno, int sum, String itemname) { 37 this.itemno = itemno; 38 this.sum = sum; 39 this.itemname = itemname; 40 } 41 42 public numSum() { 43 } 44 }
四、运行结果
(1)商品入库
(2)商品信息修改
(3)商品出库管理
(4)商品库存盘点
标签:开学,String,软工,list,System,println,public,考试,out From: https://www.cnblogs.com/lian369/p/17703592.html