Esquema de salario e etc

6 respostas
B

Ola galera blz?

tenho um exercicio pra fazer, que precisa criar um esquema de somar salario, veja abaixo.

Monte um sistema para cálculo de salário líquido.
1º Pergunte o nome do colaborador.
2º O Cargo do Colaborador.
3º O salário bruto.
4º Número de filhos < 10 anos. (cada filho soma R$ 20,00)
5º Número de filhos > 10 anos e < 18 anos. (cada filho soma R$ 15,00).
6º Descontos.
7º Apresente o salário liquido:
Salário Liquido = ((item 3 + item 4 + item 5) ? item 6)

O Processo deve guardar em um array [10][7] 10 funcionário e suas 7 informações. (JOptionPane.showInputDialog)
Apresentar a cada final de cadastro o salário liquido do funcionário. (JOptionPane.showMessageDialog)
Imprimir no Prompth: Nome, Cargo, Salário Bruto, Número de filhos < 10 anos, número de filhos > 10 anos e <18 anos, Descontos e Salário Liquido. (System.out.println)
[color=red] [/color]

Eu criei uma classe:

import javax.swing.JOptionPane;

public abstract class Colaborador {

	String nome;
	String cargo;
	String salario;
	String menor;
	String maior;
	int totalFilhos;
	double descontos;

	public int getTotalFilhos() {
		return totalFilhos;
	}

	public void setTotalFilhos(int totalFilhos) {
		this.totalFilhos = totalFilhos;
	}

}

e depois uma:

public class Filhos extends Colaborador {

	public Filhos(int menor, int maior) {

		menor = menor * 20;
		if (maior < 18) {
			maior = maior * 15;
		}
		totalFilhos = menor + maior;
	}

}

Agora quero criar uma classe separado para a GUI, mas ta dando erro...

import javax.swing.JOptionPane;

public class Janelinhas extends Colaborador {

public Janelinhas(){
	
}

	public Colaborador Nome{

		nome = JOptionPane.showInputDialog(null, "Informe o nome:");
		
	}

	public Colaborador getNome() {
		return Nome;
	}

	public void setNome(Colaborador nome) {
		Nome = nome;
	}
}

Depois uma classe pra teste, mas da erro na classe Janelinhas, na linha " public Colaborador Nome{"

6 Respostas

fdettoni
# public Colaborador Nome{  
#   
#         nome = JOptionPane.showInputDialog(null, "Informe o nome:");  
#           
#     }

O JOptionPane retorna uma String, vc tem que criar um objecto colaborador e retornar neste método. Ou trocar o tipo de retorno para String e retornar nome.

B
import javax.swing.JOptionPane;

public class Janelinhas extends Colaborador {

public Janelinhas(){
	
}
String nome;
String funcao;

	public String Nome{

		nome = JOptionPane.showInputDialog(null, "Informe o nome:");
	
	}

	
}

Continua dando erro no public String Nome{

laudenpower

Acho que essa modelagem de filho estender colaborador estrá equivocada por que pelo que posso entender um filho não É um colaborador, nesse caso você poderia criar uma classe que trataria de calcular o valor do salário passando assim o valor para o colaborador, tipo uma classe empresa talvez.

Espero ter ajudado… :slight_smile:

fdettoni
bruno.damada:
import javax.swing.JOptionPane;

public class Janelinhas extends Colaborador {

public Janelinhas(){
	
}
String nome;
String funcao;

	public String Nome{

		nome = JOptionPane.showInputDialog(null, "Informe o nome:");
		return nome;
	
	}

	
}

Continua dando erro no public String Nome{

Falta o retorno.

wjnanet

Bom... minha opinião... acho q não está bem estruturado o problema.
Pq vc fez a classe Colaborador como abstract? Vc não implementou nenhum método abstrado, não há necessidade.
Quanto a classe Filho, não tem sentido e herdar Colaborador. Filho não é colaborador. Bom na verdade nem precisa ter a classe Filho... os únicos dados solicitados são quantidade e idade dos filhos.
A classe Janelinha também não precisa herdar a classe Colaborador. Precisa sim, instanciar um Colaborador.
Quanto ao método abaixo, ignorando os outros erros:

Primeiro faltou o () - depois, vc está criando um método que deve retornar um objeto Colaborador, porém o método não está retornando nada. A lógica desse método não está certa.

public Colaborador Nome() {    

    nome = JOptionPane.showInputDialog(null, "Informe o nome:");    
    /* A VM pergunta pra vc: O que é nome? Se vc está tentando inserir conteúdo na variável nome da Classe Colaborador, primeiro precisa instanciar um objeto na classe Janelinha. */
}
Mas não esquenta não.... é treinando e errando que se aprende.
wjnanet

Bom, como eu estava estudando sobre arrays e wrapper classes, decidi resolver esse exercício. Veja:

import javax.swing.JOptionPane;

public class MainSal {
	public static void main(String args[]) {
	
		Object [][] colab = new Object [10][7];
		
		int menor=0;
		int maior=0;
		double salario=0;
		double desconto=0;
		
		for(int i=0, j=0; i<=0;i++) {
			colab[i][j] = new String(JOptionPane.showInputDialog("Qual o nome do "+(i+1)+" colaborador?"));
			System.out.println(colab[i][j]);
			System.out.println(colab[i][j].getClass());
			j++;
			colab[i][j] = new String(JOptionPane.showInputDialog("Qual o cargo do "+(i+1)+" colaborador?"));
			System.out.println(colab[i][j]);
			System.out.println(colab[i][j].getClass());
			j++;
			colab[i][j] = new Double(JOptionPane.showInputDialog("Qual o salario do "+(i+1)+" colaborador?"));
			System.out.println(colab[i][j]);
			System.out.println(colab[i][j].getClass());
			j++;
			colab[i][j] = new Integer(JOptionPane.showInputDialog("Quantos filhos menores de 10 anos possui o "+(i+1)+" colaborador?"));
			System.out.println(colab[i][j]);
			System.out.println(colab[i][j].getClass());
			j++;
			colab[i][j] = new Integer(JOptionPane.showInputDialog("Quantos filhos entre 10 e 17 anos possui o "+(i+1)+" colaborador?"));
			System.out.println(colab[i][j]);
			System.out.println(colab[i][j].getClass());
			j++;
			colab[i][j] = new Double(JOptionPane.showInputDialog("Qual valor a ser descontado do salario do "+(i+1)+" colaborador?"));
			System.out.println(colab[i][j]);
			System.out.println(colab[i][j].getClass());
			j++;
			//colab[i][j] = new Double(0);
			menor = Integer.parseInt(colab[i][j-3].toString());
			maior = Integer.parseInt(colab[i][j-2].toString());
			salario = Double.parseDouble(colab[i][j-4].toString());
			desconto = Double.parseDouble(colab[i][j-1].toString());
			
			colab[i][j] = new Double (salario + (menor * 20) + (maior * 15) - desconto);
			System.out.println(colab[i][j]);
			System.out.println(colab[i][j].getClass());
						
			JOptionPane.showMessageDialog(null, 
					"Nome: "+colab[i][j-6]+"\n"+
					"Cargo: "+colab[i][j-5]+"\n"+
					"Salario: "+colab[i][j-4]+"\n"+
					"Filhos menores de 10 anos: "+colab[i][j-3]+"\n"+
					"Filhos entre 10 e 17 anos: "+colab[i][j-2]+"\n"+
					"Desconto salaril: "+colab[i][j-1]+"\n"+
					"Salario Liquido: "+colab[i][j],"\n"+
					"Testando", 2);
		}
	}
}

Pode não estar otimizado, mas funciona...rsrsrs... se alguém tiver alguma ideia de melhorá-lo.... eu fiz dessa forma pq o enunciado estava pedindo que guardasse os dados de cada colaborador do array.
Não achei uma maneira mais direta de realizar as operações diretamente com o array. Tive que atribuir os valores às variáveis primitivas.
Ah... estava fazendo também alguns sysouts para verificar a que tipo de classe pertencia cada objeto adicionado no array e também mostrar os valores em console... Pode retirá-los que não vai interferir na resolução.

Criado 26 de agosto de 2009
Ultima resposta 30 de ago. de 2009
Respostas 6
Participantes 4