代码改进
package text;
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 WarehouseInformation() {};
public String getitemno() {
return itemno;
}
public void setitemno(String itemno) {
this.itemno=itemno;
}//1商品编号(八位)
public String getitemname() {
return itemname;
}
public void setitemname(String itemname) {
this.itemname=itemname;
}//2商品昵称
public String getsuppliername() {
return suppliername;
}
public void setsuppliername(String suppliername) {
this.suppliername=suppliername;
}//3供货商名称
public String getwarehousingtime() {
return warehousingtime;
}
public void setwarehousingtime(String warehousingtime) {
this.warehousingtime=warehousingtime;
}//4入库时间(八位)
public String getshipmenttime() {
return shipmenttime;
}
public void setshipmenttime(String shipmenttime) {
this.shipmenttime=shipmenttime;
}//5出库时间(八位)
public String getwarehousenumber() {
return warehousenumber;
}
public void setwarehousenumber(String warehousenumber) {
this.warehousenumber=warehousenumber;
}//6仓库编号(三位)
public String getwarehouseplace() {
return warehouseplace;
}
public void setwarehouseplace(String warehouseplace) {
this.warehouseplace=warehouseplace;
}//7存放商品的具体位置(八位)
public int getitemnumber() {
return itemnumber;
}
public void setitemnumber(int itemnumber) {
this.itemnumber=itemnumber;
}//8入库商品的数量
public int getoutnumber() {
return outnumber;
}
public void setoutnumber(int outnumber) {
this.outnumber=outnumber;
}//9出库商品的数量
}
package text;
import java.util.Scanner;
public class WarehouseManagement {
static WarehouseInformation [] a=new WarehouseInformation[100];
public static int count =0; //创建的商品数量(单位)
public static void main(String []args )
{ int n=0;
do
{
menu();
Scanner input=new Scanner (System.in);
n=input.nextInt();
switch(n) {
case 1:System.out.println("输入创建的商品个数:");
Scanner input3=new Scanner(System.in);
count=input.nextInt();
create(count);
break;
case 2:modify();
break;
case 3:outbound();
break;
case 4:break;
case 0:System.out.println("已退出!");
break;
default :System.out.println("输入错误,请规范输入!");
break;
}
}while(n!=0);
}
public static void menu()//菜单选择
{
System.out.println("***********************************************************\r\n"
+ "石家庄铁道大学前进22软件开发有限公司\r\n"
+ "仓库管理系统2022版\r\n"
+ "***********************************************************\r\n"
+ "1、商品入库管理\r\n"
+ "2、商品信息修改\r\n"
+ "3、商品出库管理\r\n"
+ "4、仓库盘点管理\r\n"
+ "**********************************************************");
System.out.println("请选择:");
}
public static void create(int count)//创建入库信息(1)
{ int x=0;
while(x<count)
{
a[x]=new WarehouseInformation();
System.out.println("商品编号:");
Scanner input1 =new Scanner (System.in);
String l1=input1.next();
while(format(l1)) {
System.out.println("输入错误,重新输入:");
l1 =input1.next();
}
a[x].setitemno(l1);
System.out.println("商品名称:");
Scanner input2 =new Scanner (System.in);
String l2=input2.next();
a[x].setitemname(l2);
System.out.println("供货商信息:");
Scanner input3 =new Scanner (System.in);
String l3=input3.next();
a[x].setsuppliername(l3);
System.out.println("入库时间:");
Scanner input4 =new Scanner (System.in);
String l4=input4.next();
while(format(l4)) {
System.out.println("输入错误,重新输入:");
l4 =input4.next();
}
a[x].setwarehousingtime(l4);
System.out.println("存放仓库号:");
Scanner input5 =new Scanner (System.in);
String l5=input5.next();
while(format(l5)) {
System.out.println("输入错误,重新输入:");
l5 =input5.next();
}
a[x].setwarehousenumber(l5);
System.out.println("存放位置信息:");
Scanner input6 =new Scanner (System.in);
String l6=input6.next();
while(format(l6)) {
System.out.println("输入错误,重新输入:");
l6 =input6.next();
}
a[x].setwarehouseplace(l6);
System.out.println("入库商品数量:");
Scanner input7 =new Scanner (System.in);
int l7=input7.nextInt();
a[x].setitemnumber(l7);
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学前进22软件开发有限公司");
System.out.println("仓库管理系统2022版");
System.out.println("商品编号:"+a[x].getitemno());
System.out.println("商品名称:"+a[x].getitemname());
System.out.println("供货商信息:"+a[x].getsuppliername());
System.out.println("入库时间:"+a[x].getwarehousingtime());
System.out.println("存放仓库号:"+a[x].getwarehousenumber());
System.out.println("存放位置信息:"+a[x].getwarehouseplace());
System.out.println("入库商品数量:"+a[x].getitemnumber());
System.out.println("该商品入库操作已完成,是否提交(Y/N)");
System.out.println("**********************************************************");
Scanner sc=new Scanner(System.in);
String choose=sc.next();
boolean b=true;
while(b)
if (choose.equals("Y"))
{
System.out.println("录入成功!");
x++;
b=false;
}
else if (choose.equals("N")){
a[x]=null;
System.out.println("撤销录入!");
b=false;
}
else
{
System.out.println("输入错误,重新输入:");
choose=sc.next();
}
}
}
public static void modify()//修改信息(2)
{
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学前进22软件开发有限公司");
System.out.println("仓库管理系统2022版");
System.out.println("***********************************************************");
System.out.println("请输入商品编号:XXXXXXXX");
System.out.println("***********************************************************");
Scanner input =new Scanner(System.in);
String number =input.next();
while(format(number)) {
System.out.println("输入错误,重新输入:");
number =input.next();
}
int index = findnumber(number);
if (index == -1) {
System.out.println("商品不存在,无法修改。");
return;
}
WarehouseInformation b=a[index];
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学前进22软件开发有限公司");
System.out.println("仓库管理系统2022版");
System.out.println("***********************************************************");
System.out.println("1、商品编号:"+b.getitemno());
System.out.println("2、商品名称:"+b.getitemname());
System.out.println("3、供货商信息:"+b.getsuppliername());
System.out.println("4、入库时间:"+b.getwarehousingtime());
System.out.println("5、存放仓库号:"+b.getwarehousenumber());
System.out.println("6、存放位置信息:"+b.getwarehouseplace());
System.out.println("7、入库商品数量:"+b.getitemnumber());
System.out.println("请选择需要修改的信息编号(1-7):");
System.out.println("**********************************************************");
Scanner input0=new Scanner (System.in);
int x=input0.nextInt();
switch (x) {
case 1:
System.out.println("商品编号:");
Scanner input1 =new Scanner (System.in);
String l1=input1.next();
while(format(l1)) {
System.out.println("输入错误,重新输入:");
l1 =input1.next();
}
b.setitemno(l1);
break;
case 2:
System.out.println("商品名称:");
Scanner input2 =new Scanner (System.in);
String l2=input2.next();
b.setitemname(l2);
break;
case 3:
System.out.println("供货商信息:");
Scanner input3 =new Scanner (System.in);
String l3=input3.next();
a[x].setsuppliername(l3);
break;
case 4:
System.out.println("存放仓库号:");
Scanner input5 =new Scanner (System.in);
String l5=input5.next();
while(format(l5)) {
System.out.println("输入错误,重新输入:");
l5 =input5.next();
}
b.setwarehousenumber(l5);
break;
case 5:
System.out.println("存放位置信息:");
Scanner input6 =new Scanner (System.in);
String l6=input6.next();
while(format(l6)) {
System.out.println("输入错误,重新输入:");
l6 =input6.next();
}
b.setwarehouseplace(l6);
break;
case 6:
System.out.println("入库商品数量:");
Scanner input7 =new Scanner (System.in);
int l7=input7.nextInt();
b.setitemnumber(l7);
break;
default:
System.out.println("请选择有效的信息编号。");
break;
}
System.out.println("该商品修改操作已完成,是否提交(Y/N)");
Scanner sc=new Scanner(System.in);
String choose=sc.next();
boolean c=true;
while(c)
if (choose.equals("Y"))
{
System.out.println("修改成功!");
c=false;
}
else if (choose.equals("N")){
System.out.println("撤销修改!");
b=null;
c=false;
}
else
{
System.out.println("输入错误,重新输入:");
choose=sc.next();
}
}
public static void outbound()//出库管理(3)
{
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学前进22软件开发有限公司");
System.out.println("仓库管理系统2022版");
System.out.println("***********************************************************");
System.out.println("请输入商品编号:XXXXXXXX");
System.out.println("**********************************************************");
Scanner input =new Scanner(System.in);
String number =input.next();
while(format(number)) {
System.out.println("输入错误,重新输入:");
number =input.next();
}
int index = findnumber(number);
if (index == -1) {
System.out.println("商品不存在,无法修改。");
return;
}
WarehouseInformation b=a[index];
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学前进22软件开发有限公司");
System.out.println("仓库管理系统2022版");
System.out.println("***********************************************************");
System.out.println("1、商品编号:"+b.getitemno());
System.out.println("2、商品名称:"+b.getitemname());
System.out.println("3、供货商信息:"+b.getsuppliername());
System.out.println("4、入库时间:"+b.getwarehousingtime());
System.out.println("5、存放仓库号:"+b.getwarehousenumber());
System.out.println("6、存放位置信息:"+b.getwarehouseplace());
System.out.println("7、入库商品数量:"+b.getitemnumber());
System.out.println("**********************************************************");
System.out.println("出库时间:");
Scanner input8 =new Scanner (System.in);
String l8=input8.next();
while(format(l8)) {
System.out.println("输入错误,重新输入:");
l8 =input8.next();
}
b.setshipmenttime(l8);
System.out.println("出库商品数量:");
Scanner input9=new Scanner (System.in);
int l9=0;
int sum=-1;
while(sum<0)
{ l9=input.nextInt();
sum=b.getitemnumber()-l9;
if(sum<0)
System.out.println("出库数量无效,无法出库,请重新输入:");
}
b.setoutnumber(l9);
b.setitemnumber(sum);
System.out.println("出库成功!");
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学前进22软件开发有限公司");
System.out.println("仓库管理系统2022版");
System.out.println("***********************************************************");
System.out.println("1、商品编号:"+b.getitemno());
System.out.println("2、商品名称:"+b.getitemname());
System.out.println("3、供货商信息:"+b.getsuppliername());
System.out.println("4、入库时间:"+b.getwarehousingtime());
System.out.println("5、存放仓库号:"+b.getwarehousenumber());
System.out.println("6、存放位置信息:"+b.getwarehouseplace());
System.out.println("7、入库商品数量:"+b.getitemnumber());
System.out.println("出库时间:"+b.getshipmenttime());
System.out.println("出库数量:"+b.getoutnumber());
System.out.println("**********************************************************");
System.out.println("该商品出库操作已完成,是否提交(Y/N)");
Scanner sc=new Scanner(System.in);
String choose=sc.next();
boolean c=true;
while(c)
if (choose.equals("Y"))
{
System.out.println("修改成功!");
c=false;
}
else if (choose.equals("N")){
System.out.println("撤销修改!");
b=null;
c=false;
}
else
{
System.out.println("输入错误,重新输入:");
choose=sc.next();
}
}
public static void settlement()//仓库盘点(4)
{
for(int i=0;i<count;i++)
{
WarehouseInformation b=a[i];
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学前进22软件开发有限公司");
System.out.println("仓库管理系统2022版");
System.out.println("***********************************************************");
System.out.print(i);
System.out.print("商品编号:" +b.getitemno());
System.out.print("商品名称:" +b.getitemname());
System.out.print("库存数量:" +b.getitemnumber());
System.out.println();
System.out.println("**********************************************************");
}
}
public static boolean format(String str)//判断输入的格式
{
if(str.length()!= 8 && str.length()!= 3)
{
return true;
}
else {
for(int i=0;i<str.length();i++)
{
if(str.charAt(i)<='9'&&str.charAt(i)>='0')
{
return false;
}
}
}
return false;
}
public static int findnumber(String number)//查找数据
{
for(int i=0;i<count;i++)
{
if(a[i].getitemno().equals(number))
{
return i;
}
}
return -1;
}
}
题目有点长,主要是关于数据的创建、修改、插入、查询、以及判断数据输入的正确性。
我个人呢,主要是在判断输入数据的规范上有点复杂,只是简单的判断位数以及字符的范围。
先是创建数据类 WarehouseInformation,其中有九个数据,七个字符型(五个是八位,一个是三位),两个整形,这就是之前提到的判断输入的规范,我是判断字符是否三位或者八位;
另外一个就是执行类,包括一个主函数和四个功能函数,两个判断类函数,四个功能就是创建、修改、还有运算,因为里面都会用到查找,所以就定义了一个查找类返回要查找数据小标;
判断是boolean 类,如果不满足返回true,在功能执行输出提示错误;
四个主功能就是一步步按照要求写,没有什么难度,主要运用查找和判断规范的方式。
浙公网安备 33010602011771号