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