利用JAVA实现购物车简单案例

11 篇文章 0 订阅

需求:模拟购物车的功能。
1、定义一个商品类:Article(属性:名称、价格)
2、定义一个数组容器存储商品对象的,代表购物车对象。

创建Article类(商品类类)
public class Article {
String name;
double price;
int buyNumber; // 购买数量
}

public class Test {
    public static void main(String[] args) {
        // a、定义一个数组存储商品对象的,代表购物车对象。
        Article[] shopCar = new Article[10];

        // b、让用户选择功能
        while (true) {
            Scanner sc = new Scanner(System.in);
            System.out.println("添加商品:add");
            System.out.println("查看商品:query");
            System.out.println("修改数量:update");
            System.out.println("结算价格:pay");
            System.out.println("请您选择要操作的功能:");
            String command = sc.next();
            switch (command) {
                case "add":
                    // 把商品加入到购物车中去。
                    addArticle(shopCar);
                    break;
                case "query":
                    // 查看购物车中的商品信息
                    queryArticle(shopCar);
                    break;
                case "update":
                    updateArticle(shopCar);
                    break;
                case "pay":
                    calcPayMoney(shopCar);
                    break;
                default:
                    System.out.println("当前命令输入有误!");
            }
        }
    }

    private static void calcPayMoney(Article[] shopCar) {
        queryArticle(shopCar);
        // 准备一个double类型的变量统计总金额
        double money = 0;
        for (int i = 0; i < shopCar.length; i++) {
            Article a = shopCar[i];
            if(a != null){
                money += (a.price * a.buyNumber);
            }else {
                break;
            }
        }
        System.out.println("本次商品购买的总价为:" + money);
    }

    public static void updateArticle(Article[] shopCar) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请您输入要修改数量的商品名称:");
            String name = sc.next();
            Article a = getArticleByName(name , shopCar );
            if(a != null){
                System.out.println("请您输入修改后购买的数量:");
                int buyNumber = sc.nextInt();
                a.buyNumber = buyNumber;
                System.out.println("该商品的购买数量修改了!");
                break;
            }else {
                System.out.println("购物车中没有该商品信息");
            }
        }
    }

    public static Article getArticleByName(String name , Article[] shopCar){
        for (int i = 0; i < shopCar.length; i++) {
            Article a = shopCar[i];
            if(a != null && a.name.equals(name) ){
                return a;
            }
        }
        return null;
    }

    public static void queryArticle(Article[] shopCar) {
        System.out.println("商品名称\t商品价格\t商品的购买数量");
        // 展示购物车的商品信息
        for (int i = 0; i < shopCar.length; i++) {
            Article a = shopCar[i];
            if(a != null){
                System.out.println(a.name +"\t" + a.price + "\t" + a.buyNumber);
            }else {
                return;
            }
        }
    }

    public static void addArticle(Article[] shopCar) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入商品的名称:");
        String name = sc.next();
        System.out.println("请您输入商品的价格:");
        double price = sc.nextDouble();
        System.out.println("请您输入购买商品的数量:");
        int buyNumber = sc.nextInt();

        // 创建一个商品对象,封装这些数据
        Article a = new Article();
        a.name = name;
        a.price = price;
        a.buyNumber = buyNumber;

        // 遍历这个购物车数组对象,看哪个位置是null,如果是null ,把商品对象添加进去
        for (int i = 0; i < shopCar.length; i++) {
            if(shopCar[i] == null){
                shopCar[i] = a; // 把商品对象添加到这个位置了
                break;
            }
        }
        System.out.println("添加成功!");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为前端工程师滴小小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值