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); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!