代码改进
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,在功能执行输出提示错误;
四个主功能就是一步步按照要求写,没有什么难度,主要运用查找和判断规范的方式。