//可进行连续操作,可进行各类报错,并增加了清空货舱(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;
}
}
库存管理系统
最新推荐文章于 2023-10-30 09:03:10 发布