购物车的功能:
1.添加商品到购物车
2.商品的编号
3.修改购买商品的数量
4.结算购物车的价格
核心:
构造一个对象数组shopCar来接收商品对象
Goods[] shopCar = new Goods[100];
将商品属封装成一个对象
public class Goods {
int id;
String name;
double price;
int number;
}
---------------------------------------------------------------------------------------
package com.yuyang.creat;
import com.sun.org.apache.xpath.internal.objects.XNumber;
import sun.security.krb5.SCDynamicStoreConfig;
import java.util.Scanner;
public class ShopCar {
public static void main(String[] args) {
Goods[] shopCar = new Goods[100];
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("您输入错误,请从新输入");
}
}
}
public static void payGoods(Goods[] shopCar) {
//1.定义一个求和变量累加金额
queryGoods(shopCar);
double money=0;
//2.遍历购物车数组中所有商品,累加其数量*单价。
for (int i = 0; i < shopCar.length; i++) {
Goods g=shopCar[i];
//{g1,g2,............
if(g!=null){
money+=(g.price*g.number);
}else{
break;
}
}
System.out.println("订单总金额"+money);
}
public static void updateGoods(Goods[] shopCar,Scanner sc) {
while (true) {
System.out.println("请您输入商品的id(不重复)");
int id=sc.nextInt();
Goods g=getId(shopCar,id);
if(g==null){
System.out.println("没有购买该商品");
}else{
System.out.println("请您输入:"+g.name+"最新购买数量");
int buyNumber=sc.nextInt();
g.number=buyNumber;
System.out.println("修改完成!");
queryGoods(shopCar);
break;
}
}
//让用户输入要修改商品的的id,根据商品id查出商品并修改number
}
public static Goods getId(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;//找完了所有商品
}
public static void queryGoods(Goods[] shopCar) {
System.out.println("========查询购物车信息如下==========");
System.out.println("编号\t\t名称\t\t价格\t\t购买数量");
//shopCar(g1,g2,g3,.............)
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"+g.price+"\t\t"+g.number);
}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("请您输入商品的价格");
double price = sc.nextDouble();
System.out.println("请您输入购买商品的数量");
int number = sc.nextInt();
//把这些购买这些商品信息封装成一个商品对象
Goods g = new Goods();
g.id = id;
g.name = name;
g.number = number;
g.price = price;
//把商品对象添加到购物车里
//shopCar={null,null,...........}
for (int i = 0; i < shopCar.length; i++) {
if (shopCar[i] == null) {
//说明此位置没商品,把新商品添加到此处
shopCar[i]=g;
break;
}
}
System.out.println("您的商品"+g.name+"添加到购物车里了");
}
}
调试结果:
请你选择如下命令进行操作
添加商品到购物车:add
查询商品到购物车:query
修改商品购买数量:update
给算购买金额: pay
请您输入命令
add
请您输入购买商品的编号
1
请您输入商品的名称
手表
请您输入商品的价格
399.9
请您输入购买商品的数量
1
您的商品手表添加到购物车里了
请你选择如下命令进行操作
添加商品到购物车:add
查询商品到购物车:query
修改商品购买数量:update
给算购买金额: pay
请您输入命令
add
请您输入购买商品的编号
2
请您输入商品的名称
鼠标
请您输入商品的价格
129.3
请您输入购买商品的数量
1
您的商品鼠标添加到购物车里了
请你选择如下命令进行操作
添加商品到购物车:add
查询商品到购物车:query
修改商品购买数量:update
给算购买金额: pay
请您输入命令
add
请您输入购买商品的编号
3
请您输入商品的名称
键盘
请您输入商品的价格
389.4
请您输入购买商品的数量
1
您的商品键盘添加到购物车里了
请你选择如下命令进行操作
添加商品到购物车:add
查询商品到购物车:query
修改商品购买数量:update
给算购买金额: pay
请您输入命令
pay
========查询购物车信息如下==========
编号 名称 价格 购买数量
1 手表 399.9 1
2 鼠标 129.3 1
3 键盘 389.4 1
订单总金额918.6
请你选择如下命令进行操作
添加商品到购物车:add
查询商品到购物车:query
修改商品购买数量:update
给算购买金额: pay
请您输入命令
update
请您输入商品的id
3
请您输入:键盘最新购买数量
20
修改完成!
========查询购物车信息如下==========
编号 名称 价格 购买数量
1 手表 399.9 1
2 鼠标 129.3 1
3 键盘 389.4 20
请你选择如下命令进行操作
添加商品到购物车:add
查询商品到购物车:query
修改商品购买数量:update
给算购买金额: pay
请您输入命令
pay
========查询购物车信息如下==========
编号 名称 价格 购买数量
1 手表 399.9 1
2 鼠标 129.3 1
3 键盘 389.4 20
订单总金额8317.2
请你选择如下命令进行操作
添加商品到购物车:add
查询商品到购物车:query
修改商品购买数量:update
给算购买金额: pay
请您输入命令