[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
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值