作者:香柏林茶业 | 来源:互联网 | 2023-09-25 19:59
需求:对购物车的商品进行增加、查看、修改及统计金额功能的实现1.创建商品类定义商品的成员属性Stringname;intid;doubleprice;intbuyNumber;购买
需求:对购物车的商品进行增加、查看、修改及统计金额功能的实现
1.创建商品类
定义商品的成员属性
String name;
int id;
double price;
int buyNumber; //购买数量
2.定义购物车对象,并用数组个数表示购物车商品的数量
Goods2[] shopCar =new Goods2[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("没有该命令,请重新输入");
}
}
4.完善用户添加商品信息的功能
4.1录入用户输入购买商品的信息,
public static void addGoods(Goods2[] 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();
}
4.2将录入的商品信息进行封装,成为一个商品对象
Goods2 g= new Goods2();
g.id=id;
g.name=name;
g.buyNumber=buyNumber;
g.price=price;
4.3通过遍历把封装好的商品对象添加数组中
//把这个 商品对象添加到购物车数组中去
for (int i = 0; i ) {
if (shopCar[i] == null){
//说明没有商品添加
shopCar[i]=g;
break;//结束,因为商品已经录入成功
}
}
System.out.println("您的商品"+g.name+ "添加购物车成功");
}5.查询购物车中的商品信息 通过遍历
public static void queryGoods(Goods2[] shopCar){
System.out.println("==========查询购物车信息如下=====");
System.out.println("编号\t\t名称\t\t价格\t购买数量");
for (int i = 0; i ) {
Goods2 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;
}
}
}6.完善用户的修改信息的功能
6.1用户通过查找商品id,对商品信息进行修改,因此先定义一个商品id查找的方法
public static Goods2 getGoods2ById(Goods2[] shopCar,int id){
for (int i = 0; i ) {
Goods2 g =shopCar[i];
if (g !=null){
//判断这个id是不是我们要找的
if(g.id ==id){
return g;
}
}else {
return null;
}
}
return null;
}6.2通过循环判断用户输入的信息是否与存在的信息相符合,若符合,则进行修改
public static void updateGoods(Goods2[] shopCar ,Scanner sc){
//让用户输入要修改的商品id,根据id查询出要更改的商品对象
while (true){
System.out.println("请您输入要修改的商品id:");
int id = sc.nextInt();
Goods2 g=getGoods2ById(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;
}
}
}
7.对计算购买商品的总金额功能的完善
先定义一个变量,存储金额,然后通过遍历数组,计算出总金额。
public static void payGoods(Goods2[] shopCar){
queryGoods(shopCar);
//定义一个变量
double mOney=0;
for (int i = 0; i ) {
Goods2 g= shopCar[i];
if (g!=null){
money+=(g.price*g.buyNumber);
}else {
break;
}
}
System.out.println("订单总金额:"+money);
}