Necesito una ayudilla

Lara
11 de Marzo del 2006
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

trFox
11 de Marzo del 2006
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...

Lara
11 de Marzo del 2006
weno seguire tus comentarios aver si consigo algo, gracias