zoukankan      html  css  js  c++  java
  • Java购物车大作业01

    任务 姓名
    编码规范、前期调查与功能设计 陈垚嘉
    面向对象设计、PPT制作或博客制作 郑俊佳

    0前期调查

    0.1调查收获

    每个商品都有自己独有的编号、名字、单价等,这些就是商品类中的属性
    加入购物车的每个商品属性是固定的,除了商品数量、单个商品项目小计,表示购物车中商品依赖于商品的属性等信息
    单个商品项目需要从商品类中提取有关商品信息,因此也将依赖于商品类中的信息

    1.UML类图:

    2.系统功能结构图

    3.本系统哪里体现了面向对象的封装性

    例如:Product.java中:

    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;
        }
    }
    

    pubilc、private体现了面向对象的封装性

    商品的属性、获取商品属性的方法、加载购物车商品的方法、购物车商品添加、删除以及修改都可以体现面向对象的封装性

    4.项目包结构与关键代码:

    这样创建项目包结构方便后期功能增添与修改

    主要功能的流程图

    4.1添加商品:

    关键代码:

     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));
            }
        }
    

    4.2删除商品:

    关键代码:

     public boolean deleteProduct(int productId){//删除商品
            if(map.containsKey(productId)){
                map.remove(productId);
                return true;
            }
            return false;
        }
    

    4.3修改购物车商品信息:

    关键代码:

    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;
        }
    

    4.4统计购物车消费总金额:

    关键代码:

      public double totalAllMoney(){//商品总钱数
            double total=0;
            Collection<ProductItem> productItems = map.values();
            Iterator<ProductItem> iterator = productItems.iterator();
            while(iterator.hasNext()){
                ProductItem productItem = iterator.next();
                double money=productItem.totalMoney();
                total+=money;
            }
            return total;
        }
    

    4.5展示消费账单:

    关键代码:

      public void showAll(){//查看订单信息
            Collection<ProductItem> productItems = map.values();
            Iterator<ProductItem> 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());
            }
        }
    
  • 相关阅读:
    java 二维码图片生成工具类
    我的PHP学习过程
    js简单表格操作
    在同一个textarea文本框中设置不同的字体
    基础入门--创建项目
    异常处理方式
    2019年度的瞎几把总结
    WebAPI 返回值
    关于背景色
    使用echarts进行画图
  • 原文地址:https://www.cnblogs.com/jioky/p/15367170.html
Copyright © 2011-2022 走看看