代码改进

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,在功能执行输出提示错误;

四个主功能就是一步步按照要求写,没有什么难度,主要运用查找和判断规范的方式。

 

posted @ 2023-09-17 16:15  *太¥^白%  阅读(5)  评论(0编辑  收藏  举报