Necesito una ayudilla
Hola wenas, estoy realizando un programa que gestiona la entrada y salida de modulos d muebles d un almacen. De los modulos tengo que saber el tipo, el precio y numero de modulos que hay repetido, del almacen se sabe que tiene una capacidad maxima de 2000 modulos. Me piden que añada modulos y si ya ay alguno del mismo tipo que lo incremente y si no se puede que diga que esta lleno. y tambien me piden que sirva una comanda que mire si se puede realizar o no.
Yo tengo hecho esto pero no funciona:
public class Modulos{
private String tipo;
private double precio;
private int maximo;
public Modulos(String t, double p, int m){
this.tipo=t;
this.precio=p;
this.maximo=m;
}
public String gettipo()
{
return tipo;
}
public double getprecio()
{
return precio;
}
public int getmaximo()
{
return maximo;
}
public String modulosiguales(Modulos m){
return (m.tipo=tipo);
}
}
public class Almacen{
int nelem=2000;
Modulos[]modulo;
public Almacen(int nModulos){
modulo=new Modulos[nModulos];
nelem=0;
}
public void AñadirModulos(Modulos m)
{
if (nelem<modulo.length)
{
modulo[nelem]=m;
nelem++;
}
else
{
System.out.println("Almacen lleno");
}
}
public int Numerodemodulosiguales(String tipo)
{
int i=0, numero=0;
while(i<nelem)
{
if(tipo.equalsIgnoreCase(modulo[i].gettipo()))
{
numero++;
}
i++;
}
return numero;
}
public Modulos Servircomanda(String tipo)
{
int i=0;
boolean trobat=false;
Modulos m=null;
while((!encontrado)&&(i<nelem))
{
if(tipo==modulo[i].gettipo())
{
encotrado=true;
m=modulo[i];
}
i++;
}
return m;
}
}
Luego tengo hecha una clase para comprobar si funcion pero no rula el programa no me da ningun error.
Alguien es tan amable de ayudarme? weno gracias de antemano besos
Yo tengo hecho esto pero no funciona:
public class Modulos{
private String tipo;
private double precio;
private int maximo;
public Modulos(String t, double p, int m){
this.tipo=t;
this.precio=p;
this.maximo=m;
}
public String gettipo()
{
return tipo;
}
public double getprecio()
{
return precio;
}
public int getmaximo()
{
return maximo;
}
public String modulosiguales(Modulos m){
return (m.tipo=tipo);
}
}
public class Almacen{
int nelem=2000;
Modulos[]modulo;
public Almacen(int nModulos){
modulo=new Modulos[nModulos];
nelem=0;
}
public void AñadirModulos(Modulos m)
{
if (nelem<modulo.length)
{
modulo[nelem]=m;
nelem++;
}
else
{
System.out.println("Almacen lleno");
}
}
public int Numerodemodulosiguales(String tipo)
{
int i=0, numero=0;
while(i<nelem)
{
if(tipo.equalsIgnoreCase(modulo[i].gettipo()))
{
numero++;
}
i++;
}
return numero;
}
public Modulos Servircomanda(String tipo)
{
int i=0;
boolean trobat=false;
Modulos m=null;
while((!encontrado)&&(i<nelem))
{
if(tipo==modulo[i].gettipo())
{
encotrado=true;
m=modulo[i];
}
i++;
}
return m;
}
}
Luego tengo hecha una clase para comprobar si funcion pero no rula el programa no me da ningun error.
Alguien es tan amable de ayudarme? weno gracias de antemano besos
No entiendo si cunado un módulo es igual a otro que ya existe, solo se incrementa el que ya existe sin insertar el nuevo; o se inserta el nuevo módulo y se incrementan ambos (el que ya existÃa y el nuevo).
En cuanto a tu cósigo:
En el ultimo método (Servircomanda) creo que deberÃa regresar un boolean y en la comparación que estas haciendo (tipo== modulo[i].gettipo()) no compara el contenido de tipo sino que compara si son el mismo objeto. DeberÃas compararlo como en el método anterior tipo.equalsIgnoreCase(modulo[i].gettipo()), pues ahà si comparas el contenido del objeto (y no los apuntadores).
En cuanto a la lógica no se si este bien porque no entendà muy bien el problema...
Bueno pues espero te sirva de algo...
CuÃdate y échale ganas...
En cuanto a tu cósigo:
En el ultimo método (Servircomanda) creo que deberÃa regresar un boolean y en la comparación que estas haciendo (tipo== modulo[i].gettipo()) no compara el contenido de tipo sino que compara si son el mismo objeto. DeberÃas compararlo como en el método anterior tipo.equalsIgnoreCase(modulo[i].gettipo()), pues ahà si comparas el contenido del objeto (y no los apuntadores).
En cuanto a la lógica no se si este bien porque no entendà muy bien el problema...
Bueno pues espero te sirva de algo...
CuÃdate y échale ganas...
