简单模拟购物车
1 public class Goods { 2 int id; 3 String name; 4 double price; 5 int buyNumber; 6 } 7 8 9 public class ShopCar { 10 public static void main(String[] args) { 11 12 Goods[] shopCar = new Goods[100]; 13 14 while (true) { 15 System.out.println("请输入以下命令进行操作"); 16 System.out.println("添加商品到购物车:add"); 17 System.out.println("查询购物车商品:query"); 18 System.out.println("修改商品购买数量:update"); 19 System.out.println("结算购买商品的金额:pay"); 20 21 Scanner sc = new Scanner(System.in); 22 System.out.println("请输入命令"); 23 String command = sc.next(); 24 25 switch (command){ 26 case "add": 27 addGoods(shopCar, sc); 28 break; 29 case "query": 30 queryGoods(shopCar); 31 break; 32 case "update": 33 updateGoods(shopCar, sc); 34 break; 35 case "pay": 36 payGoods(shopCar); 37 break; 38 default: 39 System.out.println("命令错误请从新输入"); 40 } 41 } 42 } 43 44 private static void payGoods(Goods[] shopCar) { 45 // 先查出购买的索引商品 46 queryGoods(shopCar); 47 // 结算,定义一个总金额 48 double money = 0.0; 49 // 便利所有商品求和 50 for (int i = 0; i < shopCar.length; i++) { 51 Goods g = shopCar[i]; 52 if (g != null){ 53 money += (g.price * g.buyNumber); 54 }else { 55 System.out.println("没有想要购买的商品"); 56 break; 57 } 58 } 59 System.out.println("商品总金额:" + money); 60 } 61 62 private static void updateGoods(Goods[] shopCar, Scanner sc) { 63 // 修改商品信息 64 while (true) { 65 System.out.println("请输入需要修改的商品id:"); 66 int id = sc.nextInt(); 67 Goods g = getGoodsId(shopCar, id); 68 if (g == null){ 69 System.out.println("该商品不存在请确认后在此输入"); 70 }else { 71 // 商品存在进行修改 72 System.out.println("请输入:" + g.name + "商品购买数量"); 73 int goodsNumber = sc.nextInt(); 74 System.out.println("请输入:" + g.name + "商品价格"); 75 double goodsPrice = sc.nextDouble(); 76 g.buyNumber = goodsNumber; 77 g.price = goodsPrice; 78 System.out.println("商品修改完成"); 79 queryGoods(shopCar); 80 break; 81 } 82 } 83 } 84 private static Goods getGoodsId(Goods[] shopCar, int id) { 85 // 获取商品id进行传输 86 for (int i = 0; i < shopCar.length; i++) { 87 Goods g = shopCar[i]; 88 if (g != null){ 89 if (g.id == id){ 90 return g; 91 } 92 }else { 93 return null; 94 } 95 } 96 return null; 97 } 98 99 private static void queryGoods(Goods[] shopCar) { 100 101 System.out.println("=========查询购物车========="); 102 System.out.println("商品编号\t\t商品名称\t\t商品数量\t\t商品价格"); 103 104 for (int i = 0; i < shopCar.length; i++) { 105 Goods g = shopCar[i]; 106 if (g != null){ 107 System.out.println(g.id + "\t\t\t" + g.name + "\t\t\t" + g.buyNumber + "\t\t\t" + g.price); 108 } 109 } 110 } 111 112 private static void addGoods(Goods[] shopCar, Scanner sc) { 113 // 录入购买信息 114 System.out.println("请输入购买商品编号(不重复):"); 115 int id = sc.nextInt(); 116 System.out.println("请输入购买商品的名称:"); 117 String name = sc.next(); 118 System.out.println("请输入购买商品的数量:"); 119 int buyNumber = sc.nextInt(); 120 System.out.println("请输入购买商品的价格:"); 121 double price = sc.nextDouble(); 122 123 // 购买商品信息封装成对象 124 Goods g = new Goods(); 125 g.id = id; 126 g.name = name; 127 g.buyNumber = buyNumber; 128 g.price = price; 129 130 // 将对象添加到购物车数组中 131 for (int i = 0; i < shopCar.length; i++) { 132 if (shopCar[i] == null){ 133 // 说明没有元素,将数据添加进去 134 shopCar[i] = g; 135 break; 136 } 137 } 138 System.out.println("商品:" + g.name + "\t 添加购物车成功!"); 139 } 140 }