第1次任务:购物车程序的面向对象设计

第1次任务:购物车程序的面向对象设计

团队介绍

姓名负责任务
林仕峰面向对象、博客制作、功能设计、ShoppingMall类、Commodity类、 Main类
吴双前期调查、 代码规范、CartShow类、 Menu类、ShoppingCart类

1.前期调查与功能设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过浏览京东商场可知,用户购物的流程应该为顾客先在商城(ShoppingMall)中浏览商品(Commidity),将浏览的商品加入购物车(ShoppingCart),最后通过购物车生成订单,购买结束

2.系统功能结构图

在这里插入图片描述

3.UML类图

在这里插入图片描述

4.系统描述

(用户)在商城中可以[搜索]、[浏览](商品),看到想买的商品可以将商品[放入](购物车),可以放进多个,并且可以对购物车中的物品进行[添加]和[删减]。可以在购物车中获得所有商品价格,最后选择[结算]可以生成并打印(账单)

封装性的体现:商品类中个每个对象属性都是设置为private,外部无法直接访问,只能通过getters函数进行访问

5.代码以及流程图

运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码以及部分流程图

Commodity类

内含商品的属性(名称、价格、数量、ID)

package shopping;

public class Commodity {//商品
	private String goodsName;//商品名称
	private double goodsPrice;//商品单价
	private int goodsID;//商品id
	private int goodsNumber;//商品数量
	
	public int getGoodsNumber() {
		return goodsNumber;
	}
	public void setGoodsNumber(int goodsNumber) {
		this.goodsNumber = goodsNumber;
	}
	private double payNumber;
	
	public double getPayNumber() {
		return payNumber;
	}
	public void setPayNumber(double payNumber) {
		this.payNumber = payNumber;
	}
	public String getGoodsName() {
		return goodsName;
	}
	public void setGoodsName(String goodsName) {
		this.goodsName = goodsName;
	}
	public double getGoodsPrice() {
		return goodsPrice;
	}
	public void setGoodsPrice(double goodsPrice) {
		this.goodsPrice = goodsPrice;
	}
	public int getGoodsID() {
		return goodsID;
	}
	public void setGoodsID(int goodsID) {
		this.goodsID = goodsID;
	}
	
}

ShoppingMall类

存储商城中拥有的商品的信息,以及搜索功能

package shopping;

import java.util.*;

public class ShoppingMall {//商场
	private static ArrayList<Commodity> goodsList = new ArrayList<>();
	static Scanner sc = new Scanner(System.in);
	
	public static ArrayList<Commodity> getGoodsList() {
		return goodsList;
	}

	public static void setGoodsList(ArrayList<Commodity> goodsList) {
		ShoppingMall.goodsList = goodsList;
	}

	//初始化商场商品
	public static void List() {
		for (int i = 0; i < 10; i++) {
			Commodity e = new Commodity();
			switch(i)
			{
			case 0:
				e.setGoodsID(0);
				e.setGoodsName("纸巾");
				e.setGoodsPrice(1.0);
				goodsList.add(e);
				break;
			case 1:
				e.setGoodsID(1);
				e.setGoodsName("可口可乐");
				e.setGoodsPrice(3.0);
				goodsList.add(e);
				break;
			case 2:
				e.setGoodsID(2);
				e.setGoodsName("雨伞");
				e.setGoodsPrice(30.0);
				goodsList.add(e);
				break;
			case 3:
				e.setGoodsID(3);
				e.setGoodsName("水杯");
				e.setGoodsPrice(20.0);
				goodsList.add(e);
				break;
			case 4:
				e.setGoodsID(4);
				e.setGoodsName("蓝牙耳机");
				e.setGoodsPrice(100.0);
				goodsList.add(e);
				break;
			case 5:
				e.setGoodsID(5);
				e.setGoodsName("铅笔");
				e.setGoodsPrice(1.5);
				goodsList.add(e);
				break;
			case 6:
				e.setGoodsID(6);
				e.setGoodsName("纸巾");
				e.setGoodsPrice(1.0);
				goodsList.add(e);
				break;
			case 7:
				e.setGoodsID(7);
				e.setGoodsName("矿泉水");
				e.setGoodsPrice(2.0);
				goodsList.add(e);
				break;
			case 8:
				e.setGoodsID(8);
				e.setGoodsName("芦荟胶");
				e.setGoodsPrice(10.0);
				goodsList.add(e);
				break;
			case 9:
				e.setGoodsID(9);
				e.setGoodsName("衣架");
				e.setGoodsPrice(15.0);
				goodsList.add(e);
				break;
			}
		}
	}
	
	public static void show() {
		System.out.println("商品ID	商品名	商品价格");
		for (int i = 0; i < goodsList.size(); i++) {
			System.out.println(goodsList.get(i).getGoodsID() + "	" + goodsList.get(i).getGoodsName() + "	" + goodsList.get(i).getGoodsPrice());
		}
	}
	
	public static int searchByName(String name) {
		for (int i = 0; i < goodsList.size(); i++) {
			if(goodsList.get(i).getGoodsName().equals(name)){
				System.out.println("已找到该商品:");
				System.out.println("商品ID	商品名	商品价格");
				System.out.println(goodsList.get(i).getGoodsID() + "	" + goodsList.get(i).getGoodsName() + "	" + goodsList.get(i).getGoodsPrice());
				
				System.out.println("是否添加到购物车?[是(1)/否(0)] :"); 
				int choice = sc.nextInt();
				if (choice == 1) {
					System.out.print("添加数量?:");

					int number = sc.nextInt();

					if (ShoppingCart.addGoods(name, number) == 1)
						System.out.println("添加成功!");// 在购物车单中添加商品
					else
						System.out.println("添加失败!");
					
				}
				return 1;
			}
		}
		return 0;
	}
	
	public static int searchByID(int ID) {
		for (int i = 0; i < goodsList.size(); i++) {
			if(ID==goodsList.get(i).getGoodsID()){
				System.out.println("已找到该商品:");
				System.out.println("商品ID	商品名	商品价格");
				System.out.println(goodsList.get(i).getGoodsID() + "	" + goodsList.get(i).getGoodsName() + "	" + goodsList.get(i).getGoodsPrice());
				System.out.println("是否添加到购物车?[是(1)/否(0)] :"); 
				int choice = sc.nextInt();
				if (choice == 1) {
					System.out.print("添加数量?:");

					int number = sc.nextInt();

					if (ShoppingCart.addGoods(goodsList.get(i).getGoodsName(), number) == 1)
						System.out.println("添加成功!");// 在购物车单中添加商品
					else
						System.out.println("添加失败!");
					
				}
				return 1;
			}
		}
		return 0;
	}
	
}

shoppingCart类
package shopping;

import java.util.*;

public class ShoppingCart {//购物车
	private static ArrayList<Commodity> cartList = new ArrayList<>();
	
	public static ArrayList<Commodity> getCartList() {
		return cartList;
	}
	public static void setCartList(ArrayList<Commodity> cartList) {
		ShoppingCart.cartList = cartList;
	}
	
	//添加商品到购物车 
	public static int addGoods(String goodsName,int goodsAddNumber)
	{
			for(int i =0; i<ShoppingMall.getGoodsList().size();i++) {
				if(goodsName.equals(ShoppingMall.getGoodsList().get(i).getGoodsName())) {
					if(cartList.size()==0) {
						int tempID = ShoppingMall.getGoodsList().get(i).getGoodsID();
						String tempName = ShoppingMall.getGoodsList().get(i).getGoodsName();
						double tempPrice = ShoppingMall.getGoodsList().get(i).getGoodsPrice();
						Commodity e = new Commodity();
						e.setGoodsID(tempID);
						e.setGoodsName(goodsName);
						e.setGoodsPrice(tempPrice);
						e.setGoodsNumber(goodsAddNumber);
						cartList.add(e);
						return 1;
					}
					else {
						for (int j = 0; j < cartList.size(); j++) {
								if(!(goodsName.equals(cartList.get(j).getGoodsName()))){
									int tempID = ShoppingMall.getGoodsList().get(i).getGoodsID();
									String tempName = ShoppingMall.getGoodsList().get(i).getGoodsName();
									double tempPrice = ShoppingMall.getGoodsList().get(i).getGoodsPrice();
									Commodity e = new Commodity();
									e.setGoodsID(tempID);
									e.setGoodsName(goodsName);
									e.setGoodsPrice(tempPrice);
									e.setGoodsNumber(goodsAddNumber);
									cartList.add(e);
									return 1;
								}
								else {
									int tempNum = cartList.get(j).getGoodsNumber();
									tempNum = tempNum + goodsAddNumber;
									cartList.get(j).setGoodsNumber(tempNum);
									return 1;
								}
						}
					}
				}
			}
		return 0;
	}
	//删除购物车中商品
	public static int deleteGoods(String goodsName,int goodsdeleteNumber)
	{
		for(int i =0; i<cartList.size();i++) {
			if(goodsName.equals(ShoppingMall.getGoodsList().get(i).getGoodsName())) {
				int temp=cartList.get(i).getGoodsNumber();
				temp=temp-goodsdeleteNumber;
				if(temp<0)
					cartList.get(i).setGoodsNumber(0);
				else
					cartList.get(i).setGoodsNumber(temp);
				return 1;
			}
		}
		return 0;
	}
	//显示购物车中的商品
	public static void showCart() {
		double countCartPay = 0;
		System.out.println("———————————— 您的购物车 ————————————");
		System.out.println("商品ID" + "	" + "商品名" + "	" + "商品单价" + "	  " + "购买数量" + "	  " + "本款商品总价");
		System.out.println();
		for (int i = 0; i < cartList.size(); i++) {
			if (cartList.get(i).getGoodsNumber() != 0) {
				System.out.println(cartList.get(i).getGoodsID() + "	" + cartList.get(i).getGoodsName() + "	"
						+ cartList.get(i).getGoodsPrice() + "	  " + cartList.get(i).getGoodsNumber() + "	  " 
						+(double)cartList.get(i).getGoodsPrice()*cartList.get(i).getGoodsNumber());
			}
			countCartPay = countCartPay + (1.0*cartList.get(i).getGoodsPrice()*cartList.get(i).getGoodsNumber());
		}
		System.out.println();
		System.out.println("	您的账单估算 :  " + String.format("%.2f", countCartPay));
	}
	//清空购物车
	public static void cleanGoods() {
			cartList.clear();
	}
}

其中添加商品到购物车流程图为
在这里插入图片描述

cartShow类

展示购物车中所有信息并给出结算价格

package shopping;

import java.util.*;

public class CartShow {//展示购物车
	
	public static void show() {
		double totalPay = 0;
		System.out.println("");
		System.out.println("----------------------------------");
		System.out.println("商品ID" + "	" + "商品名" + "	" + "商品单价" + "	  " + "购买数量" + "	  " + "本款商品总价");
		System.out.println("----------------------------------");
		
		for (int i = 0; i < ShoppingCart.getCartList().size(); i++) {
			if (ShoppingCart.getCartList().get(i).getGoodsNumber() != 0) {
				System.out.println(ShoppingCart.getCartList().get(i).getGoodsID() + "	" + ShoppingCart.getCartList().get(i).getGoodsName() + "	"
						+ ShoppingCart.getCartList().get(i).getGoodsPrice() + "	  " + ShoppingCart.getCartList().get(i).getGoodsNumber() + "	  " 
						+(double)ShoppingCart.getCartList().get(i).getGoodsPrice()*ShoppingCart.getCartList().get(i).getGoodsNumber());
			}
			totalPay = totalPay + (1.0*ShoppingCart.getCartList().get(i).getGoodsPrice()*ShoppingCart.getCartList().get(i).getGoodsNumber());
		}
		System.out.println("----------------------------------");
		System.out.println("	实 际 应 付 :  " + String.format("%.2f", totalPay));
		System.out.println("----------------------------------");
	}
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值