话不多说,直接上代码~~~~~
public class Shopping{
public static void main(String[] args) {
//定义商品类,用于后期创建商品对象
//定义购物车对象,使用一个数组对象表示
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 command = sc.next();
switch (command){
case "add"://添加商品到购物车
addGoods(shopCar,sc);
break;
case "query"://查询购物车商品展示
queryGoods(shopCar);
break;
case "update"://修改商品购买数量
updateGoods(shopCar,sc);
break;
case "pay"://结算金额
payGoods(shopCar);
break;
default:
System.out.println("没有该功能");
}
}
}
private static void payGoods(Goods[] shopCar) {
queryGoods(shopCar);
//定义一个求和变量累加金额
double money = 0;
//遍历购物车数组中的全部商品对象,累加单价*数量
for (int i = 0; i < shopCar.length; i++) {
Goods g = shopCar[i];
if (g != null){
money+= (g.buyNumber*g.price);
}else {
break;
}
}
System.out.println("订单总金额:"+money);
}
private static void updateGoods(Goods[] shopCar,Scanner sc) {
//让用户输入要修改的商品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) {
if (g.id == id){
return g;}
} else {
return null;//都没有找到
}
}
return null;
}
private 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;
}
}
}
private static void addGoods(Goods[] shopCar,Scanner sc) {
//1,录入用户输入购买的信息
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+"添加到购物车完成!");
}
}