Está en la página 1de 4

import java.util.

Scanner;
import java.util.HashMap;
import java.util.Map;
/*
* Recomendaciones Generales:
*
* -> El método run() funcionará como nuestro método principal
* -> No declarar objetos de tipo Scanner, utilizar el método read() para
solicitar datos al usuario.
* -> Si requiere utilizar varias clases, estas NO deben ser tipo public.
*/
class Reto3{

/**
* Este debe ser el único objeto de tipo Scanner en el código
*/
private final Scanner scanner = new Scanner(System.in);

/**
* Este método es usado para solicitar datos al usuario
* @return Lectura de la siguiente linea del teclado
*/
public String read(){
return this.scanner.nextLine();
}

/**
* método principal
*/
public void run(){
/*
solución propuesta
*/
BasedeDatosProductos listaProductos = new BasedeDatosProductos();

String operacion = read();


String[] input = read().split(" ");

Producto producto = new Producto(Integer.parseInt(input[0]),


input[1],
Double.parseDouble(input[2]),
Integer.parseInt(input[3]));

if("AGREGAR".equals(operacion) && !
listaProductos.verificarExistencia(producto)){
listaProductos.agregar(producto);
listaProductos.generarInforme(producto);
}else if ("BORRAR".equals(operacion) &&
listaProductos.verificarExistencia(producto)){
listaProductos.borrar(producto);
listaProductos.generarInforme(producto);
}else if("ACTUALIZAR".equals(operacion) &&
listaProductos.verificarExistencia(producto)){
listaProductos.actualizar(producto);
listaProductos.generarInforme(producto);
}else{
System.out.println("ERROR");
}
}

class BasedeDatosProductos{

private Map<Integer,Producto> listaProductos = new HashMap<Integer,


Producto>();

public BasedeDatosProductos() {
listaProductos.put(1, new Producto(1, "Manzanas", 8000.0, 65));
listaProductos.put(2, new Producto(2, "Limones", 2300.0, 15));
listaProductos.put(3, new Producto(3, "Granadilla", 2500.0, 38));
listaProductos.put(4, new Producto(4, "Arandanos", 9300.0, 55));
listaProductos.put(5, new Producto(5, "Tomates", 2100.0, 42));
listaProductos.put(6, new Producto(6, "Fresas", 4100.0, 3));
listaProductos.put(7, new Producto(7, "Helado", 4500.0, 41));
listaProductos.put(8, new Producto(8, "Galletas", 500.0, 8));
listaProductos.put(9, new Producto(9, "Chocolates", 3500.0, 806));
listaProductos.put(10, new Producto(10, "Jamon", 15000.0, 10));

public void agregar(Producto producto){


listaProductos.put(producto.getCodigo(), producto);
}
public void borrar(Producto producto){
listaProductos.remove(producto.getCodigo());
}
public void actualizar(Producto producto){
listaProductos.replace(producto.getCodigo(), producto);
}
public boolean verificarExistencia(Producto producto){
return listaProductos.containsKey(producto.getCodigo());
}

public Producto productoMayor(){


Producto producto = listaProductos.values().iterator().next();
for (Producto pro: listaProductos.values()){
if(pro.getPrecio() > producto.getPrecio()){
producto = pro;
}

}
return producto;

public void generarInforme(Producto producto){


String[] productos = new String[3];

for (int i = 0; i < 3; i++) {


Producto pro = productoMayor();
productos[i] = pro.getNombre();
listaProductos.remove(pro.getCodigo());
}
System.out.println(productos[0] + " " + productos[1] + " " + productos[2]);

class Producto {

private int codigo;


private String nombre;
private double precio;
private int inventario;

public Producto(int codigo, String nombre, double precio, int inventario) {


this.codigo = codigo;
this.nombre = nombre;
this.precio = precio;
this.inventario = inventario;
}

public int getCodigo() {


return codigo;
}

public void setCodigo(int codigo) {


this.codigo = codigo;
}

public String getNombre() {


return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public double getPrecio() {


return precio;
}

public void setPrecio(double precio) {


this.precio = precio;
}

public int getInventario() {


return inventario;
}

public void setInventario(int inventario) {


this.inventario = inventario;
}
}

También podría gustarte