Skip to content

Main #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"CodeGPT.apiKey": "CodeGPT Plus Beta"
}
762 changes: 762 additions & 0 deletions hs_err_pid118720.log

Large diffs are not rendered by default.

6,792 changes: 6,792 additions & 0 deletions replay_pid118720.log

Large diffs are not rendered by default.

46 changes: 46 additions & 0 deletions src/funcionariosStarlabs/Area.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package funcionariosStarlabs;

import java.util.ArrayList;

public class Area {
private String nome;
private ArrayList<Colaborador> colaboradores;

public Area(ArrayList<Colaborador> colaboradores) {
this.colaboradores = colaboradores;
}

public Area(String nome) {
this.nome = nome;
this.colaboradores = new ArrayList<Colaborador>();
} // This closing brace was missing

public String getNome() {
return nome;
}

public ArrayList<Colaborador> getColaboradores() {
return colaboradores;
}

public void addColaborador(Colaborador colaborador) {
this.colaboradores.add(colaborador);
}

public void removeColaborador(Colaborador colaborador) {
this.colaboradores.remove(colaborador);
}

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

public void setColaboradores(ArrayList<Colaborador> colaboradores) {
this.colaboradores = colaboradores;
}

public Area(String nome, ArrayList<Colaborador> colaboradores) {
this.nome = nome;
this.colaboradores = colaboradores;
}
}
100 changes: 100 additions & 0 deletions src/funcionariosStarlabs/ArvoreBinaria.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
package funcionariosStarlabs;

public class ArvoreBinaria<T extends Comparable<T>> {
private No<T> raiz;

private static class No<T extends Comparable<T>> {
T valor;
No<T> esquerda;
No<T> direita;

No(T valor) {
this.valor = valor;
this.esquerda = null;
this.direita = null;
}
}

public ArvoreBinaria() {
this.raiz = null;
}

public void inserir(T valor) {
this.raiz = inserirRecursivo(this.raiz, valor);
}

private No<T> inserirRecursivo(No<T> no, T valor) {
if (no == null) {
return new No<>(valor);
}

if (valor.compareTo(no.valor) < 0) {
no.esquerda = inserirRecursivo(no.esquerda, valor);
} else if (valor.compareTo(no.valor) > 0) {
no.direita = inserirRecursivo(no.direita, valor);
}

return no;
}

public boolean buscar(T valor) {
return buscarRecursivo(this.raiz, valor);
}

private boolean buscarRecursivo(No<T> no, T valor) {
if (no == null) {
return false;
}

if (valor.compareTo(no.valor) == 0) {
return true;
}

if (valor.compareTo(no.valor) < 0) {
return buscarRecursivo(no.esquerda, valor);
} else {
return buscarRecursivo(no.direita, valor);
}
}

public void remover(T valor) {
this.raiz = removerRecursivo(this.raiz, valor);
}

private No<T> removerRecursivo(No<T> no, T valor) {
if (no == null) {
return null;
}

if (valor.compareTo(no.valor) < 0) {
no.esquerda = removerRecursivo(no.esquerda, valor);
} else if (valor.compareTo(no.valor) > 0) {
no.direita = removerRecursivo(no.direita, valor);
} else {
if (no.esquerda == null) {
return no.direita;
} else if (no.direita == null) {
return no.esquerda;
}

no.valor = menorValor(no.direita);
no.direita = removerRecursivo(no.direita, no.valor);
}

return no;
}

private T menorValor(No<T> no) {
T menorValor = no.valor;
while (no.esquerda != null) {
menorValor = no.esquerda.valor;
no = no.esquerda;
}
return menorValor;
}

public Colaborador[] getAllNodes() {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'getAllNodes'");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Colaborador colaboradorEncontrado = extracted(colaborador1, arvoreColaboradores);
if (colaboradorEncontrado!= null) {
colaboradorEncontrado.updateInfo("Ana Silva", "Desenvolvedora Sênior", 6000.0, area1, gerente1);
} else {
System.out.println("Colaborador não encontrado.");
}
55 changes: 55 additions & 0 deletions src/funcionariosStarlabs/Colaborador.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package funcionariosStarlabs;

public class Colaborador implements Comparable<Colaborador> {
private int id;
private String nome;
private String cargo;
private double salario;
private Area area;
private Gerente gerente;

public static int nextId = 1;

public Colaborador(String string, String string2, double d, Area area2, Gerente gerente2) {
// TODO Auto-generated constructor stub
}

public Colaborador() {
// TODO Auto-generated constructor stub
}

public void updateInfo(String nome, String cargo, double salario, Area area, Gerente gerente) {
this.nome = nome;
this.cargo = cargo;
this.salario = salario;
this.area.removeColaborador(this);
this.area = area;
this.area.addColaborador(this);
this.gerente.removeSubordinado(this);
this.gerente = gerente;
this.gerente.addSubordinado(this);
}

// Getters, setters, and other methods...

@Override
public int compareTo(Colaborador outroColaborador) {
// Implement the comparison logic here
// For example, to compare by name:
return this.getNome().compareTo(outroColaborador.getNome());
}

private Colaborador getNome() {
throw new UnsupportedOperationException("Unimplemented method 'getNome'");
}

@Override
public String toString() {
return "Colaborador [id=" + id + ", nome=" + nome + ", cargo=" + cargo + ", salario=" + salario + ", area="
+ area + ", gerente=" + gerente + "]";
}

public void setGerente(Gerente gerente2) {
this.gerente = gerente2;
}
}
27 changes: 27 additions & 0 deletions src/funcionariosStarlabs/Gerente.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package funcionariosStarlabs;

import java.util.ArrayList; // Ensure this line is present

public class Gerente extends Colaborador {
private ArrayList<Colaborador> subordinados;

public Gerente(String nome, String cargo, double salario, Area area) {
super(nome, cargo, salario, area, null);
this.subordinados = new ArrayList<Colaborador>();
// Rest of your class code...
}

public ArrayList<Colaborador> getSubordinados() {
return subordinados;
}

public void addSubordinado(Colaborador colaborador) {
this.subordinados.add(colaborador);
colaborador.setGerente(this);
}

public void removeSubordinado(Colaborador colaborador) {
this.subordinados.remove(colaborador);
colaborador.setGerente(null);
}
}
63 changes: 63 additions & 0 deletions src/funcionariosStarlabs/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package funcionariosStarlabs;

public class Main {
public static void main(String[] args) {
// Criação de áreas
Area area1 = new Area("Desenvolvimento");
Area area2 = new Area("Recursos Humanos");
Area novaArea = new Area("Marketing");

// Criação de gerentes
Gerente gerente1 = new Gerente("Andre Gonsalves", "Gerente de Desenvolvimento", 10000.0, area1);
Gerente gerente2 = new Gerente("Carla Guedes", "Gerente de Recursos Humanos", 8000.0, area2);
Gerente novoGerente = new Gerente("Ana", "Gerente de Marketing", 8500.0, novaArea);

// Criação de colaboradores
Colaborador colaborador1 = new Colaborador();
Colaborador colaborador2 = new Colaborador("Pedro", "Analista de RH", 4000.0, area2, gerente2);
Colaborador colaborador3 = new Colaborador("Lucas", "Desenvolvedor", 6000.0, area1, gerente1);
Colaborador novoColaborador = new Colaborador("João", "Analista de Marketing", 4000.0, novaArea, novoGerente);

// Criação da árvore binária de colaboradores
final ArvoreBinaria<Colaborador> arvoreColaboradores = new ArvoreBinaria<>();
arvoreColaboradores.inserir(colaborador1);
arvoreColaboradores.inserir(colaborador2);
arvoreColaboradores.inserir(colaborador3);
arvoreColaboradores.inserir(novoColaborador);

// Atualizando as informações de um colaborador existente
Colaborador colaboradorEncontrado = extracted(colaborador1, arvoreColaboradores);
if (colaboradorEncontrado != null) {
colaboradorEncontrado.updateInfo("Ana Silva", "Desenvolvedora Sênior", 6000.0, area1, gerente1);
} else {
System.out.println("Colaborador não encontrado.");
}

// Testes
System.out.println("Colaborador encontrado: " + extracted(colaborador2, arvoreColaboradores));
arvoreColaboradores.remover(colaborador1);
System.out
.println();
}

Main getNome() {
// TODO #6 Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'getNome'");
}

private static Colaborador extracted(Colaborador colaborador1,
final ArvoreBinaria<Colaborador> arvoreColaboradores) {
for (Colaborador col : arvoreColaboradores.getAllNodes()) { // Hypothetical getAllNodes method
if (col.equals(colaborador1)) {
return col;
}
}
return null;
}

public int compareTo(Colaborador nome) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'compareTo'");
}
}
// Classe Colaborador