I have these two classes. Briefly, to the shelf I have to add a bottle ... weight, quantity are variables that I do not yet define ... for that matter they do not matter. The issue is that I find the shelf but it does not add the bottle. I think I'm wrong in the message to add and I do not realize it. Does anyone realize the error?
Any clarification, give me notice ...
public class Almacen {
private ArrayList<Frasco>frascos;
private ArrayList<Estante>estantes;
public Almacen() {
frascos = new ArrayList<Frasco>();
estantes = new ArrayList<Estante>();
}
public void agregaFrasco() {
Scanner entra = new Scanner(System.in);
System.out.println("INGRESE EL CODIGO DEL FRASCO");
int cdf = entra.nextInt();
Frasco fra = this.buscaFrasco(cdf);
if ( fra != null)
System.out.println("EL FRASCO EXISTE");
else {
System.out.println("INGRESE EL PESO");
float pe = entra.nextFloat();
System.out.println("INGRESE LA DENSIDAD DEL PRODUCTO");
Float de = entra.nextFloat();
System.out.println("INGRESE LA MARCA");
String ma = entra.next();
Frasco fras = new Frasco(cdf, pe, de, ma);
frascos.add(fras);
System.out.println("EL FRASCO SE AGREGO CORRECTAMENTE");
}
}
public void agregaEstante() {
Scanner entra = new Scanner(System.in);
System.out.println("INGRESE EL NUMERO DEL ESTANTE");
int nd = entra.nextInt();
Estante esta = this.buscaEstante(nd);
if(esta != null)
System.out.println("ESTANTE YA CARGADO");
else {
System.out.println("INGRESE LA CANTIDAD DE FRASCOS QUE SOPORTA EL ESTANTE");
int cd = entra.nextInt();
System.out.println("INGRESE EL PESO MAXIMO");
float d = entra.nextFloat();
Estante es = new Estante(nd, cd, d);
estantes.add(es);
System.out.println("SE AGREGO UN ESTANTE NUEVO");
}
}
public void agregaFrascosAlEstante() {
Scanner entra = new Scanner(System.in);
System.out.println("INGRESE EL NUMERO DE ESTANTE");
int ne = entra.nextInt();
int b = 0;
while(b < estantes.size() && !(estantes.get(b).sosElEstante(ne)))
b++;
//Estante estan = this.buscaEstante(ne);
//if(estan != null) {
System.out.println(estantes.get(b).darCantidadDeFrascos());
System.out.println(estantes.get(b).darNumeroDeEstante());
System.out.println(estantes.get(b).darPesoMaximo());
if(b < estantes.size()) {
System.out.println("QUIERE AGREGAR UN FRASCO AL ESTANTE?");
System.out.println("INGRESE 1 O 0 PARA SALIR");
int op = entra.nextInt();
do {
System.out.println("INGRESE EL CODIGO DEL FRASCO");
int cd = entra.nextInt();
Frasco fra = this.buscaFrasco(cd);
if(fra != null) {
Estante estan = estantes.get(b); //<<<
estan.agregaFrasco(fra); //<<< problem!
//estantes.get(b).agregaFrasco(fra); //<<<
//estan.agregaFrasco(fra); //<<<
System.out.println("SE AGREGO UN FRASCO AL ESTANTE ok");
}
else
System.out.println("EL FRASCO NO EXISTE");
}while(op != 0);
}
else
System.out.println("ESE ESTANTE NO EXISTE");
}
public class Estante {
private int numeroDeEstante;
private int cantidadDeFrascos;
private float pesoMaximo;
private ArrayList <Frasco>frascos;
public Estante(int nde, int cdf, float pm) {
numeroDeEstante = nde;
cantidadDeFrascos = cdf;
pesoMaximo = pm;
}
public void agregaFrasco(Frasco fr) {
frascos.add(fr);
}
The complete code is: I think I'm mishandling the way I add a jar to a shelf ...
import java.util.*;
public class Empresa {
public static void main(String[] args) {
Almacen esta = new Almacen();
Scanner entra = new Scanner(System.in);
entra.useDelimiter(System.getProperty("line.separator"));
int opc = 0;
do {
System.out.println("1- AGREGA FRASCO");
System.out.println("6- agrega un estante");
System.out.println("7- AGREGA UN FRASCO A UN ESTANTE");
opc = entra.nextInt();
switch(opc) {
case 1:{
esta.agregaFrasco();
break;
}
case 6:{
esta.agregaEstante();;
break;
}
case 7:{
esta.agregaFrascosAlEstante();;
break;
}
}
}while(opc != 0);
}
}
import java.util.*;
public class Almacen {
private ArrayList<Frasco>frascos;
private ArrayList<Estante>estantes;
public Almacen() {
frascos = new ArrayList<Frasco>();
estantes = new ArrayList<Estante>();
}
public void agregaFrasco() {
Scanner entra = new Scanner(System.in);
System.out.println("INGRESE EL CODIGO DEL FRASCO");
int cdf = entra.nextInt();
Frasco fra = this.buscaFrasco(cdf);
if ( fra != null)
System.out.println("EL FRASCO EXISTE");
else {
System.out.println("INGRESE EL PESO");
float pe = entra.nextFloat();
System.out.println("INGRESE LA DENSIDAD DEL PRODUCTO");
Float de = entra.nextFloat();
System.out.println("INGRESE LA MARCA");
String ma = entra.next();
Frasco fras = new Frasco(cdf, pe, de, ma);
frascos.add(fras);
System.out.println("EL FRASCO SE AGREGO CORRECTAMENTE");
}
}
public void agregaEstante() {
Scanner entra = new Scanner(System.in);
System.out.println("INGRESE EL NUMERO DEL ESTANTE");
int nd = entra.nextInt();
Estante esta = this.buscaEstante(nd);
if(esta != null)
System.out.println("ESTANTE YA CARGADO");
else {
System.out.println("INGRESE LA CANTIDAD DE FRASCOS QUE SOPORTA EL ESTANTE");
int cd = entra.nextInt();
System.out.println("INGRESE EL PESO MAXIMO");
float d = entra.nextFloat();
Estante es = new Estante(nd, cd, d);
estantes.add(es);
System.out.println("SE AGREGO UN ESTANTE NUEVO");
}
}
public void agregaFrascosAlEstante() {
Scanner entra = new Scanner(System.in);
System.out.println("INGRESE EL NUMERO DE ESTANTE");
int ne = entra.nextInt();
int b = 0;
while(b < estantes.size() && !(estantes.get(b).sosElEstante(ne)))
b++;
//Estante estan = this.buscaEstante(ne);
//if(estan != null) {
System.out.println(estantes.get(b).darCantidadDeFrascos());
System.out.println(estantes.get(b).darNumeroDeEstante());
System.out.println(estantes.get(b).darPesoMaximo());
if(b < estantes.size()) {
System.out.println("QUIERE AGREGAR UN FRASCO AL ESTANTE?");
System.out.println("INGRESE 1 O 0 PARA SALIR");
int op = entra.nextInt();
do {
System.out.println("INGRESE EL CODIGO DEL FRASCO");
int cd = entra.nextInt();
Frasco fra = this.buscaFrasco(cd);
if(fra != null) {
Estante estan = estantes.get(b);
//estan.agregandoFrasco(fra); <<
//estantes.get(b).agregaFrasco(fra); << esta comentado, ac'a esta el error
//estan.agregaFrasco(fra); <<
System.out.println("SE AGREGO UN FRASCO AL ESTANTE CON EXITO");
}
else
System.out.println("EL FRASCO NO EXISTE");
}while(op != 0);
}
else
System.out.println("ESE ESTANTE NO EXISTE");
}
import java.util.*;
public class Estante {
private int numeroDeEstante;
private int cantidadDeFrascos;
private float pesoMaximo;
private ArrayList <Frasco>frascos;
public Estante(int nde, int cdf, float pm) {
numeroDeEstante = nde;
cantidadDeFrascos = cdf;
pesoMaximo = pm;
}
public void agregandoFrasco(Frasco fr) {
frascos.add(fr);
}
public int darNumeroDeEstante() {
return numeroDeEstante;
}
public boolean sosElEstante(int cde) {
return ( numeroDeEstante == cde);
}
public void setCantidadDeFrascos(int v) {
cantidadDeFrascos = v;
}
public void setPesoMaximo(float s) {
pesoMaximo = s;
}
public int darCantidadDeFrascos() {
return cantidadDeFrascos;
}
public float darPesoMaximo() {
return pesoMaximo;
}
}
public class Frasco {
private int codigoDelFrasco;
private float peso;
private float densidad;
private String marcaDelProducto;
public Frasco(int cdf, float pe, float den, String mdp) {
codigoDelFrasco = cdf;
peso = pe;
densidad = den;
marcaDelProducto = mdp;
}
public boolean sosElFrasco(int ff) {
return ( codigoDelFrasco == ff);
}
public int darCodigo() {
return codigoDelFrasco;
}
public float darPeso() {
return peso;
}
public float darDensidad() {
return densidad;
}
public String darMarcaDelProducto() {
return marcaDelProducto;
}
}