Olá,
Estou fazendo um sistema simples de controle de encomendas por correio, contemplando cartas e pacotes.
Tais cartas e pacotes tem pesos e custos e devem ser adicionadas a um malote que permite agrupar os itens registrados até então em volumes, seguindo o critério de um volume ter no máximo 10 Kg. Esta classe então deve imprimir a listagem dos itens constantes em um ou mais volumes necessários para despachar estes pedidos, com o seguinte formato:
Volume #1
CartaSimples A B 0.1kg
CartaSimples E C 0.1kg
CartaRegistrada D B 0.1kg CR8216
PacotePadronizado B E 2.8kg T3 PP3121
PacotePadronizado A D 1.5kg T2 PP1329
PacoteGenerico C D 5.4kg 21x34x78 PG0012
peso total = 10kg
custo total = 23.5
Volume #2
PacotePadronizado D B 1.6kg T2 PP8121
PacoteGenerico C D 3.0kg 20x40x20 PG1245
PacoteGenerico E C 3.7kg 30x30x30 PG7625
PacotePadronizado A D 0.7kg T1 PP0263
peso total = 9kg
custo total = 31.6
O meu método para gerar tal implementação é :
public void organizarVolumes() throws MaloteEx
{
int n = itens.size();
if (n == 0)
throw new MaloteEx();
else{
System.out.println("Volume#1 ");
Item i = itens.get(0);
System.out.println(i);
pesototal = pesototal + i.obterPeso();
custototal = custototal + i.obterCusto();
for (int cont = 1; cont < n; cont++){
if (pesototal <= 10){
i = itens.get(cont);
pesototal = pesototal + i.obterPeso();
custototal = custototal + i.obterCusto();
}
if (pesototal >= 10.0){
//aux = pesototal;
pesototal = pesototal -i.obterPeso();
custototal = custototal -i.obterCusto();
System.out.println("Peso total : " + pesototal + " Kg" );
System.out.println("Custo total : " + custototal);
custototal = i.obterCusto();
pesototal = i.obterPeso() ;
System.out.println();
System.out.println("Volume#02" ) ;
}
System.out.println(i);
custototal = custototal + i.obterCusto();
}
System.out.println("Peso total : " + pesototal + " Kg");
System.out.println("Custo total : " + custototal);
}
}
Este método despacha os volumes nesse formato :
Volume#1
CartaSimples A B 0.1Kg 0.16
CartaSimples D E 0.1Kg 0.04
Carta Registrada D B 0.1Kg CR6614
CartaSimples E C 0.1Kg 0.12
Carta Registrada E A 0.1Kg CR8863
Pacote Padronizado B E 2.8Kg T3 PP7667
Pacote Padronizado A D 1.5Kg T2 PP1607
Peso total : 4.79 Kg
Custo total : 90.67
Volume#02
Pacote Generico C D 5.4Kg 21x34x78 PG6156
Pacote Padronizado D B 1.6Kg T2 PP7064
Peso total : 7.0 Kg
Custo total : 118.6
Volume#02
Pacote Generico C D 5.4Kg 20x40x20 PG4700
Pacote Generico E C 3.7Kg 30x30x30 PG
Pacote Padronizado A D 0.7Kg T1 PP
Peso total : 9.8 Kg
Custo total : 177.24
[color=blue][size=18]A minha dúvida é como eu posso organizar os pesos pra que de algum modo os volumes ocupem o máximo do tamanho possível (<=10kg) fazendo assim com que eu use menos volumes ???? [/size][/color]
Se alguém souber, por favor manifeste-se.
Obrigado.