diff --git a/funcionarios.csv b/funcionarios.csv new file mode 100644 index 0000000..3322580 --- /dev/null +++ b/funcionarios.csv @@ -0,0 +1,6 @@ +PLENO, Ana,Desenvolvedora,2000.0,321654987 +SENIOR, José,Designer,7000.0,456789123 +DIRETOR, João,Consultor de Finanças,10000.0,123456789 +PLENO, Maria,QA,5000.0,987654321 +DIRETOR, Michael,Diretor Regional,99999.99,0000000000 +ESTAGIARIO, Pedro,Full-Stack,1000.0,789123456 diff --git a/src/funcionariosStarlabs/ArvoreCTO.java b/src/funcionariosStarlabs/ArvoreCTO.java index b50504d..67606bc 100644 --- a/src/funcionariosStarlabs/ArvoreCTO.java +++ b/src/funcionariosStarlabs/ArvoreCTO.java @@ -1,6 +1,6 @@ package funcionariosStarlabs; -public class ArvoreCTO extends ArvoreDeFuncionarios { +public class ArvoreCTO extends ArvoreDeFuncionarios implements java.io.Serializable{ @Override public void adicionar(CTO funcionario) { diff --git a/src/funcionariosStarlabs/ArvoreDeFuncionarios.java b/src/funcionariosStarlabs/ArvoreDeFuncionarios.java index 0bdeaed..d7c5ec9 100644 --- a/src/funcionariosStarlabs/ArvoreDeFuncionarios.java +++ b/src/funcionariosStarlabs/ArvoreDeFuncionarios.java @@ -1,7 +1,7 @@ package funcionariosStarlabs; import java.util.TreeSet; -public class ArvoreDeFuncionarios { +public class ArvoreDeFuncionarios{ private TreeSet funcionarios; @@ -52,4 +52,8 @@ public void atualizarDados(String nome, double novoSalario, String novoCargo) { System.out.println("Pessoa não encontrada em nossa base!"); } } + + public TreeSet getFuncionarios() { + return funcionarios; + } } \ No newline at end of file diff --git a/src/funcionariosStarlabs/CTO.java b/src/funcionariosStarlabs/CTO.java index 2a1198d..c4d88df 100644 --- a/src/funcionariosStarlabs/CTO.java +++ b/src/funcionariosStarlabs/CTO.java @@ -1,6 +1,7 @@ package funcionariosStarlabs; +import java.io.Serializable; -public class CTO extends FuncionarioBase { +public class CTO extends FuncionarioBase implements Serializable{ public CTO(String nome, String cargo, double salario, String cpf) { super(nome, cargo, salario, cpf); diff --git a/src/funcionariosStarlabs/FuncionarioBase.java b/src/funcionariosStarlabs/FuncionarioBase.java index bb5ad6f..4e4d0d5 100644 --- a/src/funcionariosStarlabs/FuncionarioBase.java +++ b/src/funcionariosStarlabs/FuncionarioBase.java @@ -1,6 +1,6 @@ package funcionariosStarlabs; -public abstract class FuncionarioBase implements FuncionarioBaseInterface { +public abstract class FuncionarioBase implements FuncionarioBaseInterface{ protected String nome; protected String cargo; protected double salario; diff --git a/src/funcionariosStarlabs/FuncionarioBaseNode.java b/src/funcionariosStarlabs/FuncionarioBaseNode.java index ca27792..f0d6348 100644 --- a/src/funcionariosStarlabs/FuncionarioBaseNode.java +++ b/src/funcionariosStarlabs/FuncionarioBaseNode.java @@ -1,6 +1,6 @@ package funcionariosStarlabs; -public class FuncionarioBaseNode { +public class FuncionarioBaseNode implements java.io.Serializable{ FuncionarioBase funcionario; FuncionarioBaseNode leftChild; FuncionarioBaseNode rightChild; diff --git a/src/funcionariosStarlabs/Main.java b/src/funcionariosStarlabs/Main.java new file mode 100644 index 0000000..80367ab --- /dev/null +++ b/src/funcionariosStarlabs/Main.java @@ -0,0 +1,10 @@ +package funcionariosStarlabs; + +public class Main { + + public static void main(String[] args) { + CTO cto = new CTO("Victor", "CTO", 10000, "123.456.789-00"); + System.out.println(cto.getNome()); + } + +} diff --git a/src/placeholderCompany/ArvoreDeFuncionarios.java b/src/placeholderCompany/ArvoreDeFuncionarios.java new file mode 100644 index 0000000..87cafbd --- /dev/null +++ b/src/placeholderCompany/ArvoreDeFuncionarios.java @@ -0,0 +1,180 @@ +package placeholderCompany; +import java.util.TreeSet; +import java.util.Scanner; +import utils.*; + +public class ArvoreDeFuncionarios{ + + private TreeSet funcionarios; + + public ArvoreDeFuncionarios() { + funcionarios = new TreeSet<>((f1, f2) -> f1.getNome().compareTo(f2.getNome())); + } + + public void adicionar(T funcionario) { + String cpf = funcionario.getCpf(); + if (buscarCpf(cpf)) { + System.out.println("Funcionário já existe na nossa base de dados"); + return; + } + funcionarios.add(funcionario); + System.out.println("Funcionário adicionado com sucesso!"); + } + + public void adicionar(T funcionario, boolean flag) { + + String cpf = funcionario.getCpf(); + if (buscarCpf(cpf)) { + if (flag) { + System.out.println("Funcionário já existe na nossa base de dados"); + return; + } + return; + } + funcionarios.add(funcionario); + if (flag){ + System.out.println("Funcionário adicionado com sucesso!"); + } + } + + public T buscar(String cpf) { + + for (T funcionarioBase : funcionarios) { + if (funcionarioBase.getCpf().equals(cpf)) { + return funcionarioBase; // retorno o funcionário encontrado + } + } + System.out.println("Funcionário não existe na nossa base de dados"); + return null; + } + public boolean buscarCpf(String cpf) { + for (T funcionarioBase : funcionarios) { + if (funcionarioBase.getCpf().equals(cpf)) { + return true; + } + } + return false; + } + + public void remover(String cpf) { + T funcionarioParaRemover = buscar(cpf); + if (funcionarioParaRemover != null) { + funcionarios.remove(funcionarioParaRemover); + System.out.println("Funcionário " + funcionarioParaRemover.getNome() + " removido com sucesso!"); + } else { + System.out.println(cpf + "Não foi encontrado na nossa base de dados"); + } + } + + public void mostrarTodos() { + System.out.println("\n=== Todos os Funcionários ==="); + for (T funcionarioBase : funcionarios) { + System.out.println(funcionarioBase.getNome() + " - " + funcionarioBase.getCargo() + " - " + funcionarioBase.getSalario() + " - " + funcionarioBase.getCpf()); + } + } + + // public void atualizarDados(String nome, double novoSalario, String novoCargo) { + // T funcionarioParaAtualizar = buscar(nome); + // if (funcionarioParaAtualizar != null) { + // funcionarioParaAtualizar.setSalario(novoSalario); + // funcionarioParaAtualizar.setCargo(novoCargo); + // System.out.println("Dados da pessoa funcionária atulizados com sucesso!"); + // } else { + // System.out.println("Pessoa não encontrada em nossa base!"); + // } + // } + + public void atualizarDados(String cpf){ + T funcionarioParaAtualizar = buscar(cpf); + if (funcionarioParaAtualizar != null) { + System.out.println("Funcionário encontrado! Dados atuais: " + funcionarioParaAtualizar); + System.out.println("O que deseja atualizar?"); + System.out.println("1 - Salário"); + System.out.println("2 - Cargo"); + System.out.println("3 - Salário e Cargo"); + System.out.println("4 - Tipo de Funcionário"); + Scanner scanner = new Scanner(System.in); + int opcao = scanner.nextInt(); + scanner.nextLine(); + while (opcao < 1 || opcao > 4) { + System.out.println("Opção inválida! Digite novamente: "); + opcao = scanner.nextInt(); + } + switch (opcao) { + case 1: + System.out.println("Digite o novo salário: "); + double novoSalario = scanner.nextDouble(); + funcionarioParaAtualizar.setSalario(novoSalario); + break; + case 2: + System.out.println("Digite o novo cargo: "); + String novoCargo = scanner.nextLine(); + funcionarioParaAtualizar.setCargo(novoCargo); + break; + case 3: + System.out.println("Digite o novo salário: "); + double novoSalario2 = scanner.nextDouble(); + scanner.nextLine(); + funcionarioParaAtualizar.setSalario(novoSalario2); + System.out.println("Digite o novo cargo: "); + String novoCargo2 = scanner.nextLine(); + funcionarioParaAtualizar.setCargo(novoCargo2); + break; + case 4: + System.out.println("Qual o novo tipo de funcionário?"); + System.out.println("1 - Estagiário"); + System.out.println("2 - Júnior"); + System.out.println("3 - Pleno"); + System.out.println("4 - Sênior"); + System.out.println("5 - Lead"); + System.out.println("6 - Diretor"); + int tipo = scanner.nextInt(); + scanner.nextLine(); + while (tipo < 1 || tipo > 6) { + System.out.println("Tipo inválido! Digite novamente: "); + tipo = scanner.nextInt(); + } + switch (tipo) { + case 1: + Estagiario estagiario = new Estagiario(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf()); + funcionarios.remove(funcionarioParaAtualizar); + funcionarios.add((T) estagiario); + break; + case 2: + Junior junior = new Junior(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf()); + funcionarios.remove(funcionarioParaAtualizar); + funcionarios.add((T) junior); + break; + case 3: + Pleno pleno = new Pleno(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf()); + funcionarios.remove(funcionarioParaAtualizar); + funcionarios.add((T) pleno); + break; + case 4: + Senior senior = new Senior(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf()); + funcionarios.remove(funcionarioParaAtualizar); + funcionarios.add((T) senior); + break; + case 5: + Lead lead = new Lead(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf()); + funcionarios.remove(funcionarioParaAtualizar); + System.out.println("Lead: " + lead); + funcionarios.add((T) lead); + break; + case 6: + Diretor diretor = new Diretor(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf()); + funcionarios.remove(funcionarioParaAtualizar); + funcionarios.add((T) diretor); + break; + } + } + System.out.println("Dados atualizados com sucesso!"); + } else { + System.out.println("Pessoa não encontrada em nossa base!"); + } + } + + public TreeSet getFuncionarios() { + return funcionarios; + } +} \ No newline at end of file diff --git a/src/placeholderCompany/Diretor.java b/src/placeholderCompany/Diretor.java new file mode 100644 index 0000000..5137cb0 --- /dev/null +++ b/src/placeholderCompany/Diretor.java @@ -0,0 +1,18 @@ +package placeholderCompany; + +public class Diretor extends FuncionarioBase{ + + public Diretor(String nome, String cargo, double salario, String cpf) { + super(nome, cargo, salario, cpf); + } + + public void ganharBonus() { + this.salario *= 1.5; + } + + @Override + public String toString() { + return super.toString() + " - Diretor"; + } + +} diff --git a/src/placeholderCompany/Estagiario.java b/src/placeholderCompany/Estagiario.java new file mode 100644 index 0000000..e912b2a --- /dev/null +++ b/src/placeholderCompany/Estagiario.java @@ -0,0 +1,24 @@ +package placeholderCompany; + +public class Estagiario extends FuncionarioBase { + private double horasSemanais; + + public Estagiario(String nome, String cargo, double salario, String cpf) { + super(nome, cargo, salario, cpf); + this.horasSemanais = 60; + } + + public double getHorasSemanais() { + return horasSemanais; + } + + public void setHorasSemanais(double horasSemanais) { + this.horasSemanais = horasSemanais; + } + + @Override + public String toString() { + return super.toString() + " - Estagiário com " + horasSemanais + " horas semanais"; + } + +} diff --git a/src/placeholderCompany/FuncionarioBase.java b/src/placeholderCompany/FuncionarioBase.java new file mode 100644 index 0000000..ab6a9a8 --- /dev/null +++ b/src/placeholderCompany/FuncionarioBase.java @@ -0,0 +1,62 @@ +package placeholderCompany; + +public abstract class FuncionarioBase implements FuncionarioBaseInterface{ + protected String nome; + protected String cargo; + protected double salario; + protected String cpf; + + public FuncionarioBase(String nome, String cargo, double salario, String cpf) { + this.nome = nome; + this.cargo = cargo; + this.salario = salario; + this.cpf = cpf; + } + + @Override + public String getNome() { + return nome; + } + @Override + public void setNome(String nome) { + this.nome = nome; + } + @Override + public String getCargo() { + return cargo; + } + @Override + public void setCargo(String cargo) { + this.cargo = cargo; + } + @Override + public double getSalario() { + return salario; + } + @Override + public void setSalario(double salario) { + this.salario = salario; + } + @Override + public String getCpf() { + return cpf; + } + @Override + public void setCpf(String cpf) { + this.cpf = cpf; + } + + @Override + public String toString() { + return "Nome: " + nome + ", Cargo: " + cargo + ", Salário: R$" + salario + ", CPF: " + cpf; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof FuncionarioBase) { + FuncionarioBase funcionario = (FuncionarioBase) obj; + return this.cpf.equals(funcionario.getCpf()); + } + return false; + } +} \ No newline at end of file diff --git a/src/placeholderCompany/FuncionarioBaseInterface.java b/src/placeholderCompany/FuncionarioBaseInterface.java new file mode 100644 index 0000000..e52bb58 --- /dev/null +++ b/src/placeholderCompany/FuncionarioBaseInterface.java @@ -0,0 +1,12 @@ +package placeholderCompany; + +public interface FuncionarioBaseInterface { + String getNome(); + void setNome(String nome); + String getCargo(); + void setCargo(String cargo); + double getSalario(); + void setSalario(double salario); + String getCpf(); + void setCpf(String cpf); +} \ No newline at end of file diff --git a/src/placeholderCompany/Junior.java b/src/placeholderCompany/Junior.java new file mode 100644 index 0000000..d560b4c --- /dev/null +++ b/src/placeholderCompany/Junior.java @@ -0,0 +1,13 @@ +package placeholderCompany; + +public class Junior extends FuncionarioBase{ + + public Junior(String nome, String cargo, double salario, String cpf) { + super(nome, cargo, salario, cpf); + } + + @Override + public String toString() { + return super.toString() + " - Junior"; + } +} diff --git a/src/placeholderCompany/Lead.java b/src/placeholderCompany/Lead.java new file mode 100644 index 0000000..0d13706 --- /dev/null +++ b/src/placeholderCompany/Lead.java @@ -0,0 +1,18 @@ +package placeholderCompany; + +public class Lead extends FuncionarioBase{ + + public Lead(String nome, String cargo, double salario, String cpf) { + super(nome, cargo, salario, cpf); + } + + public void ganharBonus() { + this.salario *= 1.3; + } + + @Override + public String toString() { + return super.toString() + " - Lead"; + } + +} diff --git a/src/placeholderCompany/Main.java b/src/placeholderCompany/Main.java new file mode 100644 index 0000000..6784fad --- /dev/null +++ b/src/placeholderCompany/Main.java @@ -0,0 +1,8 @@ +package placeholderCompany; +import utils.*; + +public class Main { + public static void main(String[] args) { + + } +} diff --git a/src/placeholderCompany/Pleno.java b/src/placeholderCompany/Pleno.java new file mode 100644 index 0000000..aa17445 --- /dev/null +++ b/src/placeholderCompany/Pleno.java @@ -0,0 +1,20 @@ +package placeholderCompany; + +public class Pleno extends FuncionarioBase{ + + public Pleno(String nome, String cargo, double salario, String cpf) { + super(nome, cargo, salario, cpf); + } + + public void ganharBonus() { + this.salario *= 1.1; + } + + @Override + public String toString() { + return super.toString() + " - Pleno"; + } + + + +} diff --git a/src/placeholderCompany/Senior.java b/src/placeholderCompany/Senior.java new file mode 100644 index 0000000..d27400a --- /dev/null +++ b/src/placeholderCompany/Senior.java @@ -0,0 +1,17 @@ +package placeholderCompany; + +public class Senior extends FuncionarioBase { + public Senior(String nome, String cargo, double salario, String cpf) { + super(nome, cargo, salario, cpf); + } + + public void ganharBonus() { + this.salario *= 1.3; + } + + @Override + public String toString() { + return super.toString() + " - Senior"; + } + +} diff --git a/src/utils/FileManager.java b/src/utils/FileManager.java new file mode 100644 index 0000000..c8202b4 --- /dev/null +++ b/src/utils/FileManager.java @@ -0,0 +1,99 @@ +package utils; +import java.io.*; +import java.util.*; +import placeholderCompany.*; + + +public class FileManager { + public static void Teste() { + ArvoreDeFuncionarios arvore = new ArvoreDeFuncionarios<>(); + arvore.adicionar(new Diretor("João", "Diretor", 10000, "123456789")); + arvore.adicionar(new Pleno("Maria", "Pleno", 5000, "987654321")); + arvore.adicionar(new Senior("José", "Senior", 7000, "456789123")); + arvore.adicionar(new Estagiario("Pedro", "Estagiario", 1000, "789123456")); + arvore.adicionar(new Junior("Ana", "Junior", 2000, "321654987")); + arvore.mostrarTodos(); + salvarArquivoCSV(arvore, "funcionarios.csv"); + ArvoreDeFuncionarios arvore2 = carregarArquivoCSV("funcionarios.csv"); + arvore2.mostrarTodos(); + + } + public static void salvarArquivoCSV(ArvoreDeFuncionarios arvore, String nomeArquivo) { + PrintWriter writer = null; + try { + writer = new PrintWriter(new File(nomeArquivo)); + for (Object funcionario : arvore.getFuncionarios()) { + if(funcionario instanceof Diretor){ + Diretor diretor = (Diretor) funcionario; + writer.println("DIRETOR, "+ diretor.getNome() + "," + diretor.getCargo() + "," + diretor.getSalario() + "," + diretor.getCpf()); + }else if(funcionario instanceof Pleno){ + Pleno pleno = (Pleno) funcionario; + writer.println("PLENO, "+ pleno.getNome() + "," + pleno.getCargo() + "," + pleno.getSalario() + "," + pleno.getCpf()); + }else if(funcionario instanceof Senior){ + Senior senior = (Senior) funcionario; + writer.println("SENIOR, "+ senior.getNome() + "," + senior.getCargo() + "," + senior.getSalario() + "," + senior.getCpf()); + }else if(funcionario instanceof Estagiario){ + Estagiario estagiario = (Estagiario) funcionario; + writer.println("ESTAGIARIO, "+ estagiario.getNome() + "," + estagiario.getCargo() + "," + estagiario.getSalario() + "," + estagiario.getCpf()); + }else if(funcionario instanceof Junior){ + Junior junior = (Junior) funcionario; + writer.println("JUNIOR, "+ junior.getNome() + "," + junior.getCargo() + "," + junior.getSalario() + "," + junior.getCpf()); + }else if(funcionario instanceof Pleno){ + Pleno pleno = (Pleno) funcionario; + writer.println("PLENO, "+ pleno.getNome() + "," + pleno.getCargo() + "," + pleno.getSalario() + "," + pleno.getCpf()); + }else if (funcionario instanceof Lead){ + Lead lead = (Lead) funcionario; + writer.println("LEAD, "+ lead.getNome() + "," + lead.getCargo() + "," + lead.getSalario() + "," + lead.getCpf()); + } + } + } catch (FileNotFoundException e) { + System.out.println("Erro ao salvar arquivo CSV: " + e.getMessage()); + } finally { + if (writer != null) { + writer.close(); + } + } + } + public static ArvoreDeFuncionarios carregarArquivoCSV(String nomeArquivo) { + ArvoreDeFuncionarios arvore = new ArvoreDeFuncionarios<>(); + try { + Scanner scanner = new Scanner(new File(nomeArquivo)); + boolean b = false; + while(scanner.hasNextLine()){ + String linha = scanner.nextLine(); + String[] dados = linha.split(","); + String tipo = dados[0].trim(); + String nome = dados[1].trim(); + String cargo = dados[2].trim(); + double salario = Double.parseDouble(dados[3]); + String cpf = dados[4]; + if(tipo.equals("DIRETOR")){ + Diretor diretor = new Diretor(nome, cargo, salario, cpf); + arvore.adicionar(diretor, b); + }else if(tipo.equals("PLENO")){ + Pleno pleno = new Pleno(nome, cargo, salario, cpf); + arvore.adicionar(pleno, b); + }else if(tipo.equals("SENIOR")){ + Senior senior = new Senior(nome, cargo, salario, cpf); + arvore.adicionar(senior, b); + }else if(tipo.equals("ESTAGIARIO")){ + Estagiario estagiario = new Estagiario(nome, cargo, salario, cpf); + arvore.adicionar(estagiario, b); + }else if(tipo.equals("JUNIOR")){ + Junior junior = new Junior(nome, cargo, salario, cpf); + arvore.adicionar(junior, b); + }else if(tipo.equals("PLENO")){ + Pleno pleno = new Pleno(nome, cargo, salario, cpf); + arvore.adicionar(pleno, b); + } + } + return arvore; + } catch (FileNotFoundException e) { + System.out.println("Erro ao carregar arquivo CSV: " + e.getMessage()); + return null; + } + } + public static void main(String[] args) { + Teste(); + } +} diff --git a/src/utils/Menu.java b/src/utils/Menu.java new file mode 100644 index 0000000..8cd5e45 --- /dev/null +++ b/src/utils/Menu.java @@ -0,0 +1,111 @@ +package utils; +import java.util.Scanner; +import placeholderCompany.*; + +public class Menu { + + public static int Options() { + Scanner scanner = new Scanner(System.in); + System.out.println("1 - Cadastrar Funcionário"); + System.out.println("2 - Listar Funcionários"); + System.out.println("3 - Atualizar Dados de Funcionário"); + System.out.println("4 - Remover Funcionário"); + System.out.println("5 - Sair"); + System.out.print("Digite a opção desejada: "); + int opcao = scanner.nextInt(); + return opcao; + } + + public static void CadastrarFuncionario(ArvoreDeFuncionarios arvore) { + Scanner scanner = new Scanner(System.in); + System.out.println("Digite o nome do funcionário: "); + String nome = scanner.nextLine(); + System.out.println("Digite o cargo do funcionário: "); + String cargo = scanner.nextLine(); + System.out.println("Digite o salário do funcionário: "); + double salario = scanner.nextDouble(); + scanner.nextLine(); + System.out.println("Digite o CPF do funcionário: "); + String cpf = scanner.nextLine(); + System.out.println("Qual o tipo do funcionário?"); + System.out.println("1 - Estagiário"); + System.out.println("2 - Júnior"); + System.out.println("3 - Pleno"); + System.out.println("4 - Sênior"); + System.out.println("5 - Lead"); + System.out.println("6 - Diretor"); + int tipo = scanner.nextInt(); + while (tipo < 1 || tipo > 6) { + System.out.println("Tipo inválido! Digite novamente: "); + tipo = scanner.nextInt(); + } + switch (tipo) { + case 1: + Estagiario estagiario = new Estagiario(nome, cargo, salario, cpf); + arvore.adicionar(estagiario); + break; + case 2: + Junior junior = new Junior(nome, cargo, salario, cpf); + arvore.adicionar(junior); + break; + case 3: + Pleno pleno = new Pleno(nome, cargo, salario, cpf); + arvore.adicionar(pleno); + break; + case 4: + Senior senior = new Senior(nome, cargo, salario, cpf); + arvore.adicionar(senior); + break; + case 5: + Lead lead = new Lead(nome, cargo, salario, cpf); + arvore.adicionar(lead); + break; + case 6: + Diretor diretor = new Diretor(nome, cargo, salario, cpf); + arvore.adicionar(diretor); + break; + } + } + + public static void ListarFuncionarios(ArvoreDeFuncionarios arvore) { + arvore.mostrarTodos(); + } + + public static void AtualizarDados(ArvoreDeFuncionarios arvore) { + Scanner scanner = new Scanner(System.in); + System.out.println("Digite o cpf do funcionário que deseja atualizar: "); + String cpf = scanner.nextLine(); + arvore.atualizarDados(cpf); + } + + public static void RemoverFuncionario(ArvoreDeFuncionarios arvore) { + arvore.mostrarTodos(); + Scanner scanner = new Scanner(System.in); + System.out.println("Digite o cpf do funcionário que deseja remover: "); + String cpf = scanner.nextLine(); + arvore.remover(cpf); + } + public static void main(String[] args) { + ArvoreDeFuncionarios arvore = new ArvoreDeFuncionarios<>(); + arvore = FileManager.carregarArquivoCSV("funcionarios.csv"); + int opcao = Options(); + while (opcao != 5) { + switch (opcao) { + case 1: + CadastrarFuncionario(arvore); + break; + case 2: + ListarFuncionarios(arvore); + break; + case 3: + AtualizarDados(arvore); + break; + case 4: + RemoverFuncionario(arvore); + break; + } + FileManager.salvarArquivoCSV(arvore, "funcionarios.csv"); + opcao = Options(); + } + } +}