2023.9.12

发布时间 2023-09-12 16:57:49作者: 徐星凯

重新修改了之前的代码

题目如下:

 

某机械有限公司为了公司进一步的发展,需要实现企业数字化管理,新引进一套企业信息管理系统(ERP由于该产品缺乏入库功能,特委托石家庄铁道大学信息科学与技术学院前进22软件有限公司开发仓库管理功能。

二、  数据结构要求:(5分)

1、定义WarehouseInformation类,其中包括个私有变量(itemnumber,itemname,suppliernamewarehousingtimeshipmenttime,warehousenumberwarehouseplaceitemnumberoutnumber)。

各成员的含义如下:

变量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,suppliernamewarehousingtimeshipmenttime,warehousenumberwarehouseplaceitemnumberoutnumber)赋值。

三、  功能要求:(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

………………………………………………….

**********************************************************

显示全部商品数量,期中库存数量=入库数量之和 -- 出库数量之和

application.java

package project0;
//信2205-2班20223927徐星凯
import java.util.Scanner;
public class Application {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        WarehouseManagement sy=new WarehouseManagement();//系统对象
        menu();
        int m;
        while(true) {
           System.out.print("             请选择功能:");
           m=sc.nextInt();
           System.out.print("\n");
           switch(m) {
           case 1:sy.input();
               break;
           case 2:sy.change();
               break;
           case 3:sy.out();
               break;
           case 4:sy.sheet();
               break;
           default:System.out.println("没有所选的功能,请重新选择");
               break;
           }
        }
        
    }
    public static void menu() {
        System.out.println("********************************************");
        System.out.println("        石家庄铁道大学前进22软件开发有限公司");
        System.out.println("             仓库管理系统2022版");

WarehouseInformation.java

package project0;
//信2205-2班20223927徐星凯
//商品类
public class WarehouseInformation {
private String itemno;//商品编号*8位
private String itemname;//商品名称
private String suppliername;//供货商姓名
private String warehousingtime;//入库时间*8位
private String shipmenttime;//出库时间
private String warehousenumber;//仓库编号*3位
private String warehouseplace;//存放位置*8位
private int itemnumber;//入库数量
private int outnumber;//出库数量
public WarehouseInformation() {}
public WarehouseInformation(String a,String b,String c,String d,String e,String f,
        String g,int h,int i) {
    itemno=a;
    itemname=b;
    suppliername=c;
    warehousingtime=d;
    shipmenttime=e;
    warehousenumber=f;
    warehouseplace=g;
    itemnumber=h;
    outnumber=i;
}
////////////////////////////////////////
public String getitemno() {
    return itemno;
}
public String getitemname() {
    return itemname;
}
public String getsuppliername() {
    return suppliername;
}
public String getwarehousingtime() {
    return warehousingtime;
}
public String getshipmenttime() {
    return shipmenttime;
}
public String getwarehousenumber() {
    return warehousenumber;
}
public String getwarehouseplace() {
    return warehouseplace;
}
public int getitemnumber() {
    return itemnumber;
}
public int getoutnumber() {
    return outnumber;
}
/////////////////////////////////////////////
public void setitemno(String a) {
    itemno=a;
}
public void setitemname(String a) {
    itemname=a;
}
public void setsuppliername(String a) {
    suppliername=a;
}
public void setwarehousingtime(String a) {
    warehousingtime=a;
}
public void setshipmenttime(String a) {
    shipmenttime=a;
}
public void setwarehousenumber(String a) {
    warehousenumber=a;
}
public void setwarehouseplace(String a) {
    warehouseplace=a;
}
public void setitemnumber(int a) {
    itemnumber=a;
}
public void setoutnumber(int a) {
    outnumber=a;
}


}



        System.out.println("********************************************");
        System.out.println("              1、商品入库管理");
        System.out.println("              2、商品信息修改");
        System.out.println("              3、商品出库管理");
        System.out.println("              4、仓库盘点管理");
        System.out.println("********************************************");
    }
}

WarehouseManagement.java

package project0;
//信2205-2班20223927徐星凯
import java.util.Scanner;

//系统类
public class WarehouseManagement {
    Scanner sc=new Scanner(System.in);
    static int num=0;
    
    WarehouseInformation a0=new WarehouseInformation();
    WarehouseInformation a1=new WarehouseInformation();
    WarehouseInformation a2=new WarehouseInformation();
    WarehouseInformation a3=new WarehouseInformation();
    WarehouseInformation a4=new WarehouseInformation();
    WarehouseInformation[] ware= {a0,a1,a2,a3,a4};
    public WarehouseManagement() {}
    public WarehouseManagement(WarehouseInformation[] a) {
        for(int i=0;i<5;i++) {
            ware[i]=a[i];
        }
    }
    public  void menu() {
        System.out.println("********************************************");
        System.out.println("        石家庄铁道大学前进22软件开发有限公司");
        System.out.println("             仓库管理系统2022版");
        System.out.println("********************************************");
    }
    public  void menu2(int a) {
        System.out.println("1、商品编号:"+ware[a].getitemno());
        System.out.println("2、商品名称:"+ware[a].getitemname());
        System.out.println("3、供货商信息:"+ware[a].getsuppliername());
        System.out.println("4、入库时间:"+ware[a].getwarehousingtime());
        System.out.println("5、存放仓库号:"+ware[a].getwarehousenumber());
        System.out.println("6、存放位置信息:"+ware[a].getwarehouseplace());
        System.out.println("7、入库商品数量:"+ware[a].getitemnumber());
    }
    //商品入库
    public  void input() {
        menu();
        int b;
        int b1=0;//用于储存i值
        boolean bl=false;
        String a = null;
        while(true) {
          System.out.print("商品编号:");
          a=sc.next();
        //若输入的商品编号相同则不创建新的分类而是在之前的基础上增加入库数量
          for(int i=0;i<=num;i++) {
                 if(a.equals(ware[i].getitemno())) {
                     bl=true;
                     b1=i;
                 }
             }
          if(bl) {
              System.out.print("入库商品数量:");
              b=sc.nextInt();
              ware[b1].setitemnumber(b+ware[b1].getitemnumber());
              break;
          }
          ware[num].setitemno(a);
          System.out.print("商品名称:");
          a=sc.next();
          ware[num].setitemname(a);
          System.out.print("供货商信息:");
          a=sc.next();
          ware[num].setsuppliername(a);
          System.out.print("入库时间:");
          a=sc.next();
          ware[num].setwarehousingtime(a);
          System.out.print("存放仓库号:");
          a=sc.next();
          ware[num].setwarehousenumber(a);
          System.out.print("存放位置信息:");
          a=sc.next();
          ware[num].setwarehouseplace(a);
          System.out.print("入库商品数量:");
          b=sc.nextInt();
          ware[num].setitemnumber(b);
          if(ware[num].getitemno().length()==8&&ware[num].getwarehousingtime().length()==8&&
                  ware[num].getwarehousenumber().length()==3&&ware[num].getwarehouseplace().length()==8) {
              inputOut();
              break;
          }
          else {
              System.out.println("输入数据有误,请重新输入");
          }
        }
    }
    public void inputOut() {
        String n;
        menu();
        System.out.println("商品编号:"+ware[num].getitemno());
        System.out.println("商品名称:"+ware[num].getitemname());
        System.out.println("供货商信息:"+ware[num].getsuppliername());
        System.out.println("入库时间:"+ware[num].getwarehousingtime());
        System.out.println("存放仓库号:"+ware[num].getwarehousenumber());
        System.out.println("存放位置信息:"+ware[num].getwarehouseplace());
        System.out.println("入库商品数量:"+ware[num].getitemnumber());
        System.out.println("该商品入库操作已完成,是否提交(Y/N)");
        n=sc.next();
        num++;
        if(n.equals("N")) {
            input();
        }
    }
    //商品信息修改
    public void change() {
        int m=0;
        menu();
        boolean check=false;//判断是否存在该商品
        String n;
        String q;
        int a = 0;
        System.out.print("请输入商品编号:");
        n=sc.next();
        for(int i=0;i<=num;i++) {
            if(n.equals(ware[i].getitemno())) {
                check=true;
                menu2(i);
                System.out.println("请选择需要修改的信息编号(1-7):");
                m=sc.nextInt();
                a=i;
                break;
            }
        }
        if(!check) {
            System.out.println("该商品不存在");
        }
        switch(m) {
        case 1:menu2(a);
        System.out.print("请输入修改后的商品编号");
        n=sc.next();
        System.out.println("是否提交(Y/N)");
        q=sc.next();
            if(q.equals("Y")) {
                ware[a].setitemno(q);
            }
            break;
        case 2:menu2(a);
        System.out.print("请输入修改后的商品名称");
        n=sc.next();
        System.out.println("是否提交(Y/N)");
        q=sc.next();
            if(q.equals("Y")) {
                ware[a].setitemname(q);
            }
            break;
        case 3:menu2(a);
        System.out.print("请输入修改后的供货商信息");
        n=sc.next();
        System.out.println("是否提交(Y/N)");
        q=sc.next();
            if(q.equals("Y")) {
                ware[a].setsuppliername(q);
            }
            break;
        case 4:menu2(a);
        System.out.print("请输入修改后的入库时间");
        n=sc.next();
        System.out.println("是否提交(Y/N)");
        q=sc.next();
            if(q.equals("Y")) {
                ware[a].setwarehousingtime(q);
            }
            break;
        case 5:menu2(a);
        System.out.print("请输入修改后的存放仓库号");
        n=sc.next();
        System.out.println("是否提交(Y/N)");
        q=sc.next();
            if(q.equals("Y")) {
                ware[a].setwarehousenumber(q);
            }
            break;
        case 6:menu2(a);
        System.out.print("请输入修改后的存放位置信息");
        n=sc.next();
        System.out.println("是否提交(Y/N)");
        q=sc.next();
            if(q.equals("Y")) {
                ware[a].setwarehouseplace(q);
            }
            break;
        case 7:menu2(a);
        System.out.print("请输入修改后的商品数量");
        int p=0;
        p=sc.nextInt();
        System.out.println("是否提交(Y/N)");
        q=sc.next();
            if(q.equals("Y")) {
                ware[a].setitemnumber(p);
            }
            break;
            default:System.out.println("该选项不存在");
            break;
        }
    }
    //商品出库
    public void out() {
        menu();
        System.out.print("请输入商品编号:");
        String n;//查找的商品编号
        String m;//出库时间
        String p = null;
        int a = 0;
        int b = 0;//储存i值
        while(true) {
         n=sc.next();
         boolean check=false;//判断是否存在该商品
         for(int i=0;i<=num;i++) {
            
             if(n.equals(ware[i].getitemno())) {
                 check=true;
                 b=i;
             }
             
         }
         if(check) {
             menu2(b);
             System.out.print("出库时间:");
             while(true) {//确保出库时间大于入库时间
                 m=sc.next();
                 int num1=Integer.parseInt(m);
                 int num2=Integer.parseInt(ware[b].getwarehousingtime());
                 if(num1>num2)
                     break;
                 else {
                     System.out.println("输入的数据有问题,请重新输入");
                 }
             }
             
             System.out.print("出库数量:");
             while(true) {//确保出库数量小于入库数量
                a=sc.nextInt();
                if(a<ware[b].getitemnumber()) 
                    break;
                else {
                    System.out.println("输入的数据有问题,请重新输入");
                }
             }
             System.out.println("是否提交(Y/N)");
             p=sc.next();
         }
         else {
             System.out.println("没有该商品,请重新输入");
             break;
         }
         if(p.equals("Y")) {
             ware[b].setitemnumber(ware[b].getitemnumber()-a);
             break;
         }
        }
    }
    //商品管理
    public void sheet() {
        menu();
        for(int i=0;i<num;i++) {
            System.out.println(i+1+"商品编号:"+ware[i].getitemno()
                    +"、"+"商品名称:"+ware[i].getitemname()+"、"+"库存数量:"+ware[i].getitemnumber());
        }
    }
}

还看了一会JavaWeb的黑马程序员课程,但是VS Code还没弄明白