Java - Ayuda a corregir o ver que me falta en el codigo

 
Vista:
Imágen de perfil de Seb

Ayuda a corregir o ver que me falta en el codigo

Publicado por Seb (1 intervención) el 30/09/2022 18:23:15
tarea-de-progra

//estuve avanzando el codigo lo pueden revisar por favor
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

class Producto {
public String Codigo;
public String Nombre;
public double PrecioCompra;
public double PrecioVenta;
public int Stock;

public Producto(){}
public Producto(String codigo, String nombre, double precioCompra, double precioVenta, int stock){
this.Codigo = codigo;
this.Nombre = nombre;
this.PrecioCompra = precioCompra;
this.PrecioVenta = precioVenta;
this.Stock = stock;
}

public String toString() {
return "Nombre del producto: " + this.Nombre + ", Codigo: " + this.Codigo + ", precio de compra: " + this.PrecioCompra + ", precio de venta: " + this.PrecioVenta + ", Stock: " + this.Stock;
}
}

class Almacen {
public double AreaTechada;
public double AreaTotal;
public String Nombre;
public String HoraCierre;
public String HoraApertura;
private List<Producto> productos;

public Almacen(){};
public Almacen(double areaTechada, double areaTotal, String nombre, String horaApertura, String horaCierre) {
this.AreaTechada = areaTechada;
this.AreaTotal = areaTotal;
this.Nombre = nombre;
this.HoraApertura = horaApertura;
this.HoraCierre = horaCierre;
this.productos = new LinkedList<>();
}

public List<Producto> getProductos() {
return this.productos;
}
}

public class almacenes {
public static void main(String[] args) {
Almacen almacen1 = new Almacen(12.5, 15.5, "Almacen 1", "18:20", "21:10");


System.out.println(almacen1.Nombre + " fecha: " + almacen1.HoraApertura);

Almacen almacen2 = new Almacen();

Scanner scn = new Scanner(System.in);
Scanner scn2= new Scanner(System.in);

String option = "";

do {
Scanner scnOption = new Scanner(System.in);
System.out.println("ingrese una opción");
option = scnOption.nextLine();

switch (option) {
case "agregar producto":
for (int i = 0; i < 5; i++) {
almacen1.getProductos().add(new Producto("1120", "producto", 82.3, 100.5, 10));
}
break;
case "listar producto":

Scanner scnProductoLista = new Scanner(System.in);

String almacenOpt = scnProductoLista.nextLine();

if (almacenOpt.equals("uno")) {
System.out.println("listado del almacen 1");
for (Producto producto: almacen1.getProductos()) {
System.out.println(producto.toString());
}
}


break;
case "exit":
break;
default:
option = "exit";
}


} while (option.equals("exit"));

}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda a corregir o ver que me falta en el codigo

Publicado por Tom (1831 intervenciones) el 30/09/2022 20:17:50
Así, de entrada,

public Producto(){}
public Almacen(){}
Sobran, no debes crear estos objetos sin sus atributos.

public class Almacenes()

private List<Producto> productos;
public List<Producto> getProductos() {
return this.productos;
}
Con el "getter" public estás anulando el atributo private de la lista ... no tiene mucho sentido, no te líes, haz el atributo público y quita el getter ... o implementa métodos en almacén para añadir, borrar u obtener un producto (un lío, vamos).

Lo que te falta ... creo que tú mismo lo sabes ... yo ahí veo muy poco código :D

El enunciado anuncia un mal diseño. Parece ser que un tipo de producto solamente puede estar en un almacén ... (O que un tipo de producto "Manzana" para el almacén 1 sería algo distinto que otro tipo "Manzana" para el almacén 2)
Parece más normal que el producto sea único y su stock total esté distribuido entre los 3 almacenes (en este caso, cada almacén debería guardar el stock de cada producto, y el stock total del producto sería la suma de lo que hay en todos los almacenes).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar