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 }