面向对象编程——模拟购物车模块

package com.heima.createobiect;

import java.util.Scanner;

//购物车模块模拟
public class ShopCarTest {
                public static void main(String[] args) {

                    //1.定义商品类,用于后期创建商品对象
                    //2.定义购物车对象,使用一个数组对象表示
                    Goods[] shopCar = new Goods[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("没有该功能! ");
                        }
                    }


                }

    public static void payGoods(Goods[] shopCar) {
                    queryGoods(shopCar);
            //1.定义一个求和变量累加金额
        double money = 0;
        //2.遍历购物车数组中的全部商品对象,累加单价*数量
        for (int i = 0; i < shopCar.length; i++) {
            Goods g = shopCar[i];
            if( g != null){
                money += (g.price * g.buyNumber);
            }else{
                break;
            }

        }
        System.out.println("订单总金额: " + money);
    }

    public  static void updateGoods(Goods[] shopCar , Scanner sc) {
                    //让用户输入要修改商品的id,根据id查询要修改的商品对象
        while (true) {
            System.out.println("请您输入要修改的商品id :");
            int id = sc.nextInt();
            Goods g = getGoodsBuyId(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;
            }
        }

    }

    public static  Goods getGoodsBuyId(Goods[] shopCar , int id){
        for (int i = 0; i < shopCar.length; i++) {
            Goods g = shopCar[i];
            if(g != null){
                //判断这个商品对象的id是否是我们要找的
                if (g.id == id) {
                    return g;
                }
            }else{
                return null;//找完了全部的商品,没有找到
            }
        }
        return null;//找完购物车全部商品,没有这个商品
    }


    //查询购物车中的商品对象信息并展示出来

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


    }




    //完成商品添加到购物车的功能
    public  static void addGoods(Goods[] shopCar , Scanner sc) {
                    //1.录入用户输入的购买商品的信息
        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();

        //2.把这个购买商品的信息封装成一个商品对象
        Goods g = new Goods();
        g.id = id;
        g.name = name;
        g.buyNumber = buyNumber;
        g.price = price;

        //3.把这个商品对象添加到购物车数组中去
        for (int i = 0; i < shopCar.length; i++) {
            if(shopCar[i] == null){
                //说明此位置没有商品存入,把我们新买的商品添加放到此处即可
                shopCar[i] = g;
                break;//结束,因为商品已经成功存入了,不需要继续找位置了
            }
        }
        System.out.println("您的商品: " + g.name + "添加到购物车完成!");
    }
}

这个我看发截图好像大家或许看的有点困难,然后整了一个小视频(声音与视频好像有点不同步),若有错误欢迎大家指正。

面向对象编程——一个购物车模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值