Cadastro Basico

4 respostas
K
Caso eu fosse fazer um cadastro iria utilizar array... mas a professora somente pediu para criar uma classe e nele fazer o cadastro com nome,cpf ( a validação de cpf vou implementar depois) rg etc... E que nessa classe eu criasse metodos com exercicios que ela passou: de aumentar o salario pela quantidade de tempo na empresa e cargo depois fazer os descontos dos impostos no salario do funcionario para imprimir a folha de pagamento então criei meu código , mas ele so atribui o valor mais alto dos descontos ai o salario e a folha de pagamento estao saindo sempre negativos . E outro problema que eu tenho é que ele não faz o loop dos metodos com repita até pois são 58 funcionarios Alguem pode me dar uma luz nesse problema ?
import java.util.Calendar;
import java.util.Date;

public class Main {
	static String nome;
	static String rg,cpf;
	static String dataDeAdmissão;
	static String cargo;
	static double salarioFinal,folhadepagamento,salariox;
	static int op,cont=0;
 public static void main (String [] a){
	 
	 
	 Teclado in = new Teclado();
	 do { 
	 System.out.println("\nEntre com o nome do funcionário");
	 nome = in.lerLinha();
	 System.out.println("\nEntre com o cpf do funcionário ");
	 cpf = in.lerLinha();
	 System.out.println("\nEntre com a data de admissão do funcionário");
	 dataDeAdmissão = in.lerLinha();
	 System.out.println("Entre com o cargo do funcionário:");
     System.out.println(" 1 - Gerente");
     System.out.println(" 2 - Engenheiro");
     System.out.println(" 3 - Técnico");
     System.out.println(" 4 - Outro ");
	 op = in.lerInteiro();
	 System.out.println("\nEntre com o salário atual do funcionário");
	 salariox = in.lerReal();
	 porData();
	 folhaDePagamento();
	 cont++;
	}while(cont==58);
	 
	 
 }
    static void porData() {
     //Declarandojungt
 double salario=salariox,salarioFinal1=0,dataUse,difSalario;
 
  
   
  
   Date dataFim  = new Date(dataDeAdmissão);
   Date dataAtual = new Date();
   dataUse = dataAtual.getYear() - dataFim.getYear();


   //Calculo dos cargos de acordo com tempo = dataUse 
   switch(op) {
	case 1: if (dataUse >= 5.0)
	salarioFinal1 = salario +(salario*0.10);
	else if (dataUse >= 3.0 && dataUse < 5.0)
	salarioFinal1 = salario +(salario*0.09);
	else if (dataUse < 3)
	salarioFinal1 = salario +(salario*0.08);
	break;
	case 2: if (dataUse >= 5.0)
	salarioFinal1 = salario +(salario*0.11);
	else if (dataUse >= 3.0 && dataUse < 5.0)
	salarioFinal1 = salario +(salario*0.10);
	else if (dataUse < 3.0)
	salarioFinal1 = salario +(salario*0.09);
	break;
	case 3:  if (dataUse >= 5.0)
	salarioFinal1 = salario +(salario*0.12);
	else if (dataUse >= 3.0 && dataUse < 5.0)
	salarioFinal1 = salario +(salario*0.11);
	else if (dataUse < 3.0)
	salarioFinal1 = salario +(salario*0.10);
	break;
	case 4: salarioFinal1 = salario + (salario*0.07);
	break;
	default: System.out.println("Cargo informado inválido");
	}
   difSalario = salarioFinal1-salario;
	System.out.println("O novo salário do funcionario é: R$ "+salarioFinal1);
	System.out.println("O salário antigo tinha o valor de: R$ "+salario);
	System.out.println("A diferença entre o novo salario e o antigo salario do funcionário é de: RS "+difSalario);
	salarioFinal = salarioFinal1;
   
 }

    static void folhaDePagamento(){
		double rsalario,insssalario = 0,ssalario,salario=0,folhadepagamento=0,salarioliquido,totalrenda=0;

               	 /* salario
               	 */
			salario= salarioFinal;
			if (salario<= 1.499)
				rsalario=0;
				if (salario>1.499 && salario<=2.246)
					rsalario=112;
					if (salario>2.246 && salario<=2.995);
					rsalario=280;
					
					 
						if(salario>2.995 && salario<=3.743)
							rsalario=505;
						
						if(salario>3.743)
							rsalario=692;
						
						
						
			
				
		
		
			if (salario<=1.174)
				       insssalario=salario*0.08;
			
			if (salario>1.174 && salario<=1.958)
					insssalario=salario*0.09;
			if(salario>1.958 && salario<=3.916)
					insssalario=salario*0.11;
					
			if (salario>3.916)
					insssalario=430;
				
			ssalario=salario*0.045;
			salarioliquido=(salario-rsalario-insssalario-ssalario);
			folhadepagamento=folhadepagamento+salarioliquido;
			totalrenda=totalrenda+insssalario;
//verificando se os valores estão corretos
			System.out.println(ssalario);
			System.out.println(salarioliquido);
			System.out.println(folhadepagamento);
			System.out.println(totalrenda);
	
	
	}	

}

4 Respostas

leonardoteles

opa…boa tarde!!
acho que a apostila FJ11 da caelum tem algo parecido com o que vc quer!!
dá uma olhada nela… http://www.caelum.com.br/apostilas/

K

To dando uma olhada aqi vou testar algumas coisas , mas se alguem tiver uma dica , agradeço demais

SpiderX

Concordo, a apostila da Caelum é realmente boa, mas uma pergunta ?

Serio que sua professora esta ensinando java de forma estruturada pra vcs ?

Abraço.

SpiderX

kianchaves:
Caso eu fosse fazer um cadastro iria utilizar array… mas a professora somente pediu para criar uma classe e nele fazer o cadastro com nome,cpf ( a validação de cpf vou implementar depois) rg etc…

Concordo, a apostila da caelum é suoer valida, conteudo muito bom !

Cara, tem certeza que sua professora te pediu isso ? fazer somente uma classe ? ela esta lhe ensinando java de forma estruturada ? ta errado isso heim…

Abraço.

Criado 16 de maio de 2012
Ultima resposta 17 de mai. de 2012
Respostas 4
Participantes 3