【问题标题】:Calculate the number of items within the a Shopping Cart计算购物车中的商品数量
【发布时间】:2015-09-04 09:28:40
【问题描述】:

我对 Java 的概念很陌生。我使用核心 java 设计了一个购物车应用程序。但我无法获得所需的输出。 这是我的 pojo 类 item.java

package com.shop.data.*;
public class Item
{
    private int Itemid;
    private String category;
    private String name;
    private double price;
      private String size;

    /**
     * @return the category
     */
    public String getCategory() {
        return category;
    }
    public Item(int itemid) {
        super();
        Itemid = itemid;
    }
    /**
     * @param category the category to set
     */
    public void setCategory(String category) {
        this.category = category;
    }

    // -------------------------------------------------------
    //  Create a new item with the given attributes.
    // -------------------------------------------------------
    public Item (String itemcategory ,String itemName, double itemPrice,String itemSize)
    {
        name = itemName;
        price = itemPrice;

        size = itemSize;
        category = itemcategory;
    }
    public Item(String itemName, int itemPrice, String size) {
        // TODO Auto-generated constructor stub
    }
    /**
     * @return the size
     */
    public String getSize() {
        return size;
    }
    /**
     * @param size the size to set
     */
    public void setSize(String size) {
        this.size = size;
    }

    // -------------------------------------------------
    //   Returns the unit price of the item
    // -------------------------------------------------
    public double getPrice()
    {
        return price;
    }
    // -------------------------------------------------
    //   Returns the name of the item
    // -------------------------------------------------
    public String getName()
    {
        return name;
    }
    /**
     * @return the itemid
     */
    public int getItemid() {
        return Itemid;
    }
    /**
     * @param itemid the itemid to set
     */
    public void setItemid(int itemid) {
        Itemid = itemid;
    }
    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @param price the price to set
     */
    public void setPrice(double price) {
        this.price = price;
    }
    public String toString ()
    {

        return (name + "\t" + price +  "\t"+ size +  "\t");
    }


}

主类是 ShopCartTest.java

package com.shop.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

import com.shop.data.*;

public class ShoppingCartTest {
    private static Scanner scan;

    public static void main(String[] args) {
        // *** declare and instantiate a variable cart to be an empty ArrayList
        shopping();
    }

    public static void shopping() {
        ArrayList<Item> ItemCart = new ArrayList<Item>();
        Map<Item, Integer> Quantity = new HashMap<Item, Integer>();
        Item item = null;
        Inventory inventory = null;
        String category = null;
        String itemName;
        String itemSize;
        double itemPrice = 0;
        double totalPrice = 0.0;
        double sum = 0.0;
        int itemquantity;
        scan = new Scanner(System.in);
        String keepShopping = "y";
        System.out.println("****Shopping Cart****");
        do {
            System.out.println("Select Category: ");
            category = scan.nextLine();
            if (category.equals("men") || category.equals("Men")) {

                System.out
                        .println("Available Items: \n1Shirt : 900 \n2.T-Shirt : 700 \n3.Jean: 1500.\n");
                System.out.println("Select Item to Add to your Bag: ");
                itemName = scan.nextLine();
                if (itemName.equals("Shirt") || (itemName.equals("shirt"))) {
                    itemPrice = 900;
                } else if (itemName.equals("T-Shirt")
                        || (itemName.equals("t-shirt"))) {
                    itemPrice = 700;
                } else
                    itemPrice = 1500;
            } else {
                System.out
                        .println("Available Items: \n1.Dress : 250 \n2.Top : 350 \n3.Jean: 1500.\n");
                System.out.println("Select Item to Add to your Bag: ");
                itemName = scan.nextLine();
                // *** create a new item and add it to the cart
                if (itemName.equals("Dress") || (itemName.equals("dress"))) {
                    itemPrice = 250;
                } else if (itemName.equals("Top") || (itemName.equals("top"))) {
                    itemPrice = 350;
                } else
                    itemPrice = 1500;
            }
            System.out.print("Available Sizes \nS \tM \tL: ");
            itemSize = scan.nextLine();
            System.out.print("Enter the quantity: ");
            itemquantity = scan.nextInt();
            item = new Item(category, itemName, itemPrice, itemSize);
            ItemCart.add(item);
            Quantity.put(item, itemquantity); 

            // *** print the contents of the cart object using println
            for (int i = 0; i < ItemCart.size(); i++) {
                Item itm = ItemCart.get(i);
                System.out.println(itm);
            }

            // Print out the results
            System.out.print("Continue shopping (y/n)? ");
            scan.nextLine();
            keepShopping = scan.nextLine();
        } while (keepShopping.equals("y"));

        for (int i = 0; i < ItemCart.size(); i++) {
            Quantity.put(item, itemquantity);
            Item itm = ItemCart.get(i);
            System.out.println(itm);
            totalPrice = itemquantity * itm.getPrice();
            for (int j = 0; i < ItemCart.size(); i++)
                sum += totalPrice;

        }

        System.out.println("The total price is: " + sum);
        System.out.println("Do you wan to proceed to checkout (y/n): ");
        if (scan.nextLine().equals("y")) {
            System.out.println("Thank you for shopping with us!");

        } else {
            shopping();
        }

    }

}

有 4 个 pojo 的购物车、库存、物品、用户。用户必须能够选择多个数量的多个项目。 (为项目创建了一个列表,并为数量创建了:map。其中项目对象是键,数量是值)。用户选择类别、项目,然后选择数量。然后他可以继续结帐。所以当他决定结账时。他必须能够看到购买的各种物品,即(itemName、SIxe、UnitPrice、unitprice*quantity),最后是总价。 我如何实现这一目标?我有点迷路了!

【问题讨论】:

  • 您始终可以为 CartItems 映射用户。并且 CartItems 使用 Inventory 映射到 manyToOne。我建议将用户的购物车项目保存在数据库中,这样如果断电或用户注销,购物车仍然存在。
  • 除了你的问题,试着把你的方法分成更小的方法来增加可读性

标签: java list dictionary cart shopping


【解决方案1】:

一些提示:

  • 您应该使用proper naming conventions(即变量和方法名称以小写字母开头)
  • ItemCart 是多余的,你可以去掉它并使用Quantitykeys
  • Map 提供了一个entrySet 方法,在Quantity 上使用该方法将帮助您列出购物车中的物品(keys)并使用该物品计算总价格(key)价格和数量(价值

【讨论】:

  • 您好,先生,您能给我一个相同的示例代码吗? ?
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 2019-12-09
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 2017-06-05
相关资源
最近更新 更多