库存管理系统

//可进行连续操作,可进行各类报错,并增加了清空货舱(Clear)和显示帮助(help)两个功能;
import java.util.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Paths;
public class New_storehouse{
public static void main(String[] args) throws IOException {
	ArrayList<String> product = new  ArrayList<String>();
    Product p=new Product();
    String order="";String data="1";    int q=-1;
    while(true){
    Scanner in1=new Scanner(System.in);//从txt读入
    Scanner in=new Scanner(Paths.get("F:\\Java\\storehouse.txt"));  
    while(in.hasNext())
        product.add(in.next());

 o:while(true){
	q++;
    if(q==3)
    	 System.out.println("错的太多了吧,查看一下帮助?");
    if(q>6||q==4)
    	 System.out.println("哎,为何如此顽固......");  
    if(q==5)
   	 System.out.println("......");  
    if(q==6)
      	 System.out.println("还想试吗");  
    if(q<3)
    System.out.println("输入指令和数据"); 
	order=in1.next();
	if(!order.equals("help")&&!order.equals("Clear")&&!order.equals("Add")&&!order.equals("Remove")&&!order.equals("Update")&&!order.equals("Find")&&!order.equals("Show"))
	{
		if(q<2){
		System.out.printf("指令错啦,再来一次");
		Help();}
	    continue;
	}
	if(!order.equals("Show")&&!order.equals("Clear")&&!order.equals("help"))
		 data=in1.next();
    int i=0;
    while((i<data.length())&&(data.charAt(i)>='0')&&(data.charAt(i)<='9'))		
        i++;
    if(i==0){
    	if(q<2){
		System.out.println("数据错啦,再试一次吧");
		Help();}
   	    continue; 
   	}
    
	switch (order){
	case "Add":
		if(p.findN(data,product)!=-1){
		    System.out.printf("已存在,可进行更新(Update),再试一次吧");
		    Help();
		    }
		else{
	    p.Add(product,data);
	    break o;}
	    continue;
	case "Remove":
		if((i!=(data.length())/*!String.valueOf(p.Number(product.get(p.findN(data,product)))).equals(String.valueOf(p.Number(data)))*/)){
			if(q<2){
			System.out.println("指令错啦,再试一次吧");
		    Help();}
			}
		else{
		    p.Remove(product,data);
		    break o;   
		    }
		continue;
	case"Update":
		p.Update(product,data);
		break o;
	case"Find":	
		if((i!=(data.length())/*!String.valueOf(p.Number(product.get(p.findN(data,product)))).equals(String.valueOf(p.Number(data)))*/)){
			if(q<2){
			System.out.println("指令错啦,再试一次吧");
			 Help();}
			}
		else{
		p.Find(product,data);
		break o;}
		continue;
	case"Show":
		p.Show(product);
		break o;
	case"Clear":
	    p.Clear(product);
		break o;
	case"help":
		System.out.println("增加 库存中无记录的货物   Add String.valueOf(int a)+String      例如:Add 001xxx");
		System.out.println("移除 库存中有的某种货物   Remove String.valueOf(int a)          例如:Remove 001");
		System.out.println("更新 库存中有的某种货物   Update String.valueOf(int a)+String   例如:Update 001xxxxxx");
		System.out.println("查找 库存中有的某种货物   Find String.valueOf(int a)            例如:Find 001");
		System.out.println("显示 所有货物按编号排序   Show");
		System.out.println("清空 库存                             Clear");
		System.out.println("帮助                                      help");
		break o;
	default:	
		System.out.println("指令错啦,再来一次吧");
		Help();
		continue;
	}//switch
    }//while o
	
    q=-1;
	PrintWriter a=new PrintWriter("F:\\Java\\storehouse.txt");
    for(int i=0;i<product.size();i++)
    	a.println(product.get(i));
   	a.close();
   	product.clear();
    	}//while
}//class 
public static void Help(){
    	System.out.println("(可输入help获取帮助)");
    }
}//main

class Product{
	public Product()
	{
	}
	public void Add(ArrayList<String> product,String data){
	    product.add(data);
	    System.out.printf("添加成功 ");
	}
	public void Remove(ArrayList<String> product,String data){
			if(findN(data,product)==-1)
				System.out.println("未找到");
			else{
				product.remove(findN(data,product));
				System.out.println("已从仓库删除");}
	}
	public void Update(ArrayList<String> product,String data){
		if(findN(data,product)==-1)
			System.out.println("未找到");
		else{
			product.set(findN(data,product),data);
			System.out.println("已更新");
		}
	}
	public void Find(ArrayList<String> product,String data){
		if(findN(data,product)==-1)
			System.out.println("未找到 ");
		else{
			int j=findN(data,product);
		    System.out.println(product.get(j));
		    }
	}
	public void Show(ArrayList<String> product){
			if(product.size()==0)
		    System.out.println("货舱空");
			int b[]=new int[product.size()];
			for(int i=0;i<product.size();i++)
				b[i]=Number(product.get(i));
			Arrays.sort(b);
			for(int e:b)
				System.out.println(product.get(findN(String.valueOf(e),product)));
	}
	public void Clear(ArrayList<String> product){
		int n=product.size();
	    for(int j=0;j<n;j++)
	       product.remove(findN(product.get(0),product));
	    System.out.println("已清空");
	}
	public  int findN(String str,ArrayList<String> product){//分离出编号
		int i;
		for(i=0;i<product.size();i++){
			if(Number(product.get(i))==Number(str))
				break;
			else
				continue;
		}
		if(product.size()==0||i>=product.size()&&Number(product.get(product.size()-1))!=Number(str))
			return -1;
		else
		    return i ;
	}
	public int Number(String a){
	    int i=0;
	    while((i<a.length())&&(a.charAt(i)>='0')&&(a.charAt(i)<='9'))		
	        i++;
	    int n=Integer.parseInt(a.substring(0,i));
	    return n;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值