Java面向对象案例——购物车

需求:

模拟购物车的功能,需要实现添加物品到购物车中去,同时需要提供修改商品的购买数量,结算商品价格功能。

分析:

1.购物车中每个商品都是一个对象,需要定义一个商品类

public class goods {
	int id;//编号
	String  name;//名称
	double price;//价格
	int buyNumber;//购买数量
}

2.购物车本身也是一个对象,可以用数组代表它。

我们先假设购物车的容量是100;
则定义数组 goods[] shopCar = new goods[100]

3.完成界面架构,让用户选择操作的功能

添加商品到购物车
	addGoods(shopCar,sc);
查询购物车中的商品
	queryGoods(shopCar);
修改商品的购买数量
	updateGoods(shopCar,sc);
结算购买商品的金额
	payGoods(shopCar);

实战代码

package oop;

import java.util.Scanner;

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 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("没有该项操作");
				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 buyNumber = sc.nextInt();
		
		//将商品信息封装成一个商品对象goods
		goods s = new goods();
		s.id = id;
		s.name = name;
		s.price = price;
		s.buyNumber = buyNumber;
		
		//将商品对象添加至购物车
		for(int i = 0; i < shopCar.length; i++)
		{
			if(shopCar[i]==null) 
				{//此位置无元素存入
					shopCar[i] = s;
					break;
				}
		}
		System.out.println("您的商品" + s.name +"添加至购物车完成了! ");
	}
	
	//查询购物车中的商品
	public static void queryGoods(goods[] shopCar)
	{
		System.out.println("===============查询购物车信息如下============");
		System.out.println("编号\t名称\t\t价格\t\t数量");
		for(int i = 0 ; i < shopCar.length; i++)
		{
			goods s = shopCar[i];
			if(shopCar[i]!=null) 
			{
				//展示这个商品类型
				System.out.println(s.id + "\t" + s.name +"\t\t" + s.price +"\t\t"+s.buyNumber);
			}
			else 
				break;
		}
	}
	
	public static void updateGoods(goods[] shopCar, Scanner sc)
	{
		while(true) {
		System.out.println("请输入您要更改的商品id");
		int id = sc.nextInt();
		goods s = getGoodsById(shopCar,id);//根据id查询出要修改的商品对象
		if(s == null){
			//没有商品
			System.out.println("对不起,没有购买商品!");
		}
		else {//说明存在对象可以进行修改
			System.out.println("请您输入"+s.name+"商品最新购买数量");
			int buyNumber = sc.nextInt();
			s.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 s = shopCar[i];
			if(s != null)
			{//判断这个商品是否是我们要找的
				if(s.id == id)
					return s;
			}
			else 
				return null;//找完了所有的商品都没有找到
		}
		
		return null;//访问完了100个商品都未找到
	}
	//结算商品的购买金额
	public static void payGoods(goods[] shopCar)
	{
		queryGoods(shopCar);
		double money = 0;
		for(int i = 0; i <shopCar.length; i++)
		{
			goods s = shopCar[i];
			if(s != null) 
			{
				money += s.price *s.buyNumber ;
			}
			else 
				break;
		}
		System.out.println("所购买的商品总金额是:" + money);
	}
}

添加商品操作请添加图片描述

请添加图片描述

查询商品操作

请添加图片描述

更改商品数量操作

请添加图片描述

结算购买商品的金额

请添加图片描述

  • 22
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的Java面向对象购物车系统的代码示例: ```java import java.util.*; class Product { String name; double price; int quantity; public Product(String name, double price, int quantity) { this.name = name; this.price = price; this.quantity = quantity; } public double getTotalPrice() { return price * quantity; } } class ShoppingCart { List<Product> products; public ShoppingCart() { products = new ArrayList<>(); } public void addProduct(Product product) { products.add(product); } public void removeProduct(Product product) { products.remove(product); } public double getTotalPrice() { double totalPrice = 0; for (Product product : products) { totalPrice += product.getTotalPrice(); } return totalPrice; } } public class Main { public static void main(String[] args) { Product p1 = new Product("Book", 10.0, 2); Product p2 = new Product("Pen", 1.0, 5); Product p3 = new Product("Notebook", 3.0, 3); ShoppingCart cart = new ShoppingCart(); cart.addProduct(p1); cart.addProduct(p2); cart.addProduct(p3); System.out.println("Total price: " + cart.getTotalPrice()); } } ``` 在这个示例中,我们定义了两个类:`Product`和`ShoppingCart`。`Product`类用于表示一个商品,包括名称、价格和数量。`ShoppingCart`类用于表示购物车,包括产品列表和一些操作方法,如添加和删除产品以及获取总价。 在主方法中,我们创建了三个产品,并将它们添加到购物车中。最后,我们打印出购物车中所有产品的总价。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值