Ajuda Calculo nos set e get

10 respostas
C

Estou tentando construir um programinha com parte grafica pra pegar calcular o valor do salario com base no preço das horas.. e apos pegar esse salario bruto. descontar os direitos com inss IR.. Por Exemplo se o valor for acima de 1000 descontar 10 porcento se for abaixo descontar 8.

só que não to sabendo como aplciar esse calculo aonde coloca lo.. se tenho qeu cirar uma nova classe ou só nosso metodos.

aqui está minha classe
class aula01 {
	private double encapHoras;
    private double encapValor;
    private double encapINSS;
    private double encapImpostoIR;

    public void SetHoras (double dobHoras){
   		encapHoras = dobHoras;
    }
    public void SetValor (double dobValor){
   		encapValor = dobValor;
    }


    public double GetTGeral(){
    	return (encapHoras * encapValor);
    }

A Instancia

class                        extends JFrame implements ActionListener
{
	aula01 objQtdValor = new aula01();

	JTextField campoHoras;
	JTextField campoValor;
	JTextField campoTotal;


	JLabel labelHoras;
	JLabel labelValor;
	JLabel labelTotal;


    JLabel Lbl1;
    JLabel Lbl2;
    JLabel Lbl3;
    JLabel Lbl4;
    JLabel Lbl5;
    JLabel Lbl6;
    JLabel Lbl7;
    JLabel Lbl8;
    JButton btnCalcular;
    JButton btnLimpar;

    public static void main (String[]args)
	{
	JFrame Janela = new QtdxValorGui_ExecAula();
	Janela.show();

	WindowListener x = new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		};
		Janela.addWindowListener(x);
	}

	QtdxValorGui_ExecAula()
	{

		setTitle("Qtde. x Valor");
		setSize (500,250);
 		setLocation(50,50);
 		getContentPane().setBackground(new Color(150,150,150));
 		getContentPane().setLayout(new GridLayout(5,2));



	campoValor = new JTextField();
    campoHoras  = new JTextField();
    campoTotal = new JTextField();


     labelHoras = new JLabel("Digite as Horas");
     labelValor = new JLabel("Digite o custo da hora:");
     labelTotal = new JLabel("Total Com Desconto:");

        Lbl1        = new JLabel("");
        Lbl2        = new JLabel("");
        Lbl3        = new JLabel("");
        Lbl4        = new JLabel("");
        Lbl5        = new JLabel("");
        Lbl6        = new JLabel("");
        Lbl7        = new JLabel("");
        Lbl8        = new JLabel("");
        btnCalcular = new JButton("Calcular");
        btnLimpar   = new JButton("Limpar");


   btnCalcular = new JButton ("Calcular"); btnCalcular.addActionListener(this);
	btnLimpar   = new JButton ("Limpar");   btnLimpar.addActionListener(this);
	campoTotal.setEditable(false);

	getContentPane().add(labelHoras);  getContentPane().add(campoHoras);;

    getContentPane().add(labelValor);      getContentPane().add(campoValor);


    getContentPane().add(Lbl3);       getContentPane().add(Lbl4);

    getContentPane().add(labelTotal);  getContentPane().add(campoTotal);

    getContentPane().add(btnLimpar); getContentPane().add(btnCalcular);
	}

    public void actionPerformed(ActionEvent e)
	{
		if (e.getSource() == btnLimpar)
		{
			campoHoras.setText("");
            campoValor.setText("");
            campoTotal.setText("");
			return;
		}

		float Horas1 = 0;
        float Valor1 = 0;
        double Total = 0;
     
        try
		{
			Horas1 = Float.parseFloat(campoHoras.getText());
		    Valor1 = Float.parseFloat(campoValor.getText());

	    }

		catch(NumberFormatException erro)
		{
			campoTotal.setText("Erro");
			return;

		}

		if (e.getSource()== btnCalcular)
		{
			objQtdValor.SetHoras(Horas1);
			objQtdValor.SetValor(Valor1);

			Total = (objQtdValor.GetTGeral());
	
		}
		campoTotal.setText(""+Total);
	}
}

Qual o rumo eu teria que tomar? alguem pode dar um exemplo. Agradeço ( ele está funcionando normal, só não consigo passar para a parte do desconto).

10 Respostas

rnldfll

Leia isso, com codigo assim ninguem tem vontade de te ajudar

C

Peço perdão pela falha… já corrigi… espero que fique mais facil a visualização agora.

R

if (salario > 1000) { // Algoritmo para descontar 10% } else if (salario > 0 && salario < 1000) { // Algoritmo para descontar 8% }

Usei o else if pois nao sei se voce esta validando valores menores que 0 no input.

Luiz_Augusto_Prado

No exemplo mais simples vc tem um objeto para armazenar seus dados (Value Object = VO), o objeto responsável por trabalhar seus dados (business object = BO) e a interface gráfica.

Vc podia fazer primeiro com valores fictícios. Sem interface gráfica. No fundo vc só precisa do VO e o BO para fazer seus testes.
O main popula seu VO, executa o BO jogando o VO como parametro e finalmente dá o resultado (interface gráfica ou println).

Para pesquisar:
Value objects VO (aula01)
business object BO (vc misturou com a interface)

C

Olá amigo. a questão não é a logica do calculo… mas sim aonde aplicar ele, se vou ter que criar uma nova calsse… ou apenas adicionar novos metodos. isso que não to conseguindo desenvolver

R

Onde voce seta o valor do salario ? voce pode por a logica la mesmo, sem problemas, ou entao da um getSalario e passa-lo num metodo responsavel por um calculo, so bata criar um metodo que faça isso.

C

No exemplo mais simples vc tem um objeto para armazenar seus dados (Value Object = VO), o objeto responsável por trabalhar seus dados (business object = BO) e a interface gráfica.

Vc podia fazer primeiro com valores fictícios. Sem interface gráfica. No fundo vc só precisa do VO e o BO para fazer seus testes.
O main popula seu VO, executa o BO jogando o VO como parametro e finalmente dá o resultado (interface gráfica ou println).

Para pesquisar:

Value objects VO (aula01)

business object BO (vc misturou com a interface)

</blockquote>



Então, é que agora estou aprendendo com a interface gráfica então preciso desenvolver com a interface grafica cheguei até essa partecom o valor o valor bruto no GetTGeral()só que não estou conseguindo  desenvolver pensar aonde vou colocar o if o calculo se vou ter que criar uma nova classe, se vou só criar os metods na mesma classe. porque o valor está no getTGeral()
R

O GetGeral retorna um valor, voce pode criar outro metodo que calcule as porcentagens em outra classe OU nao, e passar o GetGeral como parametro, vo te da um exemplo:

public double GetTGeral(){  
        double salario = encapHoras * encapValor;
        if (salario > 1000) {
           salario = salario - ((salario * 10) / 100);
        } else {
           salario = salario - ((salario * 8) / 100);
        }
        return salario;   
}

Mel na chupeta :smiley:

Luiz_Augusto_Prado

Então cara… é isso que to tentando te falar.

Separa tudo em Vo e BO, depois que vc faz sua interface. Exemplo:

package bovo;
public class Vo
{
	private int numero1;
	private int numero2;
	public int getNumero1()
	{
		return numero1;
	}

	public void setNumero1(int numero1)
	{
		this.numero1 = numero1;
	}

	public int getNumero2()
	{
		return numero2;
	}

	public void setNumero2(int numero2)
	{
		this.numero2 = numero2;
	}
}

//================================================
package bovo;
public class Bo
{	
	public int getResult(Vo a1, Vo a2)
	{
		return a1.getNumero1()*a2.getNumero2();
	}
}

//================================================
package bovo;
public class BoVo
{
	public static void main(String[] args)
	{		
		// populando vo para um teste
		Vo a1 = new Vo();
		a1.setNumero1(8);
		a1.setNumero2(7);
		
		// fazendo trabalho (bo)
		Bo bo = new Bo();
		int resp = bo.getResult(a1, a1);
		
		// imprimindo
		System.out.print(resp);
	}
}

O vo são valores para serialização. Não precisa por formulas lá. A não ser que sejam formulas bem simplezinhas como operações ou conversões.

As formulas complexas devem ficar no BO.

C

Muito Obrigado… Irei tentar aqui… baseado nas duas ajudas!

Criado 16 de março de 2013
Ultima resposta 16 de mar. de 2013
Respostas 10
Participantes 4