一 购物车类(Cart)的设计
二 代码
1、Cart类
package entity;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
//购物车类
public class Cart {
//购买商品的集合
private HashMap<Items,Integer> goods;
//购物车的总金额
private double totalPrice;
//构造方法
public Cart()
{
goods = new HashMap<Items,Integer>();
totalPrice = 0.0;
}
public HashMap<Items, Integer> getGoods() {
return goods;
}
public void setGoods(HashMap<Items, Integer> goods) {
this.goods = goods;
}
public double getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(double totalPrice) {
this.totalPrice = totalPrice;
}
//添加商品进购物车的方法
public boolean addGoodsInCart(Items item ,int number)
{
if(goods.containsKey(item))
{
goods.put(item, goods.get(item)+number);
}
else
{
goods.put(item, number);
}
calTotalPrice(); //重新计算购物车的总金额
return true;
}
//删除商品的方法
public boolean removeGoodsFromCart(Items item)
{
goods.remove(item);
calTotalPrice(); //重新计算购物车的总金额
return true;
}
//统计购物车的总金额
public double calTotalPrice()
{
double sum = 0.0;
Set<Items> keys = goods.keySet(); //获得键的集合
Iterator<Items> it = keys.iterator(); //获得迭代器对象
while(it.hasNext())
{
Items i = it.next();
sum += i.getPrice()* goods.get(i);
}
this.setTotalPrice(sum); //设置购物车的总金额
return this.getTotalPrice();
}
public static void main(String[] args) {
//先创建两个商品对象
Items i1 = new Items(1,"沃特篮球鞋","温州",200,500,"001.jpg");
Items i2 = new Items(2,"李宁运动鞋","广州",300,500,"002.jpg");
Items i3 = new Items(1,"沃特篮球鞋","温州",200,500,"001.jpg");
Cart c = new Cart();
c.addGoodsInCart(i1, 1);
c.addGoodsInCart(i2, 2);
//再次购买沃特篮球鞋,购买3双
c.addGoodsInCart(i3, 3);
//变量购物商品的集合
Set<Map.Entry<Items, Integer>> items= c.getGoods().entrySet();
for(Map.Entry<Items, Integer> obj:items)
{
System.out.println(obj);
}
System.out.println("购物车的总金额:"+c.getTotalPrice());
}
}
2、Items类
package entity;
//商品类
public class Items {
private int id; // 商品编号
private String name; // 商品名称
private String city; // 产地
private int price; // 价格
private int number; // 库存
private String picture; // 商品图片
//保留此不带参数的构造方法
public Items()
{
}
public Items(int id,String name,String city,int price,int number,String picture)
{
this.id = id;
this.name = name;
this.city = city;
this.picture = picture;
this.price = price;
this.number = number;
}
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 String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getPicture() {
return picture;
}
public void setPicture(String picture) {
this.picture = picture;
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return this.getId()+this.getName().hashCode();
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
if(this==obj)
{
return true;
}
if(obj instanceof Items)
{
Items i = (Items)obj;
if(this.getId()==i.getId()&&this.getName().equals(i.getName()))
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
public String toString()
{
return "商品编号:"+this.getId()+",商品名称:"+this.getName();
}
}
三 测试结果
商品编号:1,商品名称:沃特篮球鞋=4
商品编号:2,商品名称:李宁运动鞋=2
购物车的总金额:1400.0
相关推荐
SSH简易购物车实现是Java开发中的一个经典案例,它涵盖了Spring、Struts和Hibernate这三大框架的集成应用。这三个框架的组合,常被称为SSH框架,是企业级Java Web开发的主流选择之一。在这个项目中,我们将深入理解...
本项目"java代码做的简易购物车"就是一个基础的实现,它展示了如何使用Java来模拟一个在线购物过程中的购物车系统。这个系统可能在大型网站上作为基础模块存在,尽管它的规模可能被扩展成数百甚至数千行代码,但基本...
JavaWeb简易购物车源代码是基于JavaWeb技术实现的一个在线购物车系统,它涵盖了Web开发中的许多基础概念和核心技术。这个源代码可以帮助开发者理解和学习如何在实际项目中应用这些技术,同时提供了相关的笔记资料,...
在这个数据库课程设计报告中,我们将探讨购物车系统的各个关键方面,包括开发背景、需求分析、概念模型设计、逻辑模型设计以及应用程序设计。 1. **开发背景**: 购物车系统是电子商务平台的核心组成部分,它允许...
在IT行业中,构建一个基于JSP(JavaServer Pages)和Servlet的简易购物车系统是一项常见的实践任务,这对于理解和掌握Web应用程序开发至关重要。本系统利用Java技术栈,包括JSP和Servlet,来实现用户登录、注册、...
- **Cart:** 购物车实体类。 - **User:** 用户实体类。 - **Order:** 订单实体类。 - **OrderItem:** 订单项实体类。 通过以上总结可以看出,这个书籍销售系统涵盖了从数据层到表示层的完整流程,采用了MVC架构...
整个项目的目标是提供一个简易的在线购书体验,让用户可以浏览书籍、选择并加入购物车,最后可能还包括结算流程。这样的系统对于初学者理解Web开发流程和实践JavaWeb技术非常有帮助,同时也展示了如何将前端和后端...
4. **购物车实体类(ShoppingCart)** - 存储用户选中的图书及其数量,提供添加、删除和计算总价等方法。 5. **购物车Action(ShoppingCartAction)** - Struts Action类,处理用户的购物车操作请求,调用服务类方法...
在Music Store示例中,模型可能包括专辑、艺术家、流派等实体类,它们封装了数据访问逻辑,并通过属性和方法与数据库进行交互。 2. **视图(View)**:视图是用户看到和与之交互的界面。在Music Store应用中,视图...
在这个购物商城项目中,模型可能包含了商品信息、订单信息、用户账户等实体类,用于存储和操作业务数据。这些类通常会有一些方法,如添加、删除、更新和查询数据,以便与数据库进行交互。 2. **视图(View)**:视...
【标题】"基于Springboot + Mybatis框架实现的一个简易的商场购物系统后端"是一个典型的Web应用开发项目,主要用于教学和实践目的,特别是在计算机类的毕业设计中常见。这个项目结合了Spring Boot和Mybatis两个主流...
数据库设计可能包含多个表,如菜品表、订单表、用户表等,每个表都有相应的实体类对应,并通过ORM(对象关系映射)工具,如Hibernate或MyBatis,实现Java对象与数据库记录的映射。 前端部分可能采用了Thymeleaf、...
- 设计数据库表结构和实体类。 - 编写Hibernate的映射文件,配置实体与表的关系。 - 创建Struts2的Action类,编写业务逻辑。 - 设计视图界面,使用JSP或模板技术。 - 配置struts.xml和hibernate.cfg.xml。 - ...
这个系统设计的目标是提供用户友好的界面,实现图书的浏览、购买、注册、登录等基本功能,并且还包含了图片上传和购物车结算等高级特性。 1. **JSP技术**:JSP是Java平台上的动态网页技术,用于生成动态内容。在本...
例如,商品类和顾客类可能都会继承一个基本的实体类(Entity),并根据各自的特点进行扩展。同时,为了实现多态性,可能会定义一些接口,如`Shopable`接口,使得不同的对象(如商品和顾客)都能响应购物行为。 在...
- **数据库设计**:根据商场购物系统的功能,可能包含商品、用户、订单、购物车等表,需要合理设计数据库表结构,确保数据的一致性和完整性。 - **安全机制**:可能采用Spring Security或JWT实现用户认证与授权,...
- **实体类**:Hibernate通过注解或XML配置文件定义实体类,这些类对应数据库中的表。 - **Session接口**:Session是与数据库交互的主要接口,负责CRUD(创建、读取、更新、删除)操作。 - **Criteria查询**和**HQL*...
Hibernate支持实体类(Entity)、持久化(Persistence)、会话(Session)和查询(Query)等概念,提供了HQL(Hibernate Query Language)和 Criteria API,使得开发者能够更加方便地进行数据操作。 【购物网站架构...