我希望得到与特定产品相关的价格

时间:2017-03-04 21:22:16

标签: c#

所以我有这个代码,我的问题是我想找到项目的代码(codigo)什么是产品和价格(precio)。

有点像我放'01'它会在屏幕上显示它是什么产品以及它的价格是多少,然后将它总结到购物清单

另一个问题是它不能进行模块化编程(是的,我知道..)原因是对于一个朋友而他的techer是有点傻瓜。但如果是必要的,那么它是模块化的,我会稍后尝试改变它。

我只需要了解如何使用商品代码

获取产品名称和价格

我道歉,因为代码是西班牙语

namespace CodigoSupermercado
{
    public struct Lista
    {
        public double precio;
        public string producto;
        public int codigo;
    }
    class Program
    {
        static void Main(string[] args)
        {
            Lista[] v;
            v = new Lista[10];
            v[0].producto = "aceite mezcla";    v[0].precio = 6.00;    v[0].codigo = 01;
            v[1].producto = "arroz";            v[1].precio = 2.00;    v[1].codigo = 02;
            v[2].producto = "azucar";           v[2].precio = 3.00;    v[2].codigo = 03;
            v[3].producto = "caraotas";         v[3].precio = 6.00;    v[3].codigo = 04;
            v[4].producto = "carne de primera"; v[4].precio = 15.00;   v[4].codigo = 05;
            v[5].producto = "carne de segunda"; v[5].precio = 10.00;   v[5].codigo = 06;
            v[6].producto = "harina precocida"; v[6].precio = 2.50;    v[6].codigo = 07;
            v[7].producto = "leche en polvo";   v[7].precio = 12.00;   v[7].codigo = 08;
            v[8].producto = "pasta";            v[8].precio = 2.50;    v[8].codigo = 09;
            v[9].producto = "pollo entero";     v[9].precio = 10.00;   v[9].codigo = 10;

            Console.WriteLine("Bienvenido al Sistema de Compras");
            Console.WriteLine("ELiga los productos a facturar: ");
            Console.WriteLine("| Cod |      Producto    |     Precio     |");
            Console.WriteLine("|  01 |Aceite Mezcla     |      6.00      |");
            Console.WriteLine("|  02 |Arroz             |      2.00      |");
            Console.WriteLine("|  03 |Azucar            |      3.00      |");
            Console.WriteLine("|  04 |Caraotas          |      6.00      |");
            Console.WriteLine("|  05 |Carne de Primera  |     15.00      |");
            Console.WriteLine("|  06 |Carne de Segunda  |     10.00      |");
            Console.WriteLine("|  07 |Harina Precocida  |      2.50      |");
            Console.WriteLine("|  08 |Leche en Polvo    |     12.50      |");
            Console.WriteLine("|  09 |Pasta             |      2.50      |");
            Console.WriteLine("|  10 |Pollo Entero      |     10.00      |");
            Console.WriteLine("");
            Console.WriteLine("");

            /*here i was thinkin' making a while loop that ask after the input
            if another item is gonna be purchased, till (next != 0)*/
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您正在使用数组。数组具有固定的长度,这使得无法向其添加可变数量的元素,并且仅在您事先知道确切数字时才有效。改为使用列表

var v = new List<Lista>();
v.Add(element);

然后你新创建的数组只包含空条目!里面没有Lista个对象。你必须像这样添加它们:

v[0] = new Lista { producto = "aceite mezcla", precio = 6.00, codigo = 01 };

如果使用列表,则会变为

v.Add(new Lista { producto = "aceite mezcla", precio = 6.00, codigo = 01 });

在这两种情况下(数组或列表),你可以像这样简单地打印输出:

Console.WriteLine("| Cod |      Producto    |     Precio     |");
foreach (Lista l in v) {
    Console.WriteLine($"| {l.codigo:00,3} |{l.producto, 18}|{l.precio:n2,-11}     |");
}

另见:

现在,针对您的问题:您可以使用LINQ来搜索产品,但首先您需要将用户的输入转换为stringint }。

Console.WriteLine("Codigo = ");
string input = Console.ReadLine();
int codigo;
if (Int32.TryParse(input, out codigo)) {
    Lista item = v.FirstOrDefault(l => l.codigo == codigo);
    if (item != null) {
        Console.WriteLine($"{item.producto} {item.precio:n2}");
    }
}

答案 1 :(得分:0)

所以,我会在这里使用Listas List(听起来有点奇怪......)。列表允许您动态添加,存储以及稍后删除特定类型的对象(例如,此示例中为string,int或Lista)。此外,我们可以通过指定条件在列表中查找项目。

static void Main(string[] args)
    {
        List<Lista> products = new List<Lista>();

        products.Add(new Lista() { codigo = 01, precio = 6.00, producto = "aceite mezcla" });
        products.Add(new Lista() { codigo = 02, precio = 2.00, producto = "arroz" });

        //Print out 'products'
        foreach (Lista l in products)
        {
            Console.WriteLine(string.Format("{0}\t|{1}\t|{1}", l.codigo, l.producto, l.precio));
        }

        int consoleInput;
        if(int.TryParse(Console.ReadLine(), out consoleInput))
        {
            Lista target = products.Find((lista) => lista.codigo == consoleInput);
            if(traget != null)
                Console.WriteLine(target.codigo + "\t" + target.producto + "\t" + target.precio);
        }

        Console.ReadLine();

    }

    public struct Lista
    {
        public double precio;
        public string producto;
        public int codigo;
    }

我们在这里做的是,首先声明我们的列表初始化,然后我们将这些产品添加到我们的列表中(至少我认为是在谈论某种产品,总是更好地想到一个好名字一个变量)。然后我们获取控制台的输入,并且 - 如果它是一个整数 - 进一步处理它。我们在电话列表中搜索具有属性codigo == consoleInput的项目,表示具有相同有氧运动的项目,以及用户输入控制台的项目。之后,我们将其打印出来。