java小案例-购物车

需求:对购物车的商品进行增加、查看、修改及统计金额功能的实现

1.创建商品类

定义商品的成员属性

    String name;
    int id;
    double price;
    int buyNumber; //购买数量

2.定义购物车对象,并用数组个数表示购物车商品的数量

Goods2[] shopCar =new Goods2[100];/

3.利用死循环搭建构架,通过输入命令实现功能、

复制代码
       while (true) {
            System.out.println("请您选择如下操作命令:");
            System.out.println("添加商品到购物车:add");
            System.out.println("在购物车查询展示商品:query");
            System.out.println("修改商品购买数量:update");
            System.out.println("结算金额:pay");
            Scanner sc =new Scanner(System.in);
            System.out.println("请你输入命令:");
            String command = sc.next();
            switch (command){
                case "add":
                    //添加商品到购物车
                    addGoods(shopCar,sc);
                    break;

                case "query":
                    //查询购物车商品展示
                    queryGoods(shopCar);
                    break;

                case "update":
                    //修改商品购买数量
                    updateGoods(shopCar, sc);
                    break;

                case "pay":
                    //结算金额
                    payGoods(shopCar);
                    break;
                default:
                    System.out.println("没有该命令,请重新输入");
            }
        }
复制代码

4.完善用户添加商品信息的功能

4.1录入用户输入购买商品的信息,

复制代码
 public static void addGoods(Goods2[] shopCar ,Scanner sc){
        //录入用户输入的购买商品的信息
        System.out.println("请您输入购买商品的编号(不重复)");
        int id = sc.nextInt();
        System.out.println("请您输入购买商品的名称:");
        String name = sc.next();
        System.out.println("请您输入购买商品的数量:");
        int buyNumber= sc.nextInt();
        System.out.println("请您输入购买商品的价格:");
        double price= sc.nextDouble();
}
复制代码

4.2将录入的商品信息进行封装,成为一个商品对象

       Goods2 g= new Goods2();
        g.id=id;
        g.name=name;
        g.buyNumber=buyNumber;
        g.price=price;

4.3通过遍历把封装好的商品对象添加数组中

复制代码
 //把这个 商品对象添加到购物车数组中去
        for (int i = 0; i < shopCar.length; i++) {
            if (shopCar[i] == null){
                //说明没有商品添加
                shopCar[i]=g;
                break;//结束,因为商品已经录入成功

            }
        }
        System.out.println("您的商品"+g.name+ "添加购物车成功");

    }
复制代码

5.查询购物车中的商品信息  通过遍历

复制代码
public static void queryGoods(Goods2[] shopCar){
        System.out.println("==========查询购物车信息如下=====");
        System.out.println("编号\t\t名称\t\t价格\t购买数量");
        for (int i = 0; i < shopCar.length; i++) {
            Goods2 g =shopCar[i];
            if (g !=null){
                //展示这个商品对象
                System.out.println(g.id+"\t\t"+g.name+"\t\t\t"+g.price+"\t\t\t"+ g.buyNumber);
            }else {
                break;
            }
        }
    }
复制代码

6.完善用户的修改信息的功能

6.1用户通过查找商品id,对商品信息进行修改,因此先定义一个商品id查找的方法

复制代码
 public  static Goods2 getGoods2ById(Goods2[] shopCar,int id){
        for (int i = 0; i < shopCar.length; i++) {
            Goods2 g =shopCar[i];
            if (g !=null){
                //判断这个id是不是我们要找的
                if(g.id ==id){
                    return g;
                }
            }else {
                return null;
            }
        }
        return null;
    }
复制代码

6.2通过循环判断用户输入的信息是否与存在的信息相符合,若符合,则进行修改

复制代码
 public static void updateGoods(Goods2[] shopCar ,Scanner sc){
        //让用户输入要修改的商品id,根据id查询出要更改的商品对象
        while (true){
            System.out.println("请您输入要修改的商品id:");
            int id = sc.nextInt();
            Goods2 g=getGoods2ById(shopCar,id);
            if (g == null){
                //没有该商品信息
                System.out.println("对不起,没有购买商品");
            }else {
                //有商品信息,可以进行修改
                System.out.println("请您输入:"+g.name+"的最新购买数量");
                int buyNumber = sc.nextInt();
                g.buyNumber=buyNumber;
                System.out.println("修改完成!!");
                queryGoods(shopCar);
                break;
            }
        }

    }
复制代码

7.对计算购买商品的总金额功能的完善

先定义一个变量,存储金额,然后通过遍历数组,计算出总金额。

复制代码
 public static void payGoods(Goods2[] shopCar){
        queryGoods(shopCar);
        //定义一个变量
        double money =0;
        for (int i = 0; i < shopCar.length; i++) {
            Goods2 g= shopCar[i];
            if (g!=null){
                money+=(g.price*g.buyNumber);
            }else {
                break;
            }
        }
        System.out.println("订单总金额:"+money);
    }
复制代码

 

posted @   LINwenguan  阅读(229)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示