软工开学考试

一、题目

一、考试要求:

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)商品库存盘点

 

posted @ 2023-09-14 21:49  连师傅只会helloword  阅读(10)  评论(0编辑  收藏  举报