How to instantiate a vector

Asked

Viewed 523 times

1

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

Also he’s presenting some errors that I’m not able to solve - one of them is in the loop while, at the closing of the main class.

How to instantiate this vector and how to eliminate other errors?

Statement of the work:

Make a Java program to create an employee register. Ask the user for the number of company employees, to scale the vectors.

Display a menu with the following options:

1 - REGISTER OFFICIAL
2 - CONSULT OFFICIAL
3 - LIST ALL EMPLOYEES
4 - LIST ONLY ACTIVE EMPLOYEES
5 - LISTING EMPLOYEES IN ORDER OF INCREASING AGE
10 - QUIT

The register of employees must contain the following information:

NAME, AGE, STATUS (active/inactive)

The lists shall always display all information of the official.

Working 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();
    }

}

1 answer

2

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

int quantidade[] = new int[quantidade];

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. For this reason it does not need to be a vector.

In the same class catch:

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

You don’t have the clasp, and you should be:

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

Browser other questions tagged

You are not signed in. Login or sign up in order to post.