while (true) { System.out.println("------------------欢迎光顾小店------------------"); System.out.println("商品名称\t商品价格\t商品库存"); // 输出库存详细 for (int i = 0; i < kucun.size(); i++) { Commodity c = kucun.get(i);
// 客户录入购买商品名称 System.out.println("\r\n请输入你要购买的商品名称(退出购买-1)"); String name = sc.next();
// 当输入-1时退出购买程序 if (name.equals("-1")) { System.out.println("退出购买程序"); return; }
// 购买的商品价格 double value = 0; // 库存中的商品数量 int number1 = 0; // 存储该商品的索引 int index = 0; // 判断集合中是否有该商品 int count = 0; for (int i = 0; i < kucun.size(); i++) { Commodity c = kucun.get(i);
if (c.getName().equals(name)) { // 将该商品的价钱存储起来 value = c.getValue(); // 将该商品的数量存储起来 number1 = c.getNumber(); // 将该商品的索引存储起来 index = i; // 找到对应的商品没比要运行多余的代码,退出循环 break; } else { // 统计整个集合里是否全没有该商品 count++; } } // 没有该商品,给出提示,跳出此次循环,重新录入 if (count == kucun.size()) { System.out.println("你输入的商品不存在"); continue; }
// 客户输入购买的数量 System.out.println("请输入购买的数量"); int number = sc.nextInt();
// 判断客户录入的数量是否合法 if (number <= 0 || number > number1) { System.out.println("你输入的数量有误!"); continue; }
// 将库存的减去购买的了 Commodity m = kucun.get(index); m.setNumber(m.getNumber() - number);
// 统计变量, int count2 = 0; for (int i = 0; i < gouwuch.size(); i++) { Commodity cc = gouwuch.get(i); // 如果已经有过该商品,就在原有的基础上加上本次够买的 if (name.equals(cc.getName())) { cc.setNumber(cc.getNumber() + number); } else { // 如果该商品不存在就加1 count2++; } } // 如果集合中都没有该商品,就将该商品加入集合 if (count2 == gouwuch.size()) { // 将够买的商品信息放入对象 Commodity c = new Commodity(name, value, number); // 将对象放入集合 gouwuch.add(c); } // 加入后给出提示 System.out.println("已将该商品放入购物车中"); break;
// 创建购物车集合,存储每次购买的商品 ArrayList<Commodity> gouwuch = new ArrayList<Commodity>(); // 将路径封装成字符串 String site = "gouwuch.txt"; // 调用读入方法 reader(gouwuch, site);
if (gouwuch.size() == 0) { System.out.println("购物车中没有商品,不需要支付"); return; }
// 展示购物车商品 System.out.println("商品名称\t商品价格\t商品数量"); for (int i = 0; i < gouwuch.size(); i++) { Commodity c = gouwuch.get(i); System.out.println(c.getName() + "\t" + c.getValue() + "\t" + c.getNumber()); }
// 获得本次购买商品需要支付的金额 double sum = 0; for (int i = 0; i < gouwuch.size(); i++) { Commodity c = gouwuch.get(i); // 将每个元素的价钱和数量相乘 sum += c.getValue() * c.getNumber(); }
while (true) { // 你需要支付的金额 System.out.println("\r\n你需要支付" + sum + "元钱"); // 你正在支付的金额 System.out.println("请输入你要支付的金额"); double jinEr = sc.nextDouble();
// 展示购物车商品 System.out.println("商品名称\t商品价格\t商品数量"); for (int i = 0; i < gouwuch.size(); i++) { Commodity c = gouwuch.get(i); System.out.println(c.getName() + "\t" + c.getValue() + "\t" + c.getNumber()); }
String name = null; int number = 0; while (true) { System.out.println("\r\n请输入你要退回的商品"); name = sc.next();
// 用来存储需要退货的索引 int index = -1; // 存储该元素的数量 int numberConut = 0; // 判断该商品是否存在 int count = 0; // 判断 for (int i = 0; i < gouwuch.size(); i++) { Commodity c = gouwuch.get(i);
if (c.getName().equals(name)) { index = i; numberConut = c.getNumber(); break; } else { count++; } } if (count == gouwuch.size()) { System.out.println("购物车中没有该商品"); continue; }
System.out.println("请输入你要退回的数量"); number = sc.nextInt();
// 如果要退的数量大于本有的 if (number > numberConut) { System.out.println("你的购物车中没有这么多商品"); continue;
// 如果要退的数量小与本有的,将本有的减去要退的 } else if (number < numberConut) { Commodity cc = gouwuch.get(index); cc.setNumber(cc.getNumber() - number); System.out.println("已经退还" + number + "个" + name);
// 退出while循环去执行写出语句 break; } } // while
//退回的商品,加到库存中 for (int i = 0; i < kucun.size(); i++) { Commodity c = kucun.get(i); if(c.getName().equals(name)){ c.setNumber(c.getNumber()+number); } }