java课堂案例,购物车的增删改查

1、javaban

package com.lwc.Good;

public class Goods {
    // 一般都会给商品添加一个id信息,代表的是这个商品的一个编号
    private String id; // 编号
    private String image; // 商品图片
    private String name; // 商品的名字
    private String remark; // 备注信息
    private double originalPrice;// 原价
    private double price; // 售价

    public Goods() {
    }

    public Goods(String id, String image, String name, String remark, double originalPrice, double price) {
        this.id = id;
        this.image = image;
        this.name = name;
        this.remark = remark;
        this.originalPrice = originalPrice;
        this.price = price;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public double getOriginalPrice() {
        return originalPrice;
    }

    public void setOriginalPrice(double originalPrice) {
        this.originalPrice = originalPrice;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}

2、Test

package com.lwc.Good;

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

public class GoodsSystem {
    // 我们需要先创建一个集合,用于存放整个系统的商品信息
    public static void main(String[] args) {
    // 我们需要先创建一个集合,用于存放整个系统的商品信息
        ArrayList<Goods> list = new ArrayList<>();
        Goods goods1 =new Goods("001","1.jpg","麻辣龙虾","特辣",10,5);
        Goods goods2 = new Goods("002", "2.jpg", "麻辣香锅", "特辣", 30, 15);
        Goods goods3 = new Goods("003", "3.jpg", "麻婆豆腐", "特辣", 14, 7.5);
        Goods goods4 = new Goods("004", "4.jpg", "极香烤翅", "特辣", 14, 7.5);
        list.add(goods1);
        list.add(goods2);
        list.add(goods3);
        list.add(goods4);
        System.out.println("----------购物车-----------");

        while (true) {
            // 我们就需要搭建系统的功能
            System.out.println("1. 上架商品信息 ");
            System.out.println("2. 下架商品信息 ");
            System.out.println("3. 修改商品信息 ");
            System.out.println("4. 查看所有商品信息 ");
            System.out.println("5. 搜索商品信息 ");
            System.out.println("6. 退出系统 ");
            System.out.println("请选择功能");
            Scanner sc = new Scanner(System.in);
            String choose = sc.next();
            switch (choose) {
                case "1":
                    addGoods(list);
                    break;
                case "2":
                    removeGoods(list);
                    break;
                case "3":
                    // System.out.println("修改商品信息...");
                    updateGoods(list);
                    break;
                case "4":
                    findAllGoods(list);
                    break;
                case "5":
                    //  System.out.println("搜索商品信息...");
                    searchGoods(list);
                    break;
                case "6":
                    System.out.println("谢谢使用,欢迎下次光临");
                    return;
                default:
                    System.out.println("您输入的操作有误,请重新输入.");
                    break;
            }
        }
    }
    /*
    * 这个函数是一个搜索商品的功能。首先判断商品列表是否为空,
    * 如果为空则输出提示信息"暂无商品数据,请先添加后查询";
    * 如果不为空,则通过输入的方式获取要搜索的商品名称。
    * 然后调用findName函数来查找列表中是否有名称为该值的商品。
    * 如果找到了,则按照规定的格式输出该商品的id、图片、名称、原价、
    * 售价和备注信息;如果没有找到,则输出"没有搜索到该商品"*/
    private static void searchGoods(ArrayList<Goods> list) {
        if (list.size()==0){
            System.out.println("暂无商品数据,请先添加后查询");
        }else {
            Scanner sc =  new Scanner(System.in);
            String name = sc.next();
            if (findName(list,name)){//findName为true
                System.out.println("id\t\t商品图片\t\t商品名字\t\t原价格\t\t售价\t\t备注信息");
                for (int i = 0; i < list.size(); i++) {
                    Goods goods = list.get(i);
                    if (goods.getName().equals(name)) {
                        System.out.println(goods.getId() + "\t\t" + goods.getImage() + "\t\t" + goods.getName() + "\t\t"
                                + goods.getOriginalPrice() + "元\t\t" + goods.getPrice() + "元\t" + goods.getRemark());
                    }
                }
            }else {//findNam为false
                System.out.println("没有搜索到该商品");
            }
        }
    }

    /*
        查看所有商品信息
            1.我们可以先判断集合中是否有数据,如果没有数据就提示用户添加数据
            2.先输出一个表头信息
            3.遍历集合,把数据展示到控制台
     */
    private static void findAllGoods(ArrayList<Goods> list) {
        if (list.size() == 0) {
            System.out.println("暂无数据,请先添加后查询");
        } else {
            System.out.println("id\t\t商品图片\t\t商品名字\t\t原价格\t\t售价\t\t备注信息");
            for (int i = 0; i < list.size(); i++) {
                Goods goods = list.get(i);
                System.out.println(goods.getId() + "\t\t" + goods.getImage() + "\t\t" + goods.getName() + "\t\t"
                        + goods.getOriginalPrice() + "元\t\t" + goods.getPrice() + "元\t" + goods.getRemark());
            }
        }
    }
    /*这个函数是一个用于更新商品信息的函数。首先,它会根据用户输入的id查找商品在列表中的位置。
    如果找不到该id,函数会输出错误信息。如果找到了该商品,函数会进入一个循环,
    在循环中根据用户输入的选择来更新商品的不同字段,包括图片、商品名称、原价、售价和备注信息。
    当用户选择退出修改时,函数会返回。如果用户输入了无效的选项,
    函数会输出错误信息并继续循环。最后,函数会输出修改成功的信息。*/
    private static void updateGoods(ArrayList<Goods> list) {
        System.out.println("请输入您要修改的商品id");
        Scanner sc = new Scanner(System.in);
        String id = sc.next();
        //判断id是否存在
        int index = findIndex(list, id);
        if (index == -1) {
            System.out.println("您输入的id不存在,请重新输入");
        } else {
            Goods goods = list.get(index);

            while (true) {
                System.out.println("请输入要修改的字段:1.修改图片 2.修改商品名字 " +
                        "3.修改原价 4.修改售价 5.修改备注信息 6.退出修改");
                int type = sc.nextInt();
                switch (type) {
                    case 1:
                        System.out.println("请输入新的图片");
                        String image = sc.next();
                        goods.setImage(image);
                        break;
                    case 2:
                        System.out.println("请输入新的商品名称");
                        String name = sc.next();
                        goods.setId(name);
                        break;
                    case 3:
                        System.out.println("请输入新的商品价格");
                        double originalPrice = sc.nextDouble();
                        goods.setOriginalPrice(originalPrice);
                        break;
                    case 4:
                        System.out.println("请输入新的售价");
                        double price = sc.nextDouble();
                        goods.setPrice(price);
                        break;
                    case 5:
                        System.out.println("请输入新的备注信息");
                        String remark = sc.next();
                        goods.setRemark(remark);
                        break;
                    case 6:
                        return;
                    default:
                        System.out.println("操作有误");
                        continue;
                }
                System.out.println("修改成功");
            }
        }
    }
    /*这个函数是一个用于下架商品的Java函数。它接收一个ArrayList类型的参数list,表示商品列表。
    函数通过输入scanner获取用户输入的商品id,然后调用findIndex函数查找该商品在列表中的索引。
    如果索引为-1,表示商品不存在,则输出错误信息;否则,从列表中删除该商品,并输出删除成功信息*/
    private static void removeGoods(ArrayList<Goods> list) {
        Scanner sc= new Scanner(System.in);
        System.out.println("请输入你要下架的商品id");
        String id = sc.next();
        //先判断id是否存在
        int index = findIndex(list, id);
        if (index==-1){
            System.out.println("您输入的id不存在,请重新输入");
        }else {
            list.remove(index);
            System.out.println("删除商品成功");
        }
    }

    /*
           添加的话
               1.一般都是录入商品信息
               2.把商品信息封装到一个商品对象中
               3.再把对象添加到集合中
               这个函数是一个静态函数,用于将商品信息添加到一个ArrayList集合中。
               函数通过输入方式获取商品的编号、图片、名称、备注、原价格和打折后的价格,
               并将这些信息封装成一个Goods对象,然后将该对象添加到传入的ArrayList集合中。
               最后打印出"添加商品成功"的信息
    */
    private static void addGoods(ArrayList<Goods> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入商品的编号");
        String id = sc.next();
        System.out.println("请输入商品图片");
        String image = sc.next();
        System.out.println("请输入商品的名字");
        String name = sc.next();
        System.out.println("请输入备注信息");
        String remark = sc.next();
        System.out.println("请输入一个商品的原价格");
        double originalPrice = sc.nextDouble();
        System.out.println("请输入打折之后的价格");
        double price = sc.nextDouble();
        Goods goods = new Goods(id,image,name,remark,originalPrice,price);
        list.add(goods);
        System.out.println("添加商品成功");
    }
     /*
        定义一个方法:
                根据我们输入的商品id去查询对应的商品,如果找到就返回这个
                商品的索引
     */
    private static int findIndex(ArrayList<Goods> list,String id){
        for (int i = 0; i < list.size(); i++) {
            Goods goods = list.get(i);
            if (goods.getId().equals(id)){
                return i;
            }
        }
        return -1;
    }
    //定义方法,根据商品名称去查询对应商品
    private static boolean findName(ArrayList<Goods> list,String name){
        for (int i = 0; i < list.size(); i++) {
           Goods goods = list.get(i);
            if (goods.getName().contains(name)) {
                return true;
            }
        }
        return false;
    }
}

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值