9.15 开学测试

二、系统背景:

某机械有限公司为了公司进一步的发展,需要实现企业数字化管理,新引进一套企业信息管理系统(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

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

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

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


package java1;

import java.util.Scanner;

public class WarehouseInformation {
private String itemno;
private String itemname;
private String suppliername;
private String warehousingtime;
private String shipmenttime;
private String warehousenumber;
private String warehouseplace;
private int itemnumber;
private int outnumber;

public String getItemno() {
return itemno;
}

public void setItemno(String itemno) {
this.itemno = itemno;
}

public String getItemname() {
return itemname;
}

public void setItemname(String itemname) {
this.itemname = itemname;
}

public String getSuppliername() {
return suppliername;
}

public void setSuppliername(String suppliername) {
this.suppliername = suppliername;
}

public String getWarehousingtime() {
return warehousingtime;
}

public void setWarehousingtime(String warehousingtime) {
this.warehousingtime = warehousingtime;
}

public String getShipmenttime() {
return shipmenttime;
}

public void setShipmenttime(String shipmenttime) {
this.shipmenttime = shipmenttime;
}

public String getWarehousenumber() {
return warehousenumber;
}

public void setWarehousenumber(String warehousenumber) {
this.warehousenumber = warehousenumber;
}

public String getWarehouseplace() {
return warehouseplace;
}

public void setWarehouseplace(String warehouseplace) {
this.warehouseplace = warehouseplace;
}

public int getItemnumber() {
return itemnumber;
}

public void setItemnumber(int itemnumber) {
this.itemnumber = itemnumber;
}

public int getOutnumber() {
return outnumber;
}

public void setOutnumber(int outnumber) {
this.outnumber = outnumber;
}
}

class WarehouseManagement {
private WarehouseInformation[] warehouseInformationArray = new WarehouseInformation[5];
private int currentIndex = 0;

public void start() {
Scanner scanner = new Scanner(System.in);

while (true) {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学前进22软件开发有限公司 ");
System.out.println(" 仓库管理系统2022版 ");
System.out.println("***********************************************************");
System.out.println(" 1、商品入库管理 ");
System.out.println(" 2、商品信息修改 ");
System.out.println(" 3、商品出库管理 ");
System.out.println(" 4、仓库盘点管理 ");
System.out.println("**********************************************************");

System.out.print("请输入数字1-4执行相应的功能:");
int choice = scanner.nextInt();

switch (choice) {
case 1:
addWarehouseInformation(scanner);
break;
case 2:
modifyWarehouseInformation(scanner);
break;
case 3:
performGoodsShipment(scanner);
break;

default:
System.out.println("该选项不存在,请重新输入。");
}
}
}

private void addWarehouseInformation(Scanner scanner) {
WarehouseInformation info = new WarehouseInformation();

System.out.println("请输入商品编码:");
info.setItemno(scanner.next());

System.out.println("请输入商品名称:");
info.setItemname(scanner.next());

System.out.println("请输入供货商信息:");
info.setSuppliername(scanner.next());

System.out.println("请输入入库时间(格式:yyyyMMdd):");
info.setWarehousingtime(scanner.next());

System.out.println("请输入存放仓库号:");
info.setWarehousenumber(scanner.next());

System.out.println("请输入存放位置信息(格式:XXXXXXXX):");
info.setWarehouseplace(scanner.next());

System.out.println("请输入入库商品数量:");
info.setItemnumber(scanner.nextInt());

if (validateInput(info)) {
System.out.println("录入错误,请重新录入正确信息。");
return;
}

System.out.println("***********************************************************");
System.out.println("商品编号:" + info.getItemno());
System.out.println("商品名称:" + info.getItemname());
System.out.println("供货商信息:" + info.getSuppliername());
System.out.println("入库时间:" + info.getWarehousingtime());
System.out.println("存放仓库号:" + info.getWarehousenumber());
System.out.println("存放位置信息:" + info.getWarehouseplace());
System.out.println("入库商品数量:" + info.getItemnumber());
System.out.print("该商品入库操作已完成,是否提交(Y/N):");
String submitChoice = scanner.next();

if (submitChoice.equalsIgnoreCase("Y")) {
warehouseInformationArray[currentIndex] = info;
currentIndex++;
}
}

private void modifyWarehouseInformation(Scanner scanner) {
System.out.println("请输入商品编号:");
String itemNoToModify = scanner.next();
boolean found = false;

for (int i = 0; i < currentIndex; i++) {
WarehouseInformation info = warehouseInformationArray[i];
if (info.getItemno().equals(itemNoToModify)) {
found = true;
System.out.println("1、商品编号:" + info.getItemno());
System.out.println("2、商品名称:" + info.getItemname());
System.out.println("3、供货商信息:" + info.getSuppliername());
System.out.println("4、入库时间:" + info.getWarehousingtime());
System.out.println("5、存放仓库号:" + info.getWarehousenumber());
System.out.println("6、存放位置信息:" + info.getWarehouseplace());
System.out.println("7、入库商品数量:" + info.getItemnumber());

System.out.print("请选择需要修改的信息编号(1-7):");
int fieldToModify = scanner.nextInt();

switch (fieldToModify) {
case 1:
System.out.print("请输入修改后的商品编号:");
info.setItemno(scanner.next());
break;
case 2:
System.out.print("请输入修改后的商品名称:");
info.setItemname(scanner.next());
break;
case 3:
System.out.print("请输入修改后的供货商信息:");
info.setSuppliername(scanner.next());
break;
case 4:
System.out.print("请输入修改后的入库时间(格式:yyyyMMdd):");
info.setWarehousingtime(scanner.next());
break;
case 5:
System.out.print("请输入修改后的存放仓库号:");
info.setWarehousenumber(scanner.next());
break;
case 6:
System.out.print("请输入修改后的存放位置信息(格式:XXXXXXXX):");
info.setWarehouseplace(scanner.next());
break;
case 7:
System.out.print("请输入修改后的入库商品数量:");
info.setItemnumber(scanner.nextInt());
break;
default:
System.out.println("该选项不存在,请重新输入。");
break;
}

System.out.print("是否保存修改信息(Y/N):");
String saveChoice = scanner.next();

if (saveChoice.equalsIgnoreCase("Y")) {
System.out.println("修改已保存。");
} else {
System.out.println("修改未保存。");
}

break;
}
}

if (!found) {
System.out.println("库中没有该商品。");
}
}

private void performGoodsShipment(Scanner scanner) {
System.out.println("请输入商品编号:");
String itemNoToShip = scanner.next();
boolean found = false;

for (int i = 0; i < currentIndex; i++) {
WarehouseInformation info = warehouseInformationArray[i];
if (info.getItemno().equals(itemNoToShip)) {
found = true;
System.out.println("1、商品编号:" + info.getItemno());
System.out.println("2、商品名称:" + info.getItemname());
System.out.println("3、供货商信息:" + info.getSuppliername());
System.out.println("4、入库时间:" + info.getWarehousingtime());
System.out.println("5、存放仓库号:" + info.getWarehousenumber());
System.out.println("6、存放位置信息:" + info.getWarehouseplace());
System.out.println("7、入库商品数量:" + info.getItemnumber());
System.out.print("出库时间:");
String shipmentTime = scanner.next();
info.setShipmenttime(shipmentTime);
System.out.print("出库数量:");
int shippedQuantity = scanner.nextInt();

if (shippedQuantity <= info.getItemnumber()) {
info.setOutnumber(shippedQuantity);
info.setItemnumber(info.getItemnumber() - shippedQuantity);
System.out.println("出库操作已完成。");
} else {
System.out.println("出库数量大于库存数量,请重新输入。");
}

break;
}
}

if (!found) {
System.out.println("库中没有该商品。");
}
}

private boolean validateInput(WarehouseInformation info) {
return false;
}
}

class WarehouseManagementSystem {
public static void main(String[] args) {
WarehouseManagement warehouseManagement = new WarehouseManagement();
warehouseManagement.start();
}
}
posted @ 2023-09-17 16:21  涨涨涨张  阅读(34)  评论(0编辑  收藏  举报