java怎么实现购物车_java实现网上购物车程序
导读热词
用java代码写一个简单的网上购物车程序,供大家参考,具体内容如下
需求:
1、写一个商品类,有商品编号、商品名称、商品分类、商品单价属性。
2、写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法。
3、写一个购物车类,有添加商品方法、查看订单信息,删除商品,修改商品,清空购物车,求购物车中所有商品总金额方法。4、写一个测试类,测试上述方法。
商品类:
public class Product {
private int productId;// 商品编号
private String productName;// 商品名称
private String category;// 商品分类
private double price;// 单价
public Product() {// 无参构造
super();
}
public Product(int productId,String productName,String category,double price) {
super();
this.productId = productId;
this.productName = productName;
this.category = category;
this.price = price;
}
public String toString() {
return "Product [productId=" + productId + ",productName="
+ productName + ",category=" + category + ",price=" + price
+ "]";
}
public int getProductId() {
return productId;
}
public void setProductId(int productId) {
this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
商品条目信息类:
public class ProductItem {
private Product product;//购买的商品
private int count;//商品数量
public double totalMoney(){//小计
double price=product.getPrice();//获取商品单价
return price*count;
}
public ProductItem() {
super();
}
public ProductItem(Product product,int count) {
super();
this.product = product;
this.count = count;
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
购物车类:
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
public class ShoppingCart {//购物车
//key:商品编号 value:商品条目
private Map map=new LinkedHashMap();
public void addProduct(Product p){//添加商品
int productId=p.getProductId();
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.getProductId()+",商品名称:"
+product.getProductName()+",单价:"+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();
}
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 class ShoppingCartTest {
public static void main(String[] args) {
ShoppingCart cart=new ShoppingCart();
Product p1=new Product(101,"华硕笔记本","笔记本",4599);
Product p2=new Product(102,"苹果","水果",5.9);
Product p3=new Product(103,"彩电","家电",2799);
Product p4=new Product(104,"秋裤","服装",128);
Product p5=new Product(105,"华为手机","手机",2998);
Product p6=new Product(101,4599);//测试买两件商品的情况
cart.addProduct(p1);
cart.addProduct(p2);
cart.addProduct(p3);
cart.addProduct(p4);
cart.addProduct(p5);
cart.addProduct(p6);
cart.showAll();
System.out.println("############");
boolean flag=cart.deleteProduct(p2.getProductId());
if(flag){
System.out.println("商品编号为:"+p2.getProductId()+"的商品删除成功!");
}else{
System.out.println("删除失败");
}
cart.showAll();
System.out.println("############");
boolean flag2=cart.modifyProduct(p3.getProductId(),2);
if(flag2){
System.out.println("商品编号为:"+p3.getProductId()+"的商品修改成功!");
}else{
System.out.println("修改失败");
}
cart.showAll();
//cart.clearCart();
//cart.showAll();
System.out.println("商品总价钱为:"+cart.totalAllMoney());
}
}
运行效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
相关文章
总结
以上是编程之家为你收集整理的java实现网上购物车程序全部内容,希望文章能够帮你解决java实现网上购物车程序所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250
java怎么实现购物车_java实现网上购物车程序相关推荐
- java web购物车_java web开发——购物车功能实现
之前没有接触过购物车的东东,也不知道购物车应该怎么做,所以在查询了很多资料,总结一下购物车的功能实现. 查询的资料,找到三种方法: 1.用cookie实现购物车: 2.用session实现购物车: 3 ...
- java程序 购物车_用java代码写一个简单的网上购物车程序
1 需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法.2 3 3.写一个购物车类,有添加商品方法.查看订单信息,删 ...
- java购物车 数据库_网上购物车数据库设计(转)
一.概述 网上购物店的数据模型,它主要模式有产品:product,帐户:Account,定单:Order.和产品相关的表有category,product,item, inventory, suppl ...
- java购书管理系统代码_Java Web 网上书店管理系统
[实例简介] Java Web网上书店 J2EE,内含源代码,数据库. [实例截图] [核心代码] 38e595d4-15a3-4def-bf32-4e3b21d8c473 └── 网上书店 ├── ...
- java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解
废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.github.pandafang.tool; import java.io.BufferedOutputStream; i ...
- 用java代码写的段子_网上调侃程序员的段子
1.栈和队列的区别是啥? 吃多了拉就是队列:吃多了吐就是栈 2.世界上最遥远的距离不是生与死,而是你亲手制造的BUG就在你眼前,你却怎么都找不到她. 3.<c++程序设计语言>比<c ...
- java sleep不能使用_java无主窗口GUI程序主线程不能调用sleep(long)方法,会产生异常...
java无主窗口GUI程序主线程不能调用sleep(long)方法,会产生异常. public class fxframe{ public static void main(String[] args ...
- java里程序控制流程_Java语言中的程序流程控制
(1. 流程控制 有三种基本技术可以改变程序的控制流程: A.调用方法 :将导致控制流程离开当前方法,转移到被调用的方法. B.选择 : a. if / else 语句 b. switch语句 ...
- win7 docker java开发环境变量_java – Docker. Spring应用程序.设置和获取环境变量
我正试图将我的Spring应用程序停靠. 问题: 我无法从我的Spring应用程序中获取docker容器中的环境变量. Spring配置(2个选项,单独试用) 也试过java URI dbUrl = ...
最新文章
- vector与结构体联合使用 在磁盘中生成.txt 文件
- 统一沟通成本节约数据表
- 有哪些好用不火的软件?
- Windows常用shell命令大全
- C语言字符输出格式化
- 对几种传递的理解:值传递,地址传递,引用传递
- ArcGIS中栅格数据的金字塔详解
- 杭电多校HDU 6586 String(预处理 + 贪心)题解
- 将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方...
- 【linux运维】linux运维常用工具有哪些?
- 《WINDOWS游戏编程之从零开始》第三章学习笔记
- 详解SSTI模板注入
- Netron - 网络可视化
- 安利3个高清电脑壁纸网站
- L18-python语法基础-数据类型的基本操作(d5)
- 微信小程序预览 word、excel、ppt、pdf 等文件
- junit测试简单代码
- 视频教程-按键精灵手机版解放您的双手自动化教程-Android
- 关于低噪声放大器的ADS设计和仿真
- elementPlus修改主题色以及皮肤设置思路
热门文章
- 广西北海中学2021年高考成绩查询,2021年北海中考录取分数线,历年北海各高中录取分数线排名...
- java 读取二进制文件_用Java读取二进制文件
- vue中使用微信jssdk语音聊天功能,实现语音输入内容的van-field输入框组件
- linux系统定时器中断优先级,请教定时器中断与串口中断优先级配置问题
- 一个列子演示java中弱引用的回收时机
- Golang占位符大全
- 可编程并行接口8255(实验一)
- 如何学好游戏3D引擎编程
- 刚上岸就扫雷 祥生控股前债难还
- 国家电网:企业数字化发展的“3-3-4”框架!