模拟购物车模块的功能,实现添加商品到购物车中去,同时实现修改购物车商品购买数量,结算商品价格功能。
分析 购物车中每一个商品都是一个对象,需要定义一个商品类。
购物车本身也是一个对象,可以用数组对象代表他
1、首先,我们需要创建一个Goods类
package com.xxf1.demo;public class Goods { private int id; private String name; private double price; private int buyNumber; public Goods() { } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getBuyNumber() { return buyNumber; } public void setBuyNumber(int buyNumber) { this.buyNumber = buyNumber; }}
2、在创建个ShopCarTest测试类
package com.xxf1.demo;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("修改商品购买数量:updata"); 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 "updata": //修改商品购买数量 updataGoods(shopcar, sc); break; case "pay": //结算购买商品的金额 pay(shopcar, sc); break; default: System.out.println("没有该功能"); } } } public static void pay(Goods[] shopcar, Scanner sc) { queryGoods(shopcar); //1、定义一个求和变量累加金额 double money = 0; //2、遍历购物车数组中的全部商品对象,累加单价*数量 for (int i = 0; i < shopcar.length; i++) { Goods g = shopcar[i]; if (g != null) { money += (g.getPrice() * g.getBuyNumber()); } else { break; } } System.out.println("订单总金额:" + money); } public static void updataGoods(Goods[] shopcar, Scanner sc) { //让用户输入要修改的id,根据id查询出要修改的商品对象 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.getName() + "商品最新购买数量:"); int buyNumber = sc.nextInt(); g.setBuyNumber(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) { //判断这个商品对象的id是否是我们要找的 if (g.getId() == id) { return g; } } else { return null;//找完全部存在的商品都没有找到! } } return null;//代表找完了100个商品都没有找到id一样的商品 } public static void queryGoods(Goods[] shopcar) { System.out.println("============查询购物车信息如下============"); System.out.println("编号tt名称ttt价格ttt购买数量"); for (int i = 0; i < shopcar.length; i++) { Goods g = shopcar[i]; if (g != null) { //展示这个商品 System.out.println(g.getId() + "tt" + g.getName() + "ttt" + g.getPrice() + "ttt" + g.getBuyNumber()); } 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.setId(id); g.setName(name); g.setBuyNumber(buyNumber); g.setPrice(price); //3、把商品的对象添加到数组当中 for (int i = 0; i < shopcar.length; i++) { if (shopcar[i] == null) { //说明此位置没有元素存入,我们把新买的商品添加到此处即可 shopcar[i] = g; break; } } System.out.println("您的商品:" + g.getName() + "添加购物车完成!"); }}
测试