跟视频学习,自己做的一个食品管理系统,删除功能貌似不管用
/*实现一个食品管理系统,为啥我的删除功能只能是从集合类中从第一个开始删除,却不能根据自己需要进行删除*/import java.util.*;
class Food{
private String num;
private String name;
private int price;
public void setNum(String num){
this.num=num;
}
public String getNum(){
return this.num;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setPrice(int price){
this.price=price;
}
public int getPrice(){
return this.price;
}
}
class Function{
ArrayList arrList=new ArrayList();
public void add(String num,String name,int price,Food foo1){//1.添加食品
Food foo=new Food();
foo.setName(name);
foo.setNum(num);
foo.setPrice(price);
arrList.add(foo);
System.out.println("*************添加食品成功*************");
}
public void getInformation(String i,Food foo){//2.查询食品信息
int j;
for(j=0;j<arrList.size();j++){
Food foo1=(Food)arrList.get(j);
if(foo1.getNum().equals(i)){
System.out.println("*************查询信息成功*************");
System.out.println("产品编号:"+foo1.getNum());
System.out.println("产品名称:"+foo1.getName());
System.out.println("产品价格:"+foo1.getPrice());
break;
}
}
if(j==arrList.size())
System.out.println("查无此产品。");
}
public void updatePrice(String i,int price,Food foo){//3.修改食品价格
for(int j=0;j<arrList.size();j++){
Food foo1=(Food)arrList.get(j);
if(foo1.getNum().equals(i)){
foo1.setPrice(price);
System.out.println("**************修改产品价格成功*************");
System.out.println("产品编号:"+foo1.getNum());
System.out.println("产品名称:"+foo1.getName());
System.out.println("产品价格:"+foo1.getPrice());
return;
}
}
System.out.println("查无此产品。");
}
public void delete(String i,Food foo){//4.删除食品
int j;
if(arrList.size()==0){
System.out.println("仓库中已经没有产品了");
}
for(j=0;j<arrList.size();j++){
Food foo1=(Food)arrList.get(j);
if(foo1.getNum().equals(i)){
arrList.remove(j);
System.out.println("**************删除成功**************");
break;
}
}
if((j==arrList.size()&&(arrList.size()!=0))){
System.out.println("删除失败,仓库中没有这件产品");
}
}
}
public class Test4_2 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
Function func=new Function();
Food foo=new Food();
while(true){
System.out.println("*******请按以下提示选择功能*******");
System.out.println("添加食品请按1");
System.out.println("查找食品信息请按2");
System.out.println("修改食品价格请按3");
System.out.println("删除食品请按4");
System.out.println("添加食品请按0");
String choice=in.next();
if(choice.equals("1")){
System.out.print("请输入食品编号:");
String num=in.next();
System.out.print("请输入食品名称:");
String name=in.next();
System.out.print("请输入食品价格:");
int price=in.nextInt();
func.add(num, name, price, foo);
System.out.println(func.arrList.size());
}else if(choice.equals("2")){
System.out.print("请输入食品编号:");
String i=in.next();
func.getInformation(i, foo);
}else if(choice.equals("3")){
System.out.print("请输入食品编号:");
String i=in.next();
System.out.print("请输入食品价格:");
int price=in.nextInt();
func.updatePrice(i,price,foo);
}else if(choice.equals("4")){
System.out.print("请输入食品编号:");
String i=in.next();
func.delete(i, foo);
}else if(choice.equals("0")){
System.out.println("退出成功,感谢您的使用。。。");
System.exit(0);
}
else{
System.out.println("输入有误,请重新输入");
}
}
}
}
本帖最后由 海马濑人 于 2018-1-31 19:52 编辑
是可以删除的,只不过判断删除失败的条件有个小小的问题,问题代码如下
if((j==arrList.size()&&(arrList.size()!=0))){
System.out.println("删除失败,仓库中没有这件产品");
}
建议:能查到并且删除成功后输出 删除成功的提示我调试过了确实删除了,
删除之后的对象没有了,如果删除失败那么还能在集合中查到
改进之处: 增删查改 都会需要查找,可以单独写个查询的方法
页:
[1]