How to instantiate a vector

1

I'm doing a program (college work), and I'm having trouble instantiating a vector.

Furthermore it is presenting some errors that I can not solve - one of them is in the while loop, at the closing of the main class.

  

How do I instantiate this vector and how do I eliminate the other errors?

Statement of work:

Create a Java program to create an employee master record. Ask the user for the number of company employees to scale the vectors.

Display a menu with the following options:

1 - REGISTER EMPLOYEE 2 - CONSULT EMPLOYEE
3 - LIST ALL EMPLOYEES
4 - LIST ONLY ACTIVE EMPLOYEES
5 - LISTING EMPLOYEES IN GROWING AGE ORDER 10 - EXIT

The employee registry must contain the following information:

NAME, AGE, SITUATION (active / inactive)

Lists should always display all employee information.

  

Employee Class:

import java.util.Arrays;

public class Funcionarios {

    private String nome;
    private int idade;
    private String situacao;
    private int quantidade[];

    public Funcionarios() {

    }

    @Override
    public String toString() {
        return "Funcionarios [quantidade=" + Arrays.toString(quantidade) + "]";
    }

    public Funcionarios(String nome, int idade, String situacao){
            this.nome=nome;
            this.idade=idade;
            this.situacao=situacao;
    }

    public void setNome(String nome){
            this.nome = nome;
    }

    public void setIdade(int idade){
            this.idade = idade;
    }

    public void setSituacao(String situacao){
            this.situacao = situacao;
    }

    public String getNome(){
            return nome.toUpperCase();
    }

    public int getIdade(){
            return idade;
    }

    public String getSituacao(){
            return situacao.toUpperCase();
    }

}
  

Menu Class:

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class Menu{

    private List<Funcionarios> listaF = new ArrayList<>();


    public Menu() {

    }

    public Menu(List<Funcionarios> listaF){
        this.listaF=listaF;
    }

    public void addFuncionario(String nome, int idade, String situacao){
        Funcionarios f = new Funcionarios(nome, idade, situacao);
        listaF.add(f);
    }
    public void addFunc(Funcionarios f){
        listaF.add(f);
    }

    public void consultar(String nome){
        for(int i = 0; i< listaF.size(); i++){
            if(listaF.get(i).getNome().equalsIgnoreCase(nome)){
                System.out.println("Nome: "+listaF.get(i).getNome());
                System.out.println("Idade: "+listaF.get(i).getIdade());
                System.out.println("Situacao: "+listaF.get(i).getSituacao());
            }
        }
    }
    public void consulta(Menu listagem){
        listaF.get(0);
    }

    public void listaCompleta(){
        if(listaF != null){
            for(int i = 0; i< listaF.size(); i++){
                System.out.println("Nome: "+listaF.get(i).getNome());
                System.out.println("Idade: "+listaF.get(i).getIdade());
                System.out.println("Situacao: "+listaF.get(i).getSituacao());
            }
        }else{
            System.out.println("Banco de dados vazio, necessário cadastrar funcionários");
        }
    }

    public void listaAtivos(){
        for(int i = 0; i< listaF.size(); i++){
            if(listaF.get(i).getSituacao().equalsIgnoreCase("ativo")){
                System.out.println("Nome: "+listaF.get(i).getNome());
                System.out.println("Idade: "+listaF.get(i).getIdade());
                System.out.println("Situacao: "+listaF.get(i).getSituacao());
            }
        }
    }

    public void listaPorIdades(){
        List<Funcionarios> listaPorIdade = listaF.stream()
                .sorted(Comparator.comparing(Funcionarios::getIdade))
                .collect(Collectors.toList());
        for(int i = 0; i< listaPorIdade.size(); i++){
            System.out.println("Nome: " + listaPorIdade.get(i).getNome());
            System.out.println("Idade: " + listaPorIdade.get(i).getIdade());
            System.out.println("Situacao: " + listaPorIdade.get(i).getSituacao());
        }
    }
}
  

Main Class:

import java.util.Scanner;

public class SistemaProva {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner ler = new Scanner(System.in);
        Menu m = new Menu();

        String nome;
        int idade;
        String situacao;
        int op;

        System.out.println("Bem-Vindo(a) ao Sistema");
        do{
            System.out.println("\n\tMenu\n\n");
            System.out.println("Digite a opção desejada:\n1: 1-Cadastrar Funcionário\n2: 2-Consultar Funcionário\n3: 3-Listagem Completa de Funcionários\n4: 4-Listagem de Funcionários Ativos\n5: 5-Listagem de Funcionários por Idade\n0: 10-Sair\n");
            op=ler.nextInt();

        if(op==1){
            //int quantidade;
                System.out.println("Quantos funcionários tem na empresa?");
                int quantidade[] = new int[quantidade];
                //quantidade[quantidade] = quantidade;
                for (int i = 0; i < quantidade.length; i++) {
                    System.out.println("\n\tCadastrar Funcionário:\n");
                    System.out.println("Nome: ");
                    try{
                        nome=ler.next();
                        System.out.println("Idade: ");
                        idade=ler.nextInt();
                        System.out.println("Situacao(Ativo ou Inativo): ");
                        situacao=ler.next();
                        m.addFuncionario(nome, idade, situacao);
                    }catch(Exception e){
                        System.out.println("Erro encontrado! Refaça!");
                        }
                    }
                }


        if(op==2){
            System.out.println("\n\tConsultar Funcionário:\n");
            System.out.println("Qual o nome do funcionário que deseja consultar? ");
            try{
            nome=ler.next();
            m.consultar(nome);
            }catch(Exception e){
                System.out.println("Erro encontrado! Refaça ou primeiro cadastre funcionários!");
        }

        if(op==3){
            System.out.println("\n\tListagem Completa de Funcionário:\n");
            m.listaCompleta();
        }

        if(op==4){
            System.out.println("\n\tListagem de Funcionários Ativos:\n");
            m.listaAtivos();
        }

        if(op==5){
            System.out.println("\n\tListagem de Funcionário por Idade:\n");
            m.listaPorIdades();
        }

        if(op==10){
            System.out.printf("\nEncerrando Sistema!");
        }

        }while(op!=0);

        ler.close();
    }

}
    
asked by anonymous 10.07.2017 / 04:29

1 answer

2

In the menu option 1-Register Employee the quantity definition:

int quantidade[] = new int[quantidade];

It must be:

int quantidade = ler.nextInt();

for (int i = 0; i < quantidade; i++) { //alterado também

To read the value of the console, since it is only the amount of employees that will be read by for . That's why you do not need to be a vector.

In the same class this catch :

}catch(Exception e){
    System.out.println("Erro encontrado! Refaça ou primeiro cadastre funcionários!");

It does not have the closing key, and should then be:

}catch(Exception e){
    System.out.println("Erro encontrado! Refaça ou primeiro cadastre funcionários!");
}
    
10.07.2017 / 12:42