每次执行删除方法后,都不能返回主界面,而是报错
//具体业务方法
package com.unit7.service;
import java.util.ArrayList; import java.util.Scanner;
import com.unit7.Emp.Emp;
public class Service {
private ArrayList<Emp> aa=null; //定义集合构造参数
public Service() { //定义集合构造参数
aa=new ArrayList<Emp>();
}
public void addEmp(Emp emp) { //增加方法
aa.add(emp);
System.out.println("添加成功!");
System.out.println(aa.size());
System.out.println("现在仓库内的食品信息为:编号--------名字--------价格");
for(int i=0;i<aa.size();i++) {
Emp emp1=(Emp)aa.get(i);
System.out.println("现在仓库内的食品信息为:"+emp1.getNum()+"------"+emp1.getName()+"------"+emp1.getMoney()+"\n");
}
}
Scanner s=new Scanner(System.in);
public void findEmp(String num2) { //通过编号查询方法
if(aa.size()==0) {
System.out.println("该仓库为空!请重新选择!");
}else {
for(int i=0;i<aa.size();i++) {
Emp emp=(Emp)aa.get(i);
if(emp.getNum().equals(num2)) {
System.out.println("该食品的信息为:");
System.out.println("食品编号为:"+num2);
System.out.println("食品名字为:"+emp.getName());
System.out.println("食品价格为:"+emp.getMoney());
break;
}
}
}
}
public void setEmp(String num3) { //通过编号修改食品信息
if(aa.size()==0) {
System.out.println("该仓库为空!请重新选择!");
}else {
for(int i=0;i<aa.size();i++) {
Emp emp=(Emp)aa.get(i);
if(emp.getNum().equals(num3)) {
System.out.println("该食品的信息为:");
System.out.println("食品编号为:"+num3);
System.out.println("食品名字为:"+emp.getName());
System.out.println("食品价格为:"+emp.getMoney());
System.out.println("请输入要修改的食品编号:");
String num4=s.next();
emp.setNum(num4);
System.out.println("修改后的食品编号为:"+emp.getNum());
System.out.println("请输入要修改的食品名字:");
String name4=s.next();
emp.setName(name4);
System.out.println("修改后的食品编号为:"+emp.getName());
System.out.println("请输入要修改的食品价格:");
Double money4=s.nextDouble();
emp.setMoney(money4);
System.out.println("修改后的食品价格为:"+emp.getMoney());
System.out.println("现在仓库内的食品信息为:编号--------名字--------价格");
for(int i1=0;i<aa.size();i1++) {
Emp emp1=(Emp)aa.get(i1);
System.out.println("现在仓库内的食品信息为:"+emp1.getNum()+"------"+emp1.getName()+"------"+emp1.getMoney()+"\n");
}break;
}
}
}
}
public void delEmp(String delNum) { //删除方法
if(aa.size()==0) {
System.out.println("该仓库为空!请重新选择!");
}else {
for(int i=0;i<aa.size();i++) {
Emp emp=(Emp)aa.get(i);
if(emp.getNum().equals(delNum)) {
aa.remove(i);
System.out.println("现在仓库内的食品信息为:编号--------名字--------价格");
for(int i1=0;i<aa.size();i1++) {
Emp emp1=(Emp)aa.get(i1);
System.out.println("现在仓库内的食品信息为:"+emp1.getNum()+"------"+emp1.getName()+"------"+emp1.getMoney()+"\n");
}
break;
}
}
}
}
}
//简单的食品库存管理系统
package com.unit7.test;
import java.util.Scanner;
import com.unit7.Emp.Emp; import com.unit7.service.Service;
public class Test {
public static void main(String[] args)throws Exception {
Service shipin=new Service();
System.out.println("----------欢迎来到食品库存管理系统----------");
while(1==1) {
System.out.println("---------------主界面--------------");
System.out.println("-----------请按提示选择以下功能-----------");
System.out.println("-------------添加食品请按1-------------");
System.out.println("------------查找食品信息请按2------------");
System.out.println("------------修改食品价格请按3------------");
System.out.println("-------------删除食品请按4-------------");
System.out.println("--------------退出请按0--------------");
Scanner s=new Scanner(System.in);
int choose=s.nextInt();
if(choose==1) {
System.out.println("请输入食品编号:");
String num1=s.next();
System.out.println("请输入食品名字:");
String name1=s.next();
System.out.println("请输入食品价格:");
Double pice1=s.nextDouble();
Emp emp=new Emp(num1,name1,pice1);
shipin.addEmp(emp);
continue;
}else if(choose==2) {
System.out.println("请输入查询编号:");
String num2=s.next();
shipin.findEmp(num2);
continue;
}else if(choose==3) {
System.out.println("请输入要修改食品的编号:");
String num3=s.next();
shipin.setEmp(num3);
continue;
}else if(choose==4) {
System.out.println("请输入要删除的食品的编号:");
String delNum=s.next();
shipin.delEmp(delNum);
continue;
}else if(choose==0) {
break;
}else {
System.out.println("输入错误,请重新输入!");
continue;
}
}
}
}
----------欢迎来到食品库存管理系统---------- ---------------主界面-------------- -----------请按提示选择以下功能----------- -------------添加食品请按1------------- ------------查找食品信息请按2------------ ------------修改食品价格请按3------------ -------------删除食品请按4------------- --------------退出请按0-------------- 1 请输入食品编号: 001 请输入食品名字: 002 请输入食品价格: 003 添加成功! 1 现在仓库内的食品信息为:编号--------名字--------价格 现在仓库内的食品信息为:001------002------3.0
---------------主界面-------------- -----------请按提示选择以下功能----------- -------------添加食品请按1------------- ------------查找食品信息请按2------------ ------------修改食品价格请按3------------ -------------删除食品请按4------------- --------------退出请按0-------------- 1 请输入食品编号: 002 请输入食品名字: 002 请输入食品价格: 2 添加成功! 2 现在仓库内的食品信息为:编号--------名字--------价格 现在仓库内的食品信息为:001------002------3.0
现在仓库内的食品信息为:002------002------2.0
---------------主界面-------------- -----------请按提示选择以下功能----------- -------------添加食品请按1------------- ------------查找食品信息请按2------------ ------------修改食品价格请按3------------ -------------删除食品请按4------------- --------------退出请按0-------------- 1 请输入食品编号: 003 请输入食品名字: 003 请输入食品价格: 3 添加成功! 3 现在仓库内的食品信息为:编号--------名字--------价格 现在仓库内的食品信息为:001------002------3.0
现在仓库内的食品信息为:002------002------2.0
现在仓库内的食品信息为:003------003------3.0
---------------主界面-------------- -----------请按提示选择以下功能----------- -------------添加食品请按1------------- ------------查找食品信息请按2------------ ------------修改食品价格请按3------------ -------------删除食品请按4------------- --------------退出请按0-------------- 4 请输入要删除的食品的编号: 002 现在仓库内的食品信息为:编号--------名字--------价格 Exception in thread "main" 现在仓库内的食品信息为:001------002------3.0
现在仓库内的食品信息为:003------003------3.0
java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 2 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:372) at java.base/java.util.ArrayList.get(ArrayList.java:458) at com.unit7.service.Service.delEmp(Service.java:95) at com.unit7.test.Test.main(Test.java:53)