Ejercicio C02 - La estantería
Consigna
Crear un proyecto de tipo biblioteca de clases que contenga la clase Producto.

- Todos sus atributos son privados.
- Posee sólo un constructor de instancia.
- El método
GetMarca, retornará el valor correspondiente al atributomarca. - También poseerá el atributo
codigoDeBarras, el cual se publicará sólo a través de la conversión explícita nombrada más adelante. - El método de clase (estático)
MostrarProductoes público y retornará una cadena detallando los atributos de la clase. - Posee las siguientes sobrecargas de operadores:
explicit: Realizará la conversión de un objetoProductoastring. Sólo retornará el atributocodigoDeBarrasdel producto.== (Producto, Producto): Retornarátruesi las marcas y códigos de barra son iguales,falsecaso contrario.== (Producto, string): Retornarátruesi la marca del producto coincide con la cadena pasada como argumento,falsecaso contrario.
Generar la clase Estante.

- Posee dos atributos privados. Uno será un entero que indicará la ubicación del estante y el otro es un array de tipo
Producto. - El constructor de instancia privado será el único que incializará el array. La sobrecarga pública del constructor inicializará la ubicación del estante, recibiendo como parámetros la capacidad y la ubicación. Reutilizar código.
- El método público
GetProductos, retornará el array de productos. - El método público de clase (estático)
MostrarEstante, retornará una cadena con toda la información del estante incluyendo el detalle de cada uno de sus productos. Reutilizar código. - Posee las siguientes sobrecargas de operadores:
==: Retornarátruesi es que el producto ya se encuentra en el estante,falsecaso contrario.+: Retornarátruey agregará el producto si el estante posee capacidad de almacenar al menos un producto más y dicho producto no se encuentra en el estante,falsecaso contrario. Reutilizar código.-: Retornará un estante sin el producto, siempre y cuando el producto se encuentre en el listado. Reutilizar código.
Crear un proyecto de consola y agregar en el método Main el siguiente código:
// Creo un estante
Estante estante = new Estante(3, 1);
// Creo 4 productos
Producto p1 = new Producto("Pepsi", "PESDS97413", (float)18.5);
Producto p2 = new Producto("Coca-Cola", "COSDS55752", (float)11.5);
Producto p3 = new Producto("Manaos", "MASDS51292", (float)20.5);
Producto p4 = new Producto("Crush", "CRSDS54861", (float)10.75);
// Agrego los productos al estante
if (estante + p1)
{
Console.WriteLine("Agregó {0} {1} {2}", p1.GetMarca(), (string)p1, p1.GetPrecio());
}
else
{
Console.WriteLine("¡NO agregó {0} {1} {2}!", p1.GetMarca(), (string)p1, p1.GetPrecio());
}
if (estante + p1)
{
Console.WriteLine("Agregó {0} {1} {2}", p1.GetMarca(), (string)p1, p1.GetPrecio());
}
else
{
Console.WriteLine("¡NO agregó {0} {1} {2}!", p1.GetMarca(), (string)p1, p1.GetPrecio());
}
if (estante + p2)
{
Console.WriteLine("Agregó {0} {1} {2}", p2.GetMarca(), (string)p2, p2.GetPrecio());
}
else
{
Console.WriteLine("¡NO agregó {0} {1} {2}!", p2.GetMarca(), (string)p2, p2.GetPrecio());
}
if (estante + p3)
{
Console.WriteLine("Agregó {0} {1} {2}", p3.GetMarca(), (string)p3, p3.GetPrecio());
}
else
{
Console.WriteLine("¡NO agregó {0} {1} {2}!", p3.GetMarca(), (string)p3, p3.GetPrecio());
}
if (estante + p4)
{
Console.WriteLine("Agregó {0} {1} {2}", p4.GetMarca(), (string)p4, p4.GetPrecio());
}
else
{
Console.WriteLine("¡NO agregó {0} {1} {2}!", p4.GetMarca(), (string)p4, p4.GetPrecio());
}
// Muestro todo el estante
Console.WriteLine();
Console.WriteLine("<------------------------------------------------->");
Console.WriteLine(Estante.MostrarEstante(estante));
Resolución
| Video | Código |
|---|