[Java][面向对象-练习]购物车案例

package wryyyyy;

public class goods
{
        int id;//商品编号
        String name;//商品名称
        double price;//商品价格
        int buynumber;//购买数量
}
package wryyyyy;

import java.util.Scanner;

public class shopcartest
{
    public  static void main(String[] args)
    {
        goods[] shopcar=new goods[100];//[null,null...]
        /*
        搭建操作架构
         */
        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);//输入,得到一个键盘扫描对象
        /*
        接收键盘输入,不用限定格式;
        后面用到键盘输入时,用sc.next();
        (调用sc对象的功能,等待用户输入数据)
        用String commmand=sc.next();接收数据
         */
            System.out.println("请输入您的命令:");
            String command=sc.next();//接收string类型输入
            switch (command)
            {
                case "add":
                    addgoods(shopcar,sc);
                    break;
                case "query":
                    querygoods(shopcar);
                    break;
                case "update":
                    updategoods(shopcar,sc);
                    break;
                case "pay":
                    pay(shopcar);
                    break;
                default:
                    System.out.println("没有该功能!");
            }
        }

    }

    private static void pay(goods[] shopcar)
    {
        querygoods(shopcar);
        double money=0;
        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);
    }
    private static void updategoods(goods[] shopcar,Scanner sc)
    {
        while (true) {
            System.out.println("请您输入要修改的商品id:");
            int id=sc.nextInt();
            goods g=getgoodsbyid(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 getgoodsbyid(goods[] shopcar,int id)//友元函数???
    {
        for (int i = 0; i < shopcar.length; i++)
        {
            goods g=shopcar[i];
            if (g!=null)
            {
                if(g.id==id)
                {
                    return g;
                }

            }
            else
            {
                return null;
            }
        }
        return null;
    }
    private static void querygoods(goods[] shopcar)
    {
        System.out.println("================查询购物车信息如下==================");
        System.out.println("编号\t\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);
            }
            else
            {
                break;
            }
        }
    }
    private static void addgoods(goods[] shopcar,Scanner sc)
    {
        /*
        让用户录入商品信息,创建商品对象封装商品信息;
        把商品对象加入到购物车数组中去;
        查询购物车信息,遍历购物车中商品对象;
         */
        //录入商品需要扫描器,但也把扫描器对象可以传过来(或者扫描器放在main外)
        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();
        //把商品信息封装到商品对象中
        goods g=new goods();
        g.id=id;
        g.name=name;
        g.buynumber=buynumber;
        g.price=price;
        //把这个商品添加到购物车数组中去;查询购物车信息,遍历购物车中商品对象;
        for (int i = 0; i < shopcar.length; i++)
        {
            if(shopcar[i]==null)
            {
                shopcar[i] = g;//对象变量里面存的是一块地址
                break;
            }
        }
        System.out.println("您的商品:"+g.name+"添加到购物车完成");
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Java面向对象购物车系统的代码示例: ```java import java.util.*; class Product { String name; double price; int quantity; public Product(String name, double price, int quantity) { this.name = name; this.price = price; this.quantity = quantity; } public double getTotalPrice() { return price * quantity; } } class ShoppingCart { List<Product> products; public ShoppingCart() { products = new ArrayList<>(); } public void addProduct(Product product) { products.add(product); } public void removeProduct(Product product) { products.remove(product); } public double getTotalPrice() { double totalPrice = 0; for (Product product : products) { totalPrice += product.getTotalPrice(); } return totalPrice; } } public class Main { public static void main(String[] args) { Product p1 = new Product("Book", 10.0, 2); Product p2 = new Product("Pen", 1.0, 5); Product p3 = new Product("Notebook", 3.0, 3); ShoppingCart cart = new ShoppingCart(); cart.addProduct(p1); cart.addProduct(p2); cart.addProduct(p3); System.out.println("Total price: " + cart.getTotalPrice()); } } ``` 在这个示例中,我们定义了两个类:`Product`和`ShoppingCart`。`Product`类用于表示一个商品,包括名称、价格数量。`ShoppingCart`类用于表示购物车,包括产品列表和一些操作方法,如添加和删除产品以及获取总价。 在主方法中,我们创建了三个产品,并将它们添加到购物车中。最后,我们打印出购物车中所有产品的总价。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值