第一次面向对象大作业

小组成员

吴钧杰  202121333054

雷宇轩  202121333044

一、前期调查

在某购物网站上查看商品信息

可以查看到商品的价格、库存、颜色等属性

 将商品加入购物车

显示了购买数量,总价格等属性

 

二、系统设计

 已完成功能:显示菜单,查看商品,加入购物车,进入购物车,增加/减少购物车商品数量,结算商品

三、程序设计

1.Commodity类(雷宇轩)

public class Commodity {
	
	int id;//商品编号
	String name;//商品名称
	double price;//商品价格
	int stock;//商品库存
	static int idCount=0;
	int amount=1;
	
	
	public Commodity() {
		this.id=idCount++;
	}
	
	

	public Commodity(int id, String name, double price, int stock) {
		super();
		this.id = id;
		this.name = name;
		this.price = price;
		this.stock = stock;
	}

	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 double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	
	public int getStock() {
		return stock;
	}
	public void setStock(int stock) {
		this.stock = stock;
	}

	@Override
	public String toString() {
		return "编号 " + id + "  名称 " + name + "  价格 " + price + "r"+"  stock " + stock;
	}

	

}

2.Mall类(雷宇轩)

public class Mall {

	public static void searchCommodity(ShoppingCart cart, int index, ArrayList<Commodity> commodities) {// 显示选择查看的商品信息
        if (index >= 4) {
            System.out.println("商品不存在");
            Menu.showInitialMenu(commodities);
            ShoppingCart.operate_ShoppingCart(cart, commodities);
        } else {
            System.out.println(commodities.get(index));
        }
    }


}

3.Shoppingcart类(吴钧杰)

public class ShoppingCart {
	 ArrayList<Commodity> shopList = new ArrayList<>();
	
	 
	    public ShoppingCart() {
	        super();//编译器会自动在子类构造函数的第一句加上 super(); 来调用父类的无参构造器;此时可以省略不写。
	    }

	    public void show_ShoppingCart() {

	        if (shopList.isEmpty()) {
	            System.out.println("您的购物车为空!");
	        }

	        else {
	            for (Commodity e : shopList) {
	                System.out.println(  e.getId()+e.getName() + " " + e.getPrice() + "r" + " " + "序号:"+"数量"+e.amount);
	            }
	            
	            
	        }
	    }
	    
	    public void add(Commodity c)
	    {
	        int flag = 0;
	        if(shopList.isEmpty())
	        {
	            shopList.add(c);
	        }
	        else
	        {

	            for (Commodity e2 : shopList) {

	                if(e2.getName().contains(c.getName()))
	                {
	                    e2.amount++;
	                    flag++;
	                    break;
	                }

	            }
	            if(flag==0)
	            {
	                shopList.add(c);
	            }
	        }
	    }

	    public void delete(Commodity a)
	    {
	        int flag = 0;
	        if(shopList.isEmpty())
	        {
	            System.out.println("您的购物车为空!");
	        }

	        else
	        {
	            if(a.amount==1)
	            {
	                shopList.remove(a);
	                flag++;
	            }

	        }
	        if(flag==0) {
	            a.amount--;
	        }
	    }
	    
	    


	    public double sum()
	    {
	        double num = 0;
	        for (Commodity e : shopList) {
	            num +=(double)e.getPrice()*e.amount;
	        }
	        return num;
	    }
	    
	    public static void operate_ShoppingCart(ShoppingCart cart, ArrayList<Commodity> commodities) {
	        Scanner sc1 = new Scanner(System.in);
	        int n = sc1.nextInt();
	        if (n == 1) {
	            System.out.println("请输入需要的商品编号:");
	            int index = sc1.nextInt();
	            
	            System.out.println("是否需要加入购物车?(是/否)");
	            String answer = sc1.next();
	            if ("是".equals(answer))
	            {
	                Commodity commodity = new Commodity();
	                commodity = commodities.get(index);
	                cart.add(commodity);
	                System.out.println("添加购物车成功!");
	                System.out.println();
	                if (commodity.id == index) {
	                    commodity.stock--;
	                }
	                Menu.showInitialMenu(commodities);
	                operate_ShoppingCart(cart, commodities);
	            } else if ("否".equals(answer)) {
	            	Menu.showInitialMenu(commodities);
	            	operate_ShoppingCart(cart, commodities);
	            } else {
	                System.out.println("输入错误");
	                Menu.showInitialMenu(commodities);
	                operate_ShoppingCart(cart, commodities);
	            }
	        } 
	        else if (n == 2) {
	            cart.show_ShoppingCart();
	            System.out.println("请选择你的操作:");
	            System.out.println("1.返回商城");
	            System.out.println("2.继续操作购物车");
	            int n1 = sc1.nextInt();
	            if (n1 == 1) {
	            	Menu.showInitialMenu(commodities);
	            	operate_ShoppingCart(cart, commodities);
	            } else if (n1 == 2) {
	            	System.out.println("请选择你对购物车的操作:");
	                System.out.println("1.删除购物车商品");
	                System.out.println("2.结算");
	                int n2 = sc1.nextInt();
	                if (n2 == 1) {
	                    System.out.println("请输入需要删除的商品名称:");
	                    String n3 = sc1.next();
	                    for (Commodity e1 : commodities) {
	                        if(e1.getName().equalsIgnoreCase(n3))
	                        {
	                            e1.stock++;
	                            cart.delete(e1);
	                            break;
	                        }
	                    }

	                    Menu.showInitialMenu(commodities);
	                    operate_ShoppingCart(cart, commodities);
	                } else if (n2 == 2) {
	                    double sum = cart.sum();
	                    System.out.println("总计:" + sum);
	                    System.exit(0);
	                }
	            }
	        } 
	        else if (n == 3) {
	            System.exit(0);
	        } 
	        else {
	            System.out.println("输入错误");
	            Menu.showInitialMenu(commodities);
	            operate_ShoppingCart(cart, commodities);
	        }
	        sc1.close();
	    }
	    

}

4.Menu类(吴钧杰)

public class Menu {
	

	public static void showInitialMenu( ArrayList<Commodity> commodities) {
		System.out.println("-----欢迎进入商城-----");
		System.out.println("以下是我们的商品:");
		Goods.showGoods(commodities);
		System.out.println("------------------");
		System.out.println("请选择以下操作:");
		System.out.println("1.查询商品");
		System.out.println("2.查看购物车");
		System.out.println("3.退出商城");

	}
	


}

5.Goods类(雷宇轩)

public class Goods {
	
	public static void showGoods( ArrayList<Commodity> commodities) {
		commodities = new ArrayList<>();
		Commodity commodity1 = new Commodity(1,"aj1",599, 1);
		Commodity commodity2 = new Commodity(2,"aj4",699,2);
		Commodity commodity3 = new Commodity(3,"aj6",899,6);

		commodities.add(commodity1);
		commodities.add(commodity2);
		commodities.add(commodity3);

		for (int i = 0; i < commodities.size(); i++) {   
			Commodity commodity = new Commodity();
    		commodity = commodities.get(i);
   			System.out.println(commodity.toString());
		}
	
	}

}

四、期待与改进

1.购物车类中一些方法的功能还是比较繁琐,需要将部分功能分离出来成为另外的方法

2.还没能实现查看订单和管理员修改商城商品信息的内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值