简单模拟购物车稍加改进版

  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 }

 

posted @ 2024-01-19 21:16  小※兽  阅读(15)  评论(0)    收藏  举报