Dúvidas - Sistema Acadêmico (Cadastro Alunos e professores)

5 respostas
M

Então, preciso fazer um programa que cadastre Alunos e professores, no entanto, só consigo fazer o cadastro e pesquisa de 1 aluno somente, obviamente, o programa tem o objetivo de cadastrar mais de 1 aluno, e é bem ai que estou encontrando dificuldade, ou seja, eu sei que preciso de um vetor pra armazenar cada dado para os alunos e profs, mas desconfio que os métodos gets e sets sofreriam com isso. Eu teria de utilizar arrays nos métodos gets e set? Enfim, não sei como prosseguir o programa para cadastrar mais de 1 aluno ou professor.

Classe Principal

package sistemaacademico2;

import javax.swing.JOptionPane;

public class Sistemaacademico2 {

    Aluno objAluno = new Aluno();               // objeto Aluno
    Professor objProfessor = new Professor();   // objeto Professor

    public void cadastrarAluno() {

        objAluno.setNome(JOptionPane.showInputDialog("Insira o nome do aluno: "));
        objAluno.setMatricula(JOptionPane.showInputDialog("Insira a matrícula do aluno: "));
        objAluno.setCurso(JOptionPane.showInputDialog("Insira o curso do aluno: "));
        objAluno.setEndereco(JOptionPane.showInputDialog("Insira o endereço do aluno: "));
        objAluno.setSexo(JOptionPane.showInputDialog("Insira o sexo do aluno: "));
        objAluno.setTelefone(JOptionPane.showInputDialog("Insira o telefone do aluno: "));

    } // cadastrarAluno

    public void pesquisarAluno() {

        String matricula;           // matrícula do aluno a ser pesquisado

        matricula = JOptionPane.showInputDialog("Insira a matrícula do aluno a ser pesquisado: ");

        if (objAluno.getMatricula().equals(matricula)) {

            JOptionPane.showMessageDialog(null, "Aluno consta no sistema!\nNome: " + objAluno.getNome()
                    + "\nEndereço: " + objAluno.getEndereco() + "\nCurso: " + objAluno.getCurso()
                    + "\nSexo: " + objAluno.getSexo() + "\nTelefone: " + objAluno.getTelefone());
        } // if
        else {
            JOptionPane.showMessageDialog(null, "Aluno não encontrado!", "Aviso", JOptionPane.ERROR_MESSAGE);
        }


    } // pesquisarAluno

    public static void main(String[] args) {

        int OpcaoMenu;                                      // opção do menu
        Sistemaacademico2 SA = new Sistemaacademico2();

        do { // loop para menu de opções

            OpcaoMenu = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite uma Opção: \n\n"
                    + "Opção 1: Cadastrar Aluno \n"
                    + "Opção 2: Cadastrar Professor \n"
                    + "Opção 3: Pesquisar Aluno \n"
                    + "Opção 4: Pesquisar Professor \n"
                    + "Opção 5: Excluir Aluno \n"
                    + "Opção 6: Excluir Professor \n"
                    + "Opção 7: SAIR \n\n", "Menu de Opções", JOptionPane.PLAIN_MESSAGE));


            switch (OpcaoMenu) { // switch avalia opção do operador

                case 1: // cadastrar aluno

                    SA.cadastrarAluno();

                    break;
                case 2: // cadastrar professor
                    break;
                case 3: // pesquisar aluno 

                    SA.pesquisarAluno();

                    break;
                case 4: // pesquisar professor
                    break;
                case 5: // excluir aluno
                    break;
                case 6: // excluir professor
                    break;
                case 7: // sair do programa
                    break;
                default: // opção inválida
                    JOptionPane.showMessageDialog(null, "Opção Inválida", "Aviso", JOptionPane.ERROR_MESSAGE);
                    break;
            } // switch         
        } while (OpcaoMenu != 7);
    } // main
} // SistemaAcademico2

classe Professor

package sistemaacademico2;

public class Professor extends Pessoa {

    private String registro,    // registro do professor
            disciplinas;          // disciplinas dos professores

    public void setRegistro(String registro) {
        this.registro = registro;
    }

    public String getRegistro() {
        return (registro);
    }

    public void setDisciplinas(String disciplinas) {
        this.disciplinas = disciplinas;
    }

    public String getDisciplinas() {
        return (disciplinas);
    }
} // classe Professor

classe Aluno

package sistemaacademico2;

public class Aluno extends Pessoa {

    private String matricula, // matrícula do aluno
            curso;                // curso do aluno

    public String getMatricula() {
        return matricula;
    }

    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }

    public String getCurso() {
        return (curso);
    }

    public void setCurso(String curso) {
        this.curso = curso;
    }
} // classe Aluno

classe Pessoa

package sistemaacademico2;

public class Pessoa {

    private String nome,  // nome do aluno ou professor
            endereco,       // endereço do aluno ou professor
            telefone,       // telefone do aluno ou professor
            sexo;           // sexo do aluno ou professor

    public String getNome() {
        return (nome);
    }

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

    public String getTelefone() {
        return (telefone);
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public String getEndereco() {
        return (endereco);
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getSexo() {
        return (sexo);
    }

    public void setSexo(String sexo) {
        this.sexo = sexo;
    }
} // classe Pessoa

5 Respostas

fernandosavio

Não entendi porque você está instanciando um objeto SistemaAcademico2 dentro dele mesmo?!

M

Pelo pouco conhecimento que tenho, imaginei que eu precisaria de um objeto da classe sistemaacademico pra poder usar os métodos como por ex, o de cadastrar alunos. Cometi um absurdo ao fazer isso foi? =/ ahuauhahu

fernandosavio

Se você já está dentro da classe não precisa instanciá-la, é só chamar o método diretamente!

S

MuKo:
Então, preciso fazer um programa que cadastre Alunos e professores, no entanto, só consigo fazer o cadastro e pesquisa de 1 aluno somente, obviamente, o programa tem o objetivo de cadastrar mais de 1 aluno, e é bem ai que estou encontrando dificuldade, ou seja, eu sei que preciso de um vetor pra armazenar cada dado para os alunos e profs, mas desconfio que os métodos gets e sets sofreriam com isso. Eu teria de utilizar arrays nos métodos gets e set? Enfim, não sei como prosseguir o programa para cadastrar mais de 1 aluno ou professor.

Boa tarde pessoal, então, ficou um pouco confuso sua necessidade de utilizar arrays para cadastro tanto de professor quanto de aluno, afinal vc ja utiliza um laço (do{…}while) para gravá-los, a menos que vc queira gravar todos de uma só vez.

Vamos analisar os dois pontos de vista:

Pode-se cadastrar cada aluno ou professor do jeito que está ao entrar no case correspondente no switch, desde que se passe o objeto para o metodo para que ele execute-o, ex:

public void cadastrarAluno(Aluno aluno) {  
     // efetua o cadastro do aluno
}

e para professor a mesma coisa:

public void cadastrarProfessor(Professor professor) {  
     // efetua o cadastro do professor
}

Agora caso vc realmente necessite gravar um array, basta passá-lo como parâmetro para o método de cadastro:

public void cadastrarAlunos(Aluno[] alunos) {  
     // efetua o cadastro dos alunos iterando um laço
}

e para professor a mesma coisa:

public void cadastrarProfessores(Professor[] professores) {  
     // efetua o cadastro dos professores iterando um laço
}

Você é quem faz a regra cara, basta escolher o mais simples para você fazer e o sistema pode sim, cadastrar mais de aluno ou professor sem o uso de arrays (aliás vc já faz isso mas ainda nao percebeu, observe melhor os procedimentos dentro do laço while e vai chegar a uma conclusão).

Perdoe se ao invés de ajudar eu estiver atrapalhando, mas é que realmente me confundi com essa parte de “ter que usar array”.

abraço.

R

Na sua classe SistemaAcademio você provavelmente terá que ter 2 arrays: um para armazenar os alunos e outro para armazenar os professores.

Com isso, sempre que você adicionar um aluno/professor, você tem que incluir este objeto (aluno ou professor) no seu respectivo array para que fique armazenado e, quando você for pesquisar, você encontre.

Então, já vai outra dica: na hora de pesquisar professor ou aluno, você terá que percorrer o vetor correspondente.

Abraço

Criado 2 de outubro de 2011
Ultima resposta 4 de out. de 2011
Respostas 5
Participantes 4