Cadastro Basico

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 ?

[code]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 +(salario0.10);
else if (dataUse >= 3.0 && dataUse < 5.0)
salarioFinal1 = salario +(salario
0.09);
else if (dataUse < 3)
salarioFinal1 = salario +(salario0.08);
break;
case 2: if (dataUse >= 5.0)
salarioFinal1 = salario +(salario
0.11);
else if (dataUse >= 3.0 && dataUse < 5.0)
salarioFinal1 = salario +(salario0.10);
else if (dataUse < 3.0)
salarioFinal1 = salario +(salario
0.09);
break;
case 3: if (dataUse >= 5.0)
salarioFinal1 = salario +(salario0.12);
else if (dataUse >= 3.0 && dataUse < 5.0)
salarioFinal1 = salario +(salario
0.11);
else if (dataUse < 3.0)
salarioFinal1 = salario +(salario0.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);

}	

}
[/code]

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/

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

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

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

Abraço.

[quote=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…
[/quote]
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.