O problema é o seguinte. Uma construtora recebe material (areia, brita) em toneladas, o caminhão já vem com o peso na nota fiscal. No antigo sistema um funcionário deveria aferir o material com 3 furos, achar a média para fazer o calculo de M³.
Acontece que os relatórios tem que ser preenchidos em M³, esta primeira parte é fácil, temos uma tabela de densidade por M³ de cada material, daí é só dividir. A parte chata é que tem que achar a média da altura porque tem que constar os dados utilizados para chegar ao resultado do calculo, sendo que temos a medida na largura e do comprimento.
No caso eu tenho o resultado , a largura e o comprimento, preciso desenvolver algo para calcular a altura (media de 3 furos divididos por 3). Bem isso já esta pronto
Média * 350 *230 = M³
[code] double calculaMedia(){
media = 1;
while ((media * 2.3 * 3.5)/100 <= m3){
media++;
}
return media;
}[/code]
Tentei usar != ao invés de <= mas não funfou. Esta função me da uma média, não fica 100% como eu queria, pois os M³ é um doublé, foi zica tentar incremento, acabei deixando assim.
O que ainda preciso desenvolver:
A média da altura é calculada somando o valor das 3 aferições divididas por 3. Eu preciso gerar 3 números aleatórios cuja a soma seja o valor da média. Alem disso as 3 medidas tem que ter um valor aproximado, por exemplo se a média é 95 as medidas devem ser em torno de 90 a 100, pois nunca existe uma diferença muito grande entre as aferições.
Meu código até agora:
[code]import javax.swing.JOptionPane;
public class Brita1 {
double tonelada;
double m3;
double media;
double f1;
double f2;
double f3;
public static void main(String[] args) {
Brita1 b= new Brita1();
b.recebeValor();
b.converterTonelada();
b.calculaMedia();
b.calculaF();
JOptionPane.showMessageDialog(null, "Tonelada: " + b.tonelada + "\nM³: " +b.m3 + "\nMédia: " + b.media
+"\nFuros:" + b.f1 + " " + b.f2 + " " + b.f3);
System.exit(0);
}
double recebeValor(){
tonelada = Double.parseDouble(JOptionPane.showInputDialog("Digite o peso:"));
return tonelada;
}
double converterTonelada(){
m3 = (tonelada*1000)/1621;
return m3;
}
double calculaMedia(){
media = 1;
while ((media * 2.3 * 3.5)/100 <= m3){
media++;
}
return media;
}
public void calculaF(){
//aqui deu merda
}
}[/code]