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