Ajuda, Resolver o problema

2 respostas
henriquefiel

Fiz esse programinha mas não compila... não consigo achar o erro, sou iniciante.

[/code]

package Funcionarios;

public class Funcionário {

private int matricula;
private String nome;
private String cargo;
private float salario;

public Funcionário(int matricula, String nome, String cargo,
float salário) {
this.cargo=cargo;
this.matricula=matricula;
this.nome=nome;
this.salario=salário;

}
public int getMatricula() {
return matricula;
}
public void setMatricula(int matricula) {
this.matricula = matricula;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
public float getSalario() {
return salario;
}
public void setSalario(float salário) {
this.salario = salário;
}

}


package Funcionarios;

import java.util.Scanner;

public class CadastraFuncionário {

private static Scanner leitor;
private static Funcionário[] funcionários = new Funcionário[500];


public static void main(String[] args) {

Scanner leitor = new Scanner(System.in);
String opcao = "";
do{
System.out.println("Cadastramento de Funcionários");
System.out.println("\n Menu de Opções: ");
System.out.println("1. Cadastrar Funcinário");
System.out.println("2. Listar Funcionários");
System.out.println("3. Aumentar Salário");
System.out.println("4. Sair");

System.out.print("\n\nEscolha uma opção: ");
opcao = leitor.nextLine();

if(opcao.equals("1")){
cadastroDeFuncionário();
}else if(opcao.equals("2")){
listarfuncionários();
}else if(opcao.equals("3")){
aumentarSalário();
}
else if(opcao.equals("4")){
break;
}else {
System.out.println("Opção Inválida.");
}
System.out.println("\n\n");
}while(true);
}

private static void cadastroDeFuncionário() {

int x = 0;
while(x < funcionários.length && funcionários[x] != null){
x++;
}
if(x == funcionários.length){
System.out.println("A lista de Funcionários já está cheia.");
} else {
System.out.println("\n\n Cadastro de Funcionários");
System.out.println("Informe a Matricula do Funcionário:");
int matricula = leitor.nextInt();leitor.nextLine();
System.out.println("Informe o Nome do Funcionário:");
String nome = leitor.nextLine();
System.out.println("Informe o Cargo do Funcionário:");
String cargo = leitor.nextLine();leitor.nextLine();
System.out.println("Informe o Salário do Funcionário:");
float salário = leitor.nextFloat();

Funcionário umFuncionário = new Funcionário(matricula, nome, cargo, salário);
funcionários[x] = umFuncionário;
}
}


private static void listarfuncionários(){
System.out.println("Lista de Funcionários");
for (int i = 0; i < funcionários.length; i++) {
if(funcionários[i] != null){
System.out.println("Matricula: " + funcionários[i].getMatricula());
System.out.println("Nome: " + funcionários[i].getNome());
System.out.println("Cargo: " + funcionários[i].getCargo());
System.out.println("Salário: " + funcionários[i].getSalario());
} else
{
break;
}}}

private static void aumentarSalário(){
System.out.println("Aumentar Salário");

for (int i = 0; i < funcionários.length; i++) {
if(funcionários[i] != null){
System.out.println("Informe a porcentagem de aumento:");
float percent = leitor.nextFloat();
float sal=funcionários[i].getSalario();
funcionários[i].setSalario(sal *(1+(percent/100)));
}
}

}
}

[code]

2 Respostas

K_F

Coloque o código ente as tags code…

O que acontece ao compilar?

henriquefiel

quando vc escolhe a opção Cadastra Funcionário… ele da este erro:

Cadastro de Funcionários

Exception in thread main Informe a Matricula do Funcionário:

java.lang.NullPointerException

at Funcionarios.CadastraFuncionário.cadastroDeFuncionário(CadastraFuncionário.java:60)

at Funcionarios.CadastraFuncionário.main(CadastraFuncionário.java:30)

a linha 60 seria int matricula = leitor.nextInt();leitor.nextLine();

a linha 30 seria cadastroDeFuncionário();

Criado 9 de abril de 2008
Ultima resposta 9 de abr. de 2008
Respostas 2
Participantes 2