删除简单库存的功能

时间:2016-01-19 10:25:02

标签: c# windows visual-studio-2012

我有一个简单的库存应用程序,您可以添加,查看和删除产品。目前我已经完成了添加功能和查看功能,但只留下了我不确定的删除功能。 (主程序案例3)

class Inventory
{
   Product []items;
    int maxSize;
    int size;

    public Inventory(int in_maxSize)
    {
        maxSize = in_maxSize;
        size = 0;
        items = new Product[maxSize];
    }

    public bool AddProduct(Product in_Product)
   {
        if(getSize()<maxSize)
        {
            items[size] = in_Product;
            size++;
            return true;
        }
        else
        {
            return false;
        }
    }

    public int getSize()
    {
        return size;
    }
    public Product getProduct(int index)
    {
        return items[index];
    }
  }
}

这是我的产品类:

 class Product
{
    private string name;
    private int itemNumber;
    private int unitsInStock;
    private double price;
    private double value;

    public Product()
    {

    }

    public Product(string in_name, int in_itemNumber, int in_unitsInStock, double in_price)
    {
        name = in_name;
        itemNumber = in_itemNumber;
        unitsInStock = in_unitsInStock;
        price = in_price;
    }
    public double getValueOfInventory()
    {
        value = unitsInStock * price;
        return this.value;
    }
    public int getItemNumber()
    {
        return this.itemNumber;
    }
    public string getName()
    {
        return this.name;
    }
    public int getUnitsInStock()
    {
        return this.unitsInStock;
    }
    public double getPrice()
    {
        return this.price;
    }
    public void setItemNumber(int in_itemNumber)
    {
        itemNumber = in_itemNumber;
    }
    public void setName(string in_name)
    {
        name = in_name;
    }
    public void setUnitsInStock(int in_unitsInStock)
    {
        unitsInStock = in_unitsInStock;
    }
     public void setPrice(double in_price)
    {
        price = in_price;
      }
    }
  }

这是我的主要计划:

     class Program
     {
    static void Main(string[] args)
    {
        Inventory myInventory = new Inventory(100);
        Product myProduct = new Product();
        myProduct.setItemNumber(1000);
        myProduct.setName("Pen");
        myProduct.setPrice(1.25);
        myProduct.setUnitsInStock(50);
        myInventory.AddProduct(myProduct);
        Product myProduct1 = new Product("Paper", 2000, 5000, 12.85);
        myInventory.AddProduct(myProduct1);


        Product tempProduct;
        int x = 0;

        do
        {

            Console.WriteLine("1.Add product");
            Console.WriteLine("2.View product");
            Console.WriteLine("3.Delete product");
            Console.WriteLine("4.Exit the Application");
            Console.WriteLine("------------------");


            x = Convert.ToInt32(Console.ReadLine());



            switch (x)
            {
                case 1:




                    Console.Write("Item number\t\t:");
                    int a=Convert.ToInt32(Console.ReadLine());

                    Console.Write("Name\t\t\t:");
                    string b=Convert.ToString(Console.ReadLine());

                    Console.Write("Price\t\t\t:");
                    double c=Convert.ToDouble(Console.ReadLine());

                    Console.Write("Units in stocks\t\t:");
                    int d=Convert.ToInt32(Console.ReadLine());



        Product myProduct2 = new Product(b,a,d,c);
        myInventory.AddProduct(myProduct2);





      //  Product myProduct1 = new Product("Paper", 2000, 5000, 12.85);
      //  myInventory.AddProduct(myProduct1);

                    /*Console.Write("Item number\t\t:");
                    ItemNo = Convert.ToInt32(Console.ReadLine());

                    Console.Write("Name\t\t\t:");
                    Name = Convert.ToString(Console.ReadLine());

                    Console.Write("Price\t\t\t:");
                    Price = Convert.ToDouble(Console.ReadLine());

                    Console.Write("Units in stocks\t\t:");
                    UnitsInStocks = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine("------------------");*/
                    break;

                case 2:

                    for (int i = 0; i < myInventory.getSize(); i++)
                    {

                        tempProduct = myInventory.getProduct(i);
                        Console.WriteLine("Item number\t\t:" + tempProduct.getItemNumber());
                        Console.WriteLine("Name\t\t\t:" + tempProduct.getName());
                        Console.WriteLine("Price\t\t\t:" + tempProduct.getPrice());
                        Console.WriteLine("Units in stocks\t\t:" + tempProduct.getUnitsInStock());
                        Console.WriteLine("------------------");
                    }
                    break;

                case 3:
                    int j;
                    Console.WriteLine("Please enter the item id for the items that you want to delete");
                    j = Convert.ToInt32(Console.ReadLine());
                    if (j == a)
                    {


                    break;

                case 4:

                    Environment.Exit(0);

                    break;

                default:
                    break;

            }



        }
        while (x != 4);
   }

   }
}

在我的主程序中,我将案例3撤消,因为这是删除功能部分,  我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

这是一种简单的方法。将数组替换为产品列表:

class Inventory
{
    List<Product> items;
    int maxSize;

    public Inventory(int in_maxSize)
    {
        maxSize = in_maxSize;
        items = new List<Product>();
    }

    public bool AddProduct(Product in_Product)
    {
        if(items.Count < maxSize)
        {
            items.Add(in_Product);
            return true;
        }
        else
        {
            return false;
        }
    }

    public Product getProduct(int index)
    {
        return items[index];
    }

    public void removeProduct(int index)
    {
        items.removeAt(index);
    }
}

在您的切换调用removeProduct方法中删除您传递的位置的产品。