Java--购物车

1.前期调查

通过观察京东购物车的界面可以大致了解到购物车需要实现的功能

2.系统功能结构图

系统描述:进入购物车系统,根据界面提示来进行一系列商品操作,商城用以添加销售商品及商品的信息修改。并将所需商品添加进购物车中,也可在购物车中进行所需商品的添加,删除并结算商品。

3.UML图

4.关键代码

ShoppingCart:

import java.util.Collection;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.Map;

public class ShoppingCart {

private Map map = new LinkedHashMap();

public void addProduct(Product p) {// 添加商品

int productId = p.getId();

if (map.containsKey(productId)) { // 判断商品编号是否存在

ProductItem productItem = map.get(productId);

productItem.setCount(productItem.getCount() + 1); // 数量增加

} else {

map.put(productId, new ProductItem(p, 1));// 新增商品

}

}

public void showAll() {// 查看订单信息

Collection productItems = map.values();// 获取键值

Iterator iterator = productItems.iterator();

while (iterator.hasNext()) {

ProductItem productItem = iterator.next();

Product product = productItem.getProduct();

System.out.println("编号:" + product.getId() + ",名称:" + product.getName() + ",单价:" + product.getPrice()

+ ",数量:" + productItem.getCount() + ",小计:" + productItem.totalMoney());

}

}

public boolean deleteProduct(int productId) {// 删除商品

if (map.containsKey(productId)) {

map.remove(productId);

return true;

}

return false;

}

public boolean modifyProduct(int productId, int count) {// 修改商品数量

if (map.containsKey(productId)) {

if (count >= 1) {

ProductItem productItem = map.get(productId);

productItem.setCount(count);

return true;

} else if (count == 0) {// 删除某商品

deleteProduct(productId);

return true;

}

}

return false;

}

public void clearCart() {// 清空购物车

map.clear();

System.out.println("购物车已清空!");

}

public double totalAllMoney() {// 商品总价值

double total = 0;

Collection productItems = map.values();

Iterator iterator = productItems.iterator();

while (iterator.hasNext()) {

ProductItem productItem = iterator.next();

double money = productItem.totalMoney();

total += money;

}

return total;

}

public void Displaycart(ShoppingCart cart) {

if(map.isEmpty()) {

System.out.println("购物车为空!");

}

else{

cart.showAll();

System.out.println("总价为:" + cart.totalAllMoney());

}

}

}

Inventory:

import java.util.Collection;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.Map;

public class Inventory {

private Map map=new LinkedHashMap();

public void addProduct(Product p){//添加商品

int productId=p.getId();

if(map.containsKey(productId)){ //判断商品编号是否存在

System.out.println("该商品已存在");

}else{

map.put(productId, new ProductItem(p));//新增商品

}

}

public boolean Productexist(int productId) {

if(!map.containsKey(productId)) {

return false;

}

return true;

}

public Product getProduct(int productId) {

return map.get(productId).getProduct();

}

public void showAll(){//查看订单信息

Collection productItems = map.values();//获取键值

Iterator iterator = productItems.iterator();

while(iterator.hasNext()){

ProductItem productItem = iterator.next();

Product product = productItem.getProduct();

System.out.println("编号:"+product.getId()+",名称:"

+product.getName()+",单价:"+product.getPrice());

}

}

public void deleteProduct(int productId){//删除商品

if(map.containsKey(productId)){

map.remove(productId);

System.out.println("编号为:" + productId + "的商品删除成功!");

}

else {

System.out.println("删除失败!市场中无此商品!");

}

}

}

java购物车简介_Java--购物车相关推荐

  1. java ee简介_Java EE 简介

    Java EE 简介 Java EE 基本架构 JavaEE 的诞生是为了解决传统 C/S 架构的弊端:客户端臃肿庞大,扩展性差等弊端. JavaEE 将传统的两层结构细分为了四层. 这四层分别是:C ...

  2. java开发简介_Java Web开发介绍

    转自:http://www.cnblogs.com/pythontesting/p/4963021.html 简介 Java很好地支持web开发,在桌面上Eclipse RCP谈不上成功,JAVA是主 ...

  3. java写入简介_Java关于IO流的介绍

    2.InputStream 和 OutputStream 是两个 abstact 类,对于字节为导向的 stream 都扩展这两个基类; inputStream中的关键方法: read():方法是读取 ...

  4. java 线程简介_java多线程介绍

    java多线程介绍 多线程的基本实现 进程指运行中的程序,每个进程都会分配一个内存空间,一个进程中存在多个线程,启动一个JAVA虚拟机,就是打开个一个进程,一个进程有多个线程,当多个线程同时进行,就叫 ...

  5. java购物车后台_java开发——购物车功能如何实现

    java web开发_购物车功能实现 之前没有接触过购物车的东东,也不知道购物车应该怎么做,所以在查询了很多资料,总结一下购物车的功能实现. 查询的资料,找到三种方法: 1.用cookie实现购物车: ...

  6. java购物车设计_Java面向对象课程设计——购物车

    Java面向对象课程设计--购物车 小组成员:余景胜.刘格铭.陈国雄.达瓦次仁 一.前期调查 流程 客人(Buyer)先在商城(Mall)中浏览商品(Commidity),将浏览的商品加入购物车(Sh ...

  7. java实现基本的购物车功能案例

    需求:用java实现基本的购物车功能需求! 基本功能:添加商品 查询商品 修改商品数量 计算总价 基本思想:使用面向对象定义购物车类,定义类的属性方法从而进行操作:建议初学java的同学可以写一写这个 ...

  8. 阿里Java架构师讲解购物车的原理及实现

    今天来写一下关于购物车的东西, 这里首先抛出四个问题: 1)用户没登陆用户名和密码,添加商品, 关闭浏览器再打开后 不登录用户名和密码问:购物车商品还在吗? 2)用户登陆了用户名密码,添加商品,关闭浏 ...

  9. JAVA外卖项目第六天 购物车和订单模块

    瑞吉外卖-第六天 课程内容 用户地址簿功能 菜品展示 购物车 下单 1. 用户地址簿功能 1.1 需求分析 地址簿,指的是移动端消费者用户的地址信息,用户登录成功后可以维护自己的地址信息.同一个用户可 ...

  10. java相关技术简介_java技术简介?

    java技术简介? 关注:186  答案:3  信息版本:手机版 电脑版 解决时间 2021-01-17 11:41 提问者坟地里唱嗨歌 2021-01-17 01:04 java技术简介? 最佳答案 ...

最新文章

  1. windows操作系统的日志类型
  2. STL 之 deque容器详解
  3. php 防止表单重复提交
  4. OpenYurt v0.4.0 新特性发布:高效地管理边缘存储资源
  5. 可动态扩展的数据库模型设计
  6. c#图片base64去转义字符_C#实现字符串与图片的Base64编码转换操作示例
  7. java作业四_Java第四次作业
  8. virtualbox 虚拟化问题
  9. ORACLE数据库管理工具EM
  10. 学习短视频制作能做什么工作啊
  11. 2021年中国乙烯基一次性手套市场趋势报告、技术动态创新及2027年市场预测
  12. pythonmatplot可视化_python:matplotlib基础数据可视化,pythonmatplotlib
  13. 船用雷达x波段和s波段简介
  14. 生信过程中的各种文件格式
  15. MySQL 日期计算
  16. 阿里 P7 到底是怎样的水平 ???
  17. 计算机网络处理延时是什么原因,电脑网络延迟的解决方法是什么
  18. 音频声音太小怎么调大?
  19. 图片怎样加贴纸?这些方法值得一试
  20. 最新CentOS7.5部署L版ceph 20190610及额外手册告警升级多活等

热门文章

  1. Cocos Creator—最佳构建部署实践
  2. AntiXSS - 支持Html同时防止XSS攻击
  3. Android下基于SDL的位图渲染(一)
  4. H3C静态路由、Track与BFD联动配置举例
  5. DBA们不得不知的数据库硬件RAID常识
  6. 面试官:引入RabbitMQ后,你如何保证全链路数据100%不丢失?
  7. Elasticsearch 如何做到快速检索?
  8. 简单介绍4种限流算法!(固定窗口计数器算法、滑动窗口计数器算法、漏桶算法、令牌桶算法)...
  9. 【MySQL】面试官:如何查询和删除MySQL中重复的记录?
  10. 深度学习在高德的探索与实践