Lista de Exercícios

Pessoal, boa tarde. O professor nós mandou fazer uma lista de exercícios onde tenho que entregar até o final da semana, mas por incrível que parece ele teve que viajar e eu não tenho a quem perguntar. Quem pode me ajudar? Deste já agradeço a atenção de todos.

  1. Modele um funcionário. Ele deve ter o nome do funcionário, o departamento onde trabalha, seu salário (double), a data de entrada no banco, seu RG (String) e um valor booleano que indique se o funcionário ainda está ativo na empresa ou se já foi mandado embora. Você deve criar alguns métodos de acordo com sua necessidade. Além deles, crie um método bonifica que aumenta o salario do funcionário de acordo com o parâmetro passado como argumento. Crie, também, um método demite, que não recebe parâmetro algum, só modifica o valor booleano indicando que o funcionário
    não trabalha mais aqui. A idéia aqui é apenas modelar, isto é, só identifique que informações são importantes e o que um funcionário faz. Desenhe no papel tudo o que um Funcionario tem e tudo que ele faz.

  2. Transforme o modelo acima em uma classe Java. Teste-a, usando uma outra classe que tenha o main. Você deve criar a classe do funcionário chamada Funcionario, e a classe de teste você pode nomear como quiser. A de teste deve possuir o método main.

  3. Crie um método mostra(), que não recebe nem devolve parâmetro algum e simplesmente imprime todos os atributos do nosso funcionário. Dessa maneira, você não precisa ficar copiando e colando um monte de System.out.println() para cada mudança e teste que fizer com cada um de seus funcionários

  4. Além de um funcionário comum, há também outros cargos, como os gerentes. Os gerentes guardam a mesma informação que um funcionário comum, mas possuem outras informações, além de ter funcionalidades um pouco diferentes. Um gerente no nosso banco possui também uma senha numérica que permite o acesso ao sistema interno do banco, além do número de funcionários que ele gerencia. Crie também um método autentica() que verifica se a senha informada e a senha do gerente (ele devera retornar verdadeiro ou falso).

a. Forneça todos os métodos assessores e modificadores necessários para todos os atributos.
b. Construtores.

  1. Crie uma classe AgendaGerentes que possa conter entradas de objetos tipo Registro de Agenda. Devem ser oferecidos os seguintes métodos para a agenda:
    Adicionar registro
    Excluir registro
    Visualizar registros
    Modificar um registro

  2. Crie uma classe chamada ExecutorAgendaGerente que possua um metodo main que crie um objeto do tipo agendaGerente e adicione um registro, depois visualize o registro, depois modifique o registro e depois exclua o registro.

Da segunda adiante.

public class Funcionario {
    /* Atributos */
    private String nome;
    private String depto;
    private String dtRegistro;
    private String rg;
    private boolean fgAtivo;
    private double salario;
    
    public void setNome(String nome) {
        this.nome = nome;
    }
    public void setDepto(String depto) {
        this.depto = depto;
    }
    public void setRegistro(String dtRegistro) {
        this.dtRegistro = dtRegistro;
    }
    public void setRg(String rg) {
        this.rg = rg;
    }
    public void setAtivo(boolean fgAtivo) {
        this.fgAtivo = fgAtivo;
    }
    public void setSalario(double salario) {
        this.salario = salario;
    }    
    public String getNome() {
        return nome;
    }
    public String getDepto() {
        return depto;
    }
    public String getRegistro() {
        return dtRegistro;
    }
    public String getRg() {
        return rg;
    }
    public boolean getAtivo() {
        return fgAtivo;
    }
    public double getSalario() {
        return salario;
    }    
    /* Metodos */
    public void aumentaSalario(double dPercentual) {
        double vSalario;
        
        vSalario = getSalario();
        vSalario += (vSalario * dPercentual) / 100;
        setSalario(vSalario);        
    }
    
    public void mostra() {
        System.out.println("Nome........: " + getNome());  
        System.out.println("Registro....: " + getRegistro());  
        System.out.println("Departamento: " + getDepto());  
        System.out.println("Numero Docto: " + getRg());  
        System.out.println("Salario.....: " + getSalario());              
    }
}

(2)

public class TestaFuncionario {
    
    /* Projeto Testa Funcionario - Menu Principal */
    public static void main(String[] args) {
        //Funcionario 1.
        Funcionario func1 = new Funcionario();
        //Funcionario 2.
        Funcionario func2 = new Funcionario();
        
        func1.setNome("Funcionario 1");
        func1.setDepto("Informática");
        func1.setRegistro("24/09/2012");
        func1.setRg("49559999");
        func1.setAtivo(true);
        func1.setSalario(2000);
        
        func1.mostra(); //mostra os dados atribuidos ao programa.  
  
        if (func1.getAtivo()) {  
            func1.aumentaSalario(5);
            System.out.println("Esta trabalhado e ganhou um aumento!");  
        } else {  
            System.out.println("Não está trabalhando!");  
        }  
        System.out.println("Salario: " + func1.getSalario());
        
        System.out.println("=================================================");
        
        func2.setNome("Funcionario 2");
        func2.setDepto("Programação");
        func2.setRegistro("24/09/2015");
        func2.setRg("49511");
        func2.setAtivo(true);
        func2.setSalario(3000);        
        
        func2.mostra(); //mostra os dados atribuidos ao programa.  
  
        if (func2.getAtivo()) {  
            func2.aumentaSalario(8);
            System.out.println("Esta trabalhado e ganhou um aumento!");  
        } else {  
            System.out.println("Não está trabalhando!");  
        }  
        System.out.println("Salario: " + func2.getSalario());        
    }
}

(3) - Esta junto com a classe Funcionario.

(4) - Pelo que entendi e assim que funciona.

public class Gerente extends Funcionario {
    /* Atributos */
    private int iSenha;
    private int iFuncionarioGerencia;
    
    public void setSenha(int iSenha) {
        this.iSenha = iSenha;
    }
    public void setFuncionarioGerencia (int iFuncionarioGerencia) {
        this.iFuncionarioGerencia = iFuncionarioGerencia;
    }    
    public int getSenha() {
        return iSenha;
    }
    public int getFuncionarioGerencia() {
        return iFuncionarioGerencia;
    }
    /* Metodos */
    public boolean autentica(int iSenha) {
        boolean bOk;
        if (getSenha() == iSenha) {
            bOk = true;
        } else {
            bOk = false;
        }
        return bOk;
    }
}

Da 5 adiantes estou com dúvida de como fazer, alguém pode me ajudar? Mais uma vez obrigado!

Ah! Tava esquecendo, não posso usar banco de dados, tenho que trabalhar com arquivo, vetor, arrayList. :slight_smile: :lol:

Não fazemos lição de casa.
Se deseja ajuda, permita-se ajudar.
Poste dúvidas e não peça para fazermos seu trabalho.

Por isso que eu falei dúvida e não fazer para mim… leia com atenção antes de responder. pedi foi opinião de como fazer.

Pois então. Como posso fazer a classe AgendaGerentes que possa conter entrada de objetos do tipo Registro de Agenda. Como se fosse compromisso? As vezes o entendimento de alguém e diferente da minha.

Eu acho que nesse caso é bem direto. uma classe Agenda que possui uma lista de Registro

e essa classe Registro possui os atributos pedidos no exercício.

AgendaGerentes é uma classe que, entre outras coisas, contém uma lista de RegistroDeAgenda. (Ela contém métodos para lidar com essa lista).

Um RegistroDeAgenda é realmente um compromisso (pense na agenda eletrônica do seu celular. Que coisas ela tem? Não precisa pôr tudo, só o que ele pediu. Se ele não pediu nada, ponha só coisas básicas, como horário, duração, assunto e local).

De modo geral, esse exercício não tem nada esquisito e pode ser modelado usando-se exemplos do mundo real.

[quote=digaoneves]Eu acho que nesse caso é bem direto. uma classe Agenda que possui uma lista de Registro

e essa classe Registro possui os atributos pedidos no exercício.[/quote]

Tipo Registro de compromisso, posso fazer por exemplo…

Gerente = 1
Compromisso.
1 = Antendimento.
2 = Planejamento.

E assim por diante? Obrigado!

[quote=entanglement][quote]
5. Crie uma classe AgendaGerentes que possa conter entradas de objetos tipo Registro de Agenda. Devem ser oferecidos os seguintes métodos para a agenda:
Adicionar registro
Excluir registro
Visualizar registros
Modificar um registro
[/quote]

AgendaGerentes é uma classe que, entre outras coisas, contém uma lista de RegistroDeAgenda. (Ela contém métodos para lidar com essa lista).

Um RegistroDeAgenda é realmente um compromisso (pense na agenda eletrônica do seu celular. Que coisas ela tem? Não precisa pôr tudo, só o que ele pediu. Se ele não pediu nada, ponha só coisas básicas, como horário, duração, assunto e local).

De modo geral, esse exercício não tem nada esquisito e pode ser modelado usando-se exemplos do mundo real. [/quote]

Há sim, entendi pelo modo que explicou, vou fazer e postar aqui para ir acompanhando. Só um instante. :slight_smile:

[quote=luciolt]Por isso que eu falei dúvida e não fazer para mim… leia com atenção antes de responder. pedi foi opinião de como fazer.
[/quote]
Você levou quanto tempo para escrever tudo?
Deve estar muito ocupado trabalhando, certo? Ah, não, sou eu que trabalho demais.
Logo, não tenho tempo para falta de objetividade.
Interpretar o enunciado e pensar na resolução são partes fundamentais do processo de resolução.
Logo, você não está se ajudando.

Enfim, boa sorte. Vai precisar.

[quote=drsmachado][quote=luciolt]Por isso que eu falei dúvida e não fazer para mim… leia com atenção antes de responder. pedi foi opinião de como fazer.
[/quote]
Você levou quanto tempo para escrever tudo?
Deve estar muito ocupado trabalhando, certo? Ah, não, sou eu que trabalho demais.
Logo, não tenho tempo para falta de objetividade.
Interpretar o enunciado e pensar na resolução são partes fundamentais do processo de resolução.
Logo, você não está se ajudando.

Enfim, boa sorte. Vai precisar.[/quote]

Tem gente para tudo, certo? Primeiramente, estou de férias do meu trabalho apesar que não tenho que dar explicações sobre o que faço ou deixo de fazer, se você não vai ajudar já que “ESTÁ TRABALHANDO MUITO” então me faz o favor de não responder, não precisa se dar ao trabalho de responder sem uma resposta positiva, não concorda? Continua o que está fazendo que e melhor. Agradeço o tempo que perdeu do seu dia “CORRIDO”. Como está vendo são dúvidas bobas que realmente não precisava do seu mal humor para responder.

1 curtida
public class AgendaGerentes {
    
    private String sCompromisso;
    private String sAssunto;
    private String sLocal;
    private String sHora; //Vou passar como Hora Depois.
    
    public void setCompromisso(String sCompromisso) {
        this.sCompromisso = sCompromisso;
    }
    public void setAssunto(String sAssunto) {
        this.sAssunto = sAssunto;
    }
    public void setLocal(String sLocal) {
        this.sLocal = sLocal;
    }
    public void setHora(String sHora) {
        this.sHora = sHora;
    }
    
    public String getCompromisso() {
        return sCompromisso;
    }
    public String getAssunto() {
        return sAssunto;
    }
    public String getLocal() {
        return sLocal;
    }
    public String getHora() {
        return sHora;
    }
}

Não tenho que referenciar essa lista de agenda para o Gerente? Tipo um Codigo do gerente.

  1. Crie uma classe AgendaGerentes que possa conter entradas de objetos tipo Registro de Agenda. Devem ser oferecidos os seguintes métodos para a agenda:
    Adicionar registro
    Excluir registro
    Visualizar registros
    Modificar um registro

Da forma como voce fez, nao esta como o seu professor pediu certo ? cade os metodos que ele pediu ?

A meu ver, acredito que o que ele ta pedindo é pra voce criar uma classe AgendaGerentes com os metodos acima citado, e os metodos vao chamar outra classe, acho que deve ser a classe Agenda. Na classe agenda voce pode por alguns dados basicos: nome, data, hora, assunto. Sendo que a classe Agenda dentro da classe AgendaGerentes será um Array, para armazenar vários objetos agenda…Espero que tenha me entendido.

[quote=rof20004]5. Crie uma classe AgendaGerentes que possa conter entradas de objetos tipo Registro de Agenda. Devem ser oferecidos os seguintes métodos para a agenda:
Adicionar registro
Excluir registro
Visualizar registros
Modificar um registro

Da forma como voce fez, nao esta como o seu professor pediu certo ? cade os metodos que ele pediu ?

A meu ver, acredito que o que ele ta pedindo é pra voce criar uma classe AgendaGerentes com os metodos acima citado, e os metodos vao chamar outra classe, acho que deve ser a classe Agenda. Na classe agenda voce pode por alguns dados basicos: nome, data, hora, assunto. Sendo que a classe Agenda dentro da classe AgendaGerentes será um Array, para armazenar vários objetos agenda…Espero que tenha me entendido.[/quote]

Entendi sim, criar uma classe Agenda para guardar as informações de registro e outra classe de AgendaGerentes com os métodos acima, passando o classe agenda como parâmetro.

Deu certo aqui, muito obrigado a todos pela ajuda.

Compartilhe conosco como ficou sua classe AgendaGerentes e Agenda. Obrigado =D

Exercicio legal eu gostei, upa o seu JAR em algum lugar pra gente pegar :smiley:

Faz uma conexão com o banco agora e add os funcionarios e depois so busca eles para seguir o mesmo processo ao inves de ficar colocando na hora :wink:

PRA CIMA DELES MLQ !

Vou colocar, tenho que acabar o acabamento do projeto e vou postar aqui para vocês verem como ficou. Deixa so eu acabar de organizar os códigos aqui e já posto. Vlw!

Como havia prometido, terminei hoje, estava arrumando os detalhes que tava faltando, obrigado a todos… :lol: Quem quiser modificar e postar os exemplos “Melhorias” fiquem a vontade. Segue a URL, foi o lugar mais fácil para hospedar arquivo, se quiserem em outro lugar avisa. vlw

http://www.4shared.com/rar/SRr_phcw/Prova.html?