购物车计划 [英] Shopping cart program

查看:141
本文介绍了购物车计划的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在处理我的购物车计划,但是我一直在输入itemTax以及在购物车中添加新商品时遇到问题,我不知道我做错了什么。

I've been working on my shopping cart program, but I keep having problems with entering itemTax in and with adding new items into cart and I don't know what I've done wrong.

class Item:

class Item:

public class Item {

private int id;
private String name;
private double price;
private String description;
private int quantity;
private double tax;

public Item (int itemID, String itemName, double itemPrice, String itemDescription, int itemQuantity, double itemTax){
    id = itemID;
    name = itemName;
    price = itemPrice;
    description = itemDescription;
    quantity = itemQuantity;
    tax = itemTax;
}

public int getID(){
    return id;
}

public String getName(){
    return name;
}

public double getPrice(){
    return price;
}

public String getDescription(){
    return description;
}

public int getQuantity(){
    return quantity;
}

public double getTax(){
    return tax;
}

}

类购物车:

import java.util.Scanner;

public class Cart {

private int itemCount;
private double totalPrice;
private static int capacity;
private static Item[] cart = new Item[capacity];

public Cart(){
    itemCount = 10;
    totalPrice = 0.0;
    capacity = 0;
}

public void add(int itemID, String itemName, double itemPrice, String itemDescription, int itemQuantity, double itemTax){
    Item item = new Item(itemID, itemName, itemPrice, itemDescription, itemQuantity, itemTax);
    totalPrice += (itemPrice * itemQuantity);
    cart[itemCount] = item;
    itemCount += 1;
    if(itemCount==capacity)
    {
        increaseSize();
    }
}

public static void remove(String itemName){
    Scanner s = new Scanner(System.in);

    for (int i = 0; i < cart.length; i++) {
        Item remove = (Item) cart.get(i);
        if (itemName.equals(remove.getName())) {
            cart.remove(i);

        }
    }
    System.out.println("\n" + "Item " + itemName + " wasn't found.");
}

private void increaseSize()
{
    Item[] item = new Item[capacity+5];
    for(int i=0; i < capacity; i++)
    {
        item[i] = cart[i];
    }
    cart = item; 
    item = null;
    capacity = cart.length;
}

public static void prLine (int itemID, String itemName, int itemQuantity, double itemPrice, double total, double itemTax) {
    System.out.printf("\n%-10.10d %30s %10.2f %10d %10.2f", itemID, itemName, itemPrice, itemQuantity, itemTax, total);
}   

public static void prTitles () {
    System.out.printf("\n%-10s 30% %10s %10s %10s %10s", "ID", "Item", "Price", "Quantity", "Tax", "Total");
}



}

class Shop:

class Shop:

import java.util.ArrayList;
import java.util.Scanner;

public class Shop {
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    ArrayList<Item> cart = new ArrayList<Item>();

    Item item;
    int itemID;
    String itemName;
    double itemPrice;
    String itemDescription;
    int itemQuantity;
    double itemTax;
    int ch;
    String choice;

    Cart shoppingCart = new Cart();

    while (true) {
        System.out.println("Menu:");
        System.out.println("0) Exit " + "\n"
                + "1) Add item in shopping cart" + "\n"
                + "2) Remove item from shpping cart");
        ch = sc.nextInt();

        switch (ch) {
        case 0:
            System.out.println("\n" + "Good bye!");
            System.exit(0);

        case 1:
            System.out.println("Enter item ID: ");
            itemID = sc.nextInt();

            System.out.println("Enter item name: ");
            itemName = sc.next();

            System.out.println("Enter item price: ");
            itemPrice = sc.nextDouble();

            System.out.println("Enter short description of item: ");
            itemDescription = sc.next();

            System.out.println("Enter quantity: ");
            itemQuantity = sc.nextInt();

            System.out.println("Enter tax rate:");
            itemTax = sc.nextDouble();


            shoppingCart.add(itemID, itemName, itemPrice, itemDescription, itemQuantity,       itemTax);

            break;

        case 2:
            System.out.println("Enter name of the item that you would like to remove: ");
            choice = sc.next();
            shoppingCart.remove(choice);

            break;
        }

    }
}

}


推荐答案

这段代码看起来......可疑......

This block of code looks...suspect...

private static Item[] cart = new Item[capacity];

public Cart(){
    itemCount = 10;
    totalPrice = 0.0;
    capacity = 0;
}

您没有提供其他方法来实例化购物车,所以每次你新推出的时候,你都有一个大小为0的购物车。没有什么可以添加到那个。

You provide no other way to instantiate the Cart, so every time you new one up, you have a cart of size 0. Nothing could be added to that.

我愿意打赌,在语义上,你的意思是做这样的事情:

I'm willing to bet that, semantically, you mean to do something like this:

private Item[] cart;

public Cart(){
    itemCount = 0;
    totalPrice = 0.0;
    capacity = 10;
    cart = new Item[capacity];
}

您现在有10件商品,应在添加方法中使用itemCount 代替 capacity 将元素移入适当的地方。

You have a capacity of ten items now, and itemCount should be used in place of capacity in your add method to move the elements into their appropriate spot.

这篇关于购物车计划的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆