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 }