用Java实现一个购物车系统,采用封装的思想

一 创建一个Goods类

主要封装了订单号,商品名,购买数量,商品价格四个变量

public class Goods {
	private int id;
	private String name;
	private int buyNumber;
	private double price;
	public Goods() {
		super();
	}
	public Goods(int id,String name,int buyNumber,double price) {
		super();
		this.id=id;
		this.name=name;
		this.buyNumber=buyNumber;
		this.price=price;
		
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getBuyNumber() {
		return buyNumber;
	}
	public void setBuyNumber(int buyNumber) {
		this.buyNumber = buyNumber;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	
}

二 定义一个功能类

实现购物车商品总价的计算,商品的增删改查操作,主要实现一些逻辑功能

import java.util.Scanner;
public class TestShopCar {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("==============欢迎登录购物车==================");
		Goods ShopCar[]=new Goods[100];//自定义类的数组被定义出来
		Scanner sc=new Scanner(System.in);
		while(true) {
			System.out.println("请输入列表中的选项");
			System.out.println("1,添加商品请输入:add");
			System.out.println("2,查询购物车现存商品请输入:querry");
			System.out.println("3,更新购物车中商品的购买数量请输入:update");
			System.out.println("4,结算购物车中商品的价值总额:pay");
			String command=sc.next();
			switch (command) {
			case "add":
				addGoods(ShopCar,sc);
				break;
			case "querry":
				querryGoods(ShopCar);
				break;
			case "update":
				updateGoods(ShopCar,sc);
				break;
			case "pay":
				payGoods(ShopCar);
				break;
			default:
				System.out.println("输入内容不符合题目要求");
				break;
			}
		}
		
	}

	public static void querryGoods(Goods[] shopCar) {
		// TODO Auto-generated method stub
		
		for (int i = 0; i < shopCar.length; i++) {
			Goods g=new Goods();
			g=shopCar[i];
			if (g!=null) {
				System.out.println(g.getId()+" "+g.getName()+" "+g.getPrice()+" "+g.getBuyNumber());
			} else {
				break;
			}
		}
	}

	public static void updateGoods(Goods[] shopCar, Scanner sc) {
		// TODO Auto-generated method stub
		while (true) {
			//请输入需要修改的商品编号
			System.out.println("请输入要修改的货物编号 ");
			int id=sc.nextInt();
			Goods g=getGoodsById(id,shopCar);
			if(g==null) {
				System.out.println("对不起,购物车里并没有购买该商品");	
			}else {
				//说明商品存在
				System.out.println("请输入您要修改"+g.getId()+"的预期数量");
				int buynumber=sc.nextInt();
				g.setBuyNumber(buynumber);
				System.out.println("修改完成");
				querryGoods(shopCar);
			}
			
		}
		
	}

	public static Goods getGoodsById(int id, Goods[] shopCar) {
		// TODO Auto-generated method stub
		for (int  i= 0;  i< shopCar.length; i++) {
			Goods g=shopCar[i];
			if(g!=null) {
				if(g.getId()==id) {
					return g;
				}else {
					return null;//都没有找到
				}
			}
		}
		return null;
	}

	public static void payGoods(Goods[] shopCar) {
		// TODO Auto-generated method stub
		double money=0;
		for (int i = 0; i < shopCar.length; i++) {
			Goods g=shopCar[i];
			if (g!=null) {
				money=money+(g.getBuyNumber()*g.getPrice());
			} else {
				break;
			}
		}
		System.out.println("购物车中商品的价值总和是:"+money);
	}

	public 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("请输入商品单价:");
		double price=sc.nextDouble();
		System.out.println("请输入商品的购买数量:");
		int buyNumber=sc.nextInt();
		//2 将零散信息封装起来
		Goods g=new Goods();
		g.setId(id);
		g.setName(name);
		g.setPrice(price);
		g.setBuyNumber(buyNumber);
		//3. 将信息赋值给自定义类型数组
		for (int j = 0; j < shopCar.length; j++) {
			if (shopCar[j]==null) {
				shopCar[j]=g;
				break;
			}
		}
	}

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是一个简单的购物车管理系统Java代码示例: ```java import java.util.ArrayList; import java.util.Scanner; public class ShoppingCart { private ArrayList<Item> cart; private double totalPrice; public ShoppingCart() { cart = new ArrayList<Item>(); totalPrice = 0.0; } public void addItem(Item item) { cart.add(item); totalPrice += item.getPrice(); } public void removeItem(int index) { totalPrice -= cart.get(index).getPrice(); cart.remove(index); } public double getTotalPrice() { return totalPrice; } public void displayCart() { System.out.println("Shopping Cart Items:"); if (cart.size() == 0) { System.out.println("Your cart is empty."); } else { for (int i = 0; i < cart.size(); i++) { System.out.println((i+1) + ". " + cart.get(i).getName()); } } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ShoppingCart cart = new ShoppingCart(); int choice = 0; do { System.out.println("\nMenu:"); System.out.println("1. Add item to cart"); System.out.println("2. Remove item from cart"); System.out.println("3. Display cart contents"); System.out.println("4. Display total price"); System.out.println("5. Exit"); System.out.print("Enter your choice: "); choice = scanner.nextInt(); switch (choice) { case 1: System.out.print("Enter item name: "); String name = scanner.next(); System.out.print("Enter item price: "); double price = scanner.nextDouble(); Item item = new Item(name, price); cart.addItem(item); System.out.println("Item added to cart."); break; case 2: cart.displayCart(); System.out.print("Enter item number to remove: "); int index = scanner.nextInt() - 1; cart.removeItem(index); System.out.println("Item removed from cart."); break; case 3: cart.displayCart(); break; case 4: System.out.println("Total price: $" + cart.getTotalPrice()); break; case 5: System.out.println("Exiting program."); break; default: System.out.println("Invalid choice. Please try again."); break; } } while (choice != 5); } } class Item { private String name; private double price; public Item(String name, double price) { this.name = name; this.price = price; } public String getName() { return name; } public double getPrice() { return price; } } ``` 这是一个基本的购物车管理系统,可以添加商品、删除商品、查看购物车内容和计算总价。可以根据实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值