Fruit shop written by List (add, delete, modify, check)

1. Run partial screenshots
Insert picture description here2. Transaction layer code

package com.sky.fruits;

import com.sun.org.apache.xpath.internal.operations.Or;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Service {
    
    
    //初始化
    Scanner scanner = new Scanner(System.in);
    ArrayList<Fruits> fruits = new ArrayList<Fruits>();
    //构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
    {
    
    
        fruits.add(new Fruits(1001, "Apple", "red", 15.00, 100, 1));
        fruits.add(new Fruits(1002, "Banana", "yellow", 12.00, 100, 1));
        fruits.add(new Fruits(1003, "Orange", "green", 10.00, 100, 2));
    }

    /**
     * 查看所有的水果
     */
    public ArrayList<Fruits> getAllFruits() {
    
    

        return fruits;
    }

    /**
     * 添加水果
     */
    public boolean addFruits(Fruits fruit) {
    
    
        //判断水果编号是否重复
        //遍历list
        for (Fruits fruits1 : fruits) {
    
    
            //判断编号是否重复
            if (fruits1.getFruitsNum() == fruit.getFruitsNum()) {
    
    
                System.out.println("\t\t编号重复,请再次添加");
                return false;
            }
            //判断名字是否重复(不区分大小写)
            if (fruits1.getFruitsName().equalsIgnoreCase(fruit.getFruitsName())) {
    
    
                System.out.println("\t\t名字重复,请再次添加");
                return false;
            }
            //判断价格(1-100元)
            if (fruit.getFruitsPrice() < 1 || fruit.getFruitsPrice() > 100) {
    
    
                System.out.println("\t\t价格输入错误,范围(1-100)元");
                return false;
            }
            //判断库存(100-1000)
            if (fruit.getFruitsInventory() < 100 || fruit.getFruitsInventory() > 1000) {
    
    
                System.out.println("\t\t库存输入错误,范围(100-1000)件");
                return false;
            }
            //判断状态
            if (fruit.getFruitsStatus() != 1 && fruit.getFruitsStatus() != 2) {
    
    
                System.out.println("\t\t状态错误,请输入(1\2)");
                return false;
            }
        }
        //执行添加过程
        fruits.add(fruit);
        return true;
    }

    /**
     * 修改水果
     * 修改价格、库存、状态
     */
    public boolean updateFruits(String fruitsName) {
    
    
        //匹配list里面是否有这个水果名字
        int index = 0;//使用index定位需要修改水果的索引
        boolean isTrue = false;//能够匹配到为true ,不能为false;
        for (int i = 0; i < fruits.size(); i++) {
    
    
            //能匹配到,把索引赋值给index
            if (fruits.get(i).getFruitsName().equalsIgnoreCase(fruitsName)) {
    
    
                index = i;
                isTrue = true;
            }
        }
        //没有匹配到
        if (isTrue == false) {
    
    
            System.out.println("\t\t没有找到该水果,请重新输入!!!");
            return false;
        }
        /*这么写会有一个逻辑错误,在第一次没匹配到就返回false*/
//        for (Fruits fruit : fruits) {
    
    
//            //没有匹配到水果名字
//            if (!fruit.getFruitsName().equalsIgnoreCase(fruitsName)) {
    
    
//                System.out.println("\t\t没有找到该水果,请重新输入!!!");
//                return false;
//            }
//        }
        //水果名字匹配成功
        System.out.println("\t\t需要修改的水果的信息为:");
        System.out.println("\t编号:" + fruits.get(index).getFruitsNum() + "\t名字:" + fruits.get(index).getFruitsName() + "\t\t颜色:" + fruits.get(index).getFruitsColor() + "\t\t价格:" +
                fruits.get(index).getFruitsPrice() + " 元" + "\t\t库存:" + fruits.get(index).getFruitsInventory() + " 件" + "\t\t状态:" + (fruits.get(index).getFruitsStatus() == 1 ? "上架" : "下架"));
        //修改内容
        System.out.println("\t\t请输入要修改的选项(1.价格、2.库存、3.状态)");
        int num = scanner.nextInt();
        switch (num) {
    
    
            case 1:
                System.out.println("\t\t请输入要修改的价格:");
                fruits.get(index).setFruitsPrice(scanner.nextDouble());
                break;
            case 2:
                System.out.println("\t\t请输入要修改的库存:");
                fruits.get(index).setFruitsInventory(scanner.nextInt());
                break;
            case 3:
                System.out.println("\t\t请输入要修改的状态(1:上架,2:下架):");
                int status = scanner.nextInt();
                //输入状态错误,则修改失败
                if (status != 1 && status != 2) {
    
    
                    System.out.println("\t\t输入状态错误!!!");
                    return false;
                }
                fruits.get(index).setFruitsStatus(status);
                break;
            default:
                System.out.println("输入序号错误!!!");
                return false;
        }
        return true;
    }

    /**
     * 删除水果
     */
    public boolean removeFruits(String fruitsName) {
    
    
        //是否存在这个水果的标识
        boolean isTrue = false;
        int index = 0;
        for (int i = 0; i < fruits.size(); i++) {
    
    
            if (fruits.get(i).getFruitsName().equalsIgnoreCase(fruitsName)) {
    
    
                //匹配成功,则把索引下标赋值给index
                index = i;
                //存在这个水果
                isTrue = true;
            }
        }
        if (isTrue == false) {
    
    
            System.out.println("\t\t没有查找到该水果名称!!");
            return false;
        }
        fruits.remove(index);
        System.out.println(fruits);
        return true;
    }

}

Three, test code

package com.sky.fruits;

import java.util.ArrayList;
import java.util.Scanner;

public class Test {
    
    
    public static void main(String[] args) {
    
    
            update();
    }

    //查看所有水果
    public static void selectAllFruits() {
    
    
        Service service = new Service();
        ArrayList<Fruits> fruits = service.getAllFruits();
        for (Fruits fruit : fruits) {
    
    
            //使用三目运算符(?:)修改打印的水果状态(1:上架,2:下架)
            System.out.println("\t编号:" + fruit.getFruitsNum() + "\t名字:" + fruit.getFruitsName() + "\t\t颜色:" + fruit.getFruitsColor() + "\t\t价格:" +
                    fruit.getFruitsPrice() + " 元" + "\t\t库存:" + fruit.getFruitsInventory() + " 件" + "\t\t状态:" + (fruit.getFruitsStatus() == 1 ? "上架" : "下架"));
        }
    }

    //添加水果
    public static void addFruits() {
    
    
        Service service = new Service();
        Scanner scanner = new Scanner(System.in);
        Fruits fruits = new Fruits();

        //匹配输入是否是数字
        //Pattern pattern = Pattern.compile("^[0-9]*$");
        //boolean isMatch = pattern.matcher(scanner.nextInt() + "").matches();
        while (true) {
    
    
            System.out.println("\t请输入水果编号");
            fruits.setFruitsNum(scanner.nextInt());
            System.out.println("\t请输入水果名字");
            fruits.setFruitsName(scanner.next());
            System.out.println("\t请输入水果颜色:");
            fruits.setFruitsColor(scanner.next());
            System.out.println("\t请输入水果价格:");
            fruits.setFruitsPrice(scanner.nextDouble());
            System.out.println("\t请输入水果库存:");
            fruits.setFruitsInventory(scanner.nextInt());
            System.out.println("\t请输入水果状态:");
            fruits.setFruitsStatus(scanner.nextInt());
            boolean isStatus = service.addFruits(fruits);
            //正确添加返回true 跳出循环
            if (isStatus == true) {
    
    
                System.out.println("\t\t添加成功!!!");
                return;
            }
            System.out.println("添加错误,请在次添加");
        }
    }

    //修改水果内容
    public static void update() {
    
    
        Service service = new Service();
        Scanner scanner = new Scanner(System.in);
        selectAllFruits();
        while (true) {
    
    
            System.out.println("\t\t请输入水果名称:");
            String fruitsName = scanner.next();
            boolean isStatus = service.updateFruits(fruitsName);
            if (isStatus == true) {
    
    
                System.out.println("\t\t修改成功!");
                return;
            }
            if (isStatus == false) {
    
    
                System.out.println("\t\t修改失败");
            }
        }
    }

    //删除水果
    public static void delete(){
    
    
        Service service = new Service();
        Scanner scanner = new Scanner(System.in);
        System.out.println("\t\t请输入水果的名字:");
        String fruitsName = scanner.next();
        boolean isTrue = service.removeFruits(fruitsName);
        if (isTrue == true){
    
    
            System.out.println("删除成功!!!");
        }
        if (isTrue == false){
    
    
            System.out.println("删除失败!!!");
        }
    }
}

Four, entity class code

package com.sky.fruits;

/**
 * 编号
 * 名字
 * 颜色
 * 价格
 * 库存
 * 状态 (上架、下架)
 */
public class Fruits {
    
    
    private Integer fruitsNum;
    private String fruitsName;
    private String fruitsColor;
    private Double fruitsPrice;
    private Integer fruitsInventory;
    private Integer fruitsStatus;

    @Override
    public String toString() {
    
    
        return "Fruits{" +
                "fruitsNum=" + fruitsNum +
                ", fruitsName='" + fruitsName + '\'' +
                ", fruitsColor='" + fruitsColor + '\'' +
                ", fruitsPrice=" + fruitsPrice +
                ", fruitsInventory=" + fruitsInventory +
                ", fruitsStatus=" + fruitsStatus +
                '}';
    }

    public Fruits() {
    
    
    }

    public Fruits(Integer fruitsNum, String fruitsName, String fruitsColor, Double fruitsPrice, Integer fruitsInventory, Integer fruitsStatus) {
    
    
        this.fruitsNum = fruitsNum;
        this.fruitsName = fruitsName;
        this.fruitsColor = fruitsColor;
        this.fruitsPrice = fruitsPrice;
        this.fruitsInventory = fruitsInventory;
        this.fruitsStatus = fruitsStatus;
    }

    public Integer getFruitsNum() {
    
    
        return fruitsNum;
    }

    public void setFruitsNum(Integer fruitsNum) {
    
    
        this.fruitsNum = fruitsNum;
    }

    public String getFruitsName() {
    
    
        return fruitsName;
    }

    public void setFruitsName(String fruitsName) {
    
    
        this.fruitsName = fruitsName;
    }

    public String getFruitsColor() {
    
    
        return fruitsColor;
    }

    public void setFruitsColor(String fruitsColor) {
    
    
        this.fruitsColor = fruitsColor;
    }

    public Double getFruitsPrice() {
    
    
        return fruitsPrice;
    }

    public void setFruitsPrice(Double fruitsPrice) {
    
    
        this.fruitsPrice = fruitsPrice;
    }

    public Integer getFruitsInventory() {
    
    
        return fruitsInventory;
    }

    public void setFruitsInventory(Integer fruitsInventory) {
    
    
        this.fruitsInventory = fruitsInventory;
    }

    public Integer getFruitsStatus() {
    
    
        return fruitsStatus;
    }

    public void setFruitsStatus(Integer fruitsStatus) {
    
    
        this.fruitsStatus = fruitsStatus;
    }
}

Guess you like

Origin blog.csdn.net/zeduo2525/article/details/109244893