typestar

Reposición de inventario en Visual Basic

Un programa completo: filtrar stock bajo, ponerle precio al pedido, totalizarlo.

' Marca los artículos de bodega que van bajos y cotiza el resurtido.

Module InventoryReorder
    Structure Item
        Public Name As String
        Public OnHand As Integer
        Public Minimum As Integer
        Public UnitCost As Double
    End Structure

    Sub Main()
        Dim shelf = {
            New Item With {.Name = "bolts", .OnHand = 40,
                           .Minimum = 100, .UnitCost = 0.08},
            New Item With {.Name = "hinges", .OnHand = 220,
                           .Minimum = 80, .UnitCost = 1.15},
            New Item With {.Name = "handles", .OnHand = 12,
                           .Minimum = 50, .UnitCost = 2.4}
        }

        Dim orders = shelf.
                Where(Function(i) i.OnHand < i.Minimum).
                Select(Function(i) New With {
                    .Name = i.Name,
                    .Units = i.Minimum * 2 - i.OnHand,
                    .Cost = .Units * i.UnitCost
                }).ToList()

        For Each order In orders
            Console.WriteLine(
                $"{order.Name,-10}{order.Units,5}  {order.Cost,8:F2}")
        Next
        Console.WriteLine($"total: {orders.Sum(Function(o) o.Cost):F2}")
    End Sub
End Module

Cómo funciona

  1. Un literal de arreglo de New Item With {...} puebla el almacén.
  2. El .Cost del tipo anónimo reutiliza su propio miembro .Units.
  3. Sum con una lambda totaliza el pedido en una sola llamada.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
35
Caracteres a escribir
864
Tokens
205
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 164 segundos.

Escribe este fragmento

Paso 2 de 2 en Bis; paso 29 de 29 en Fundamentos del lenguaje.

← Anterior