package Demo;
import java.util.Scanner;
/*
如何完成添加商品的功能?
创建Goods类的对象代表的商品对象,封装用户输入的商品信息
把商品对象存入到表示购物车的数组中去
如何查看购物车信息?
遍历表示购物车的数组,每遍历到一个商品对象输出其信息展示
如何修改商品购买的数量?
根据用户输入的商品id查询出要修改的商品对象
如何进行商品订单总金额的计算?
定义求和变量,遍历购物车数组中的全部商品,累加其单价 * 购买数量
*/
public class ShopCarTest {
public static void main(String[] args) {
//1. 定义商品类,用于后期创建商品对象
//2. 定义购物车对象,使用一个数组对象表示。
Goods[] shopCar = new Goods[100];
//3. 搭建操作架构
while (true) {
System.out.println("请您选择如下命令操作:");
System.out.println("添加商品到购物车:add");
System.out.println("查询商品到购物车:query");
System.out.println("修改商品购买数量:update");
System.out.println("结算购买商品的金额:pay");
Scanner sc = new Scanner(System.in);
System.out.println("请您输入命令:");
String commmand = sc.next();
switch (commmand){
case "add":
//添加商品到购物车
addGoods(shopCar,sc);
break;
case "query":
//查询购物车商品展示
queryGoods(shopCar);
break;
case "update":
//修改商品的购买数量
updateGoods(shopCar,sc);
break;
case "pay":
//结算金额
pay(shopCar);
break;
default:
System.out.println("没有该功能!");
}
System.out.println("是否要退出购物车程序?(Y(y)/N(n))");
String flag = sc.next();
if(flag == "Y" || flag == "y")
System.exit(0);
}
}
//求购物车中商品的总金额
public static void pay(Goods[] shopCar) {
queryGoods(shopCar);
//定义一个求和变量累加金额
double money = 0;
for (int i = 0; i < shopCar.length; i++) {
Goods g = shopCar[i];
if(g != null){
money += (g.price * g.buyNumber);
}else {
break;
}
}
System.out.println("订单总金额:" + money);
}
public static void updateGoods(Goods[] shopCar,Scanner sc) {
//让用户输入要修改商品的id,根据id查询出要修改信息的对象
while (true) {
System.out.println("请您输入要修改的商品id:");
int id = sc.nextInt();
Goods g = getGoodsById(shopCar,id);
if(g == null){
System.out.println("对不起,没有购买商品!");
}else {
System.out.println("请您输入" + g.name + "商品的最新购买数量:");
int buyNumber = sc.nextInt();
g.buyNumber = buyNumber;
System.out.println("修改完成");
queryGoods(shopCar);
break;
}
}
}
public static Goods getGoodsById(Goods[] shopCar,int id){
for (int i = 0; i < shopCar.length; i++) {
Goods g = shopCar[i];
if(g != null){
//判断这个商品对象的id是否是我们要找的
if(g.id == id){
return g;
}
}else {
return null; //找完了全部存在的商品都没有找到
}
}
return null; //找完了100个商品都没有找到
}
//查询购物车中的商品对象的信息并展示
public static void queryGoods(Goods[] shopCar) {
System.out.println("===========查询购物车信息如下===========");
System.out.println("编号\t\t名称\t\t\t价格\t\t\t购买数量");
for (int i = 0; i < shopCar.length; i++) {
Goods g = shopCar[i];
if(g != null){
//展示这个商品对象
System.out.println(g.id + "\t\t" + g.name + "\t\t\t" + g.price + "\t\t\t" + g.buyNumber);
}else {
//遍历结束
break;
}
}
}
//商品添加到购物车的功能
public static void addGoods(Goods[] shopCar, Scanner sc) {
System.out.println("请您输入购买商品的编号(不重复):");
int id = sc.nextInt();
System.out.println("请您输入购买商品的名称:");
String name = sc.next();
System.out.println("请您输入购买商品的数量:");
int buyNumber = sc.nextInt();
System.out.println("请您输入购买商品的价格:");
double price = sc.nextDouble();
//2. 将购买的商品信息封装成一个对象
Goods g = new Goods();
g.id = id;
g.name = name;
g.buyNumber = buyNumber;
g.price = price;
//3. 把这个商品对象添加到购物车数组中
for (int i = 0; i < shopCar.length; i++) {
if(shopCar[i] == null){
shopCar[i] = g;
break; //结束:已经成功存入,不需要再次找位置了
}
}
System.out.println("您的商品" + g.name + "已经添加到购物车中!");
}
}
09-13
954

06-18
1747
