简易购物车系统


前言

在经过了连续几周的Java学习之后,我对java的认识已由当初的对于这些和Java有关的知识什么都不懂,到现在已经初窥门径了,在老师及同学的指导下初步完成了购物车系统的实现,虽然还有着一些漏洞。


团队介绍:

小组成员成员分工
张小荣博客制作,面向对象设计,代码规范,类
徐可前期调查,功能函数

一、前期调查

用户现在购物车界面中游览商品,然后将想要购买的商品放入购物车中。

在这里插入图片描述

二、购物车

功能结构图

在这里插入图片描述

uml图

在这里插入图片描述

一 类

Goods类


public class Goods{
	private int id;
	private String name;
	private double price;
	public Goods(int id,String name,double price) {
		super();
		this.id=id;
		this.name = name;
		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 double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
}

功能
1.对商城的界面初始化
2.展示出所售卖商品的信息

Goodsinformation类

 
public class Goodsinformation {
	private Goods product;
	private int count;
	public double totalMoney(){
		double price=product.getPrice();
		return price*count;
	}

	public Goodsinformation() {
		super();
	}

	public Goodsinformation(Goods product, int count) {
		super();
		this.product = product;
		this.count = count;
	}

	public Goods getProduct() {
		return product;
	}
	public void setProduct(Goods product) {
		this.product = product;
	}
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}
}

功能
1.对于要购买的商品进行统计并算出总价

Menu类

class Menu{
public class Menu {
	public static void showMenu(){
		System.out.println("     商品如下");
		System.out.println("  名称      售价");
		System.out.println(" 101 计算机网络   45");
		System.out.println(" 102 Java程序设计   59元");
		System.out.println(" 103 数据结构   97元");
		System.out.println(" 104 卫衣   128元");
		System.out.println(" 105 手机   2999元");
	}
	public static void showFunction() {
		System.out.println("------------------------------");
		System.out.println("-------    欢迎光临!    -------");
		System.out.println("------------------------------");
		System.out.println("  1 展示商品");
		System.out.println("  2 加入购物车");
		System.out.println("  3 展示购物车");
		System.out.println("  4 清空购物车");
		System.out.println("  5 修改购物车");
		System.out.println("  6 结账");
		System.out.println("  0 退出购物车");
	}
	public static void endMenu() {
		System.out.println("------------------------------");
		System.out.println("-------    谢谢惠顾     -------");
		System.out.println("------------------------------");
	}
}

二 购物车的部分功能模块

以下为ShoppingCart类方法图解

在这里插入图片描述

在这里插入图片描述
Map接口中定义的常用方法及功能

方法声明功能
boolean containsKey()判断集合是否包含指定的键
Object get()从map中读取数据,若不包含该键的映射关系,返回null
void put()将指定的值与此映射指定的键相关联
void clear()移除所有的键值对应的元素
Collection values()获取集合中所有值的集合

添加商品

public void addProduct(Goods p){
		int productId=p.getId();
		if(map.containsKey(productId)){
			Goodsinformation productItem=map.get(productId);
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入还要添加商品的数量:");
			int n=sc.nextInt();
			productItem.setCount(productItem.getCount()+n);
			System.out.println("添加商品成功");
		}else{
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入添加商品的数量:");
			int n=sc.nextInt();
			map.put(productId, new Goodsinformation(p,n));
			System.out.println("添加商品成功");
		}
	}

修改商品个数

public boolean modifyProduct(int productId,int count){
		if(map.containsKey(productId)){
			if(count>=1){
				Goodsinformation productItem = map.get(productId);
				productItem.setCount(count);
				return true;
			}else if(count==0){
				map.remove(productId);
				return true;
			}	
		}
		return false;
	}

三 面向对象的封装性


public class Goods{
	private int id;
	private String name;
	private double price;

在商品Goods类中的public,private体现了对象的封装性,封装起来可以把类内部的信息统一保护起来,外部只能通过setter和getter来对他们进行操作,保证数据的安全性,保证外部尽可能正确地使用这个类。这样就可以保证商品的信息不会吧轻易的篡改,更加具有安全性。

四 总结

在这次购物车系统的制作中,我发现了许多的小问题,都是由于对Java知识的不全面的理解造成的,所以这次也让我明白了Java的学习应该要多去练习编码,不要只停留在理论知识上。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值