Ajuda código

2 respostas
anunes
package visao;

import javax.swing.JOptionPane;

import java.util.ArrayList;

import objetos.Endereco;
import objetos.Medico;
import objetos.Telefone;

public class ClassePrincipalTeste {

    public static void main(String[] args) {

        ArrayList<Medico> medicos = new ArrayList<Medico>();

        int acao = 50;
        Integer busca;
        Integer especialidade = null;
        Medico medico = null;
        int i = 0;
        String especialidades = "";

        while (acao != 0) {

            acao = Integer.parseInt(JOptionPane.showInputDialog(null, "---------- Opção ----------"
                    + "\n" + "1 - Cadastrar Médico" + "\n" + "2 - Procurar Médico" + "\n"
                    + "3 - Editar Médico" + "\n" + "4 - Excluir Médico" + "\n"
                    + "0 - Encerrar Programa", "Escolha o que fazer", JOptionPane.QUESTION_MESSAGE));

            //Switch de escolha das ações

            switch (acao) {
                case 1: //Cadastrar

                    String nome = JOptionPane.showInputDialog(null, "digite o nome: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                    Integer crm = Integer.parseInt(JOptionPane.showInputDialog(null, "digite o crm: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE));
                    especialidade = Integer.parseInt(JOptionPane.showInputDialog(null, "digite a especialidade \n ex: \n 1 - Cardiologia \n 2 - Dermatologia \n 3 - Neurologia \n Opção: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE));
                    String logradouro = JOptionPane.showInputDialog(null, "digite o logradouro: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                    String bairro = JOptionPane.showInputDialog(null, "digite o bairro: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                    String cidade = JOptionPane.showInputDialog(null, "digite o cidade: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                    String cep = JOptionPane.showInputDialog(null, "digite o cep: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                    String estado = JOptionPane.showInputDialog(null, "digite o estado: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                    String complemento = JOptionPane.showInputDialog(null, "digite o complemento: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                    String referencia = JOptionPane.showInputDialog(null, "digite o referencia: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);

                    Endereco endereco = new Endereco(logradouro, bairro, cidade, cep, estado, complemento, referencia);

                    String ddd = JOptionPane.showInputDialog(null, "digite o ddd: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                    String numero = JOptionPane.showInputDialog(null, "digite o numero: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);

                    Telefone telefone = new Telefone(ddd, numero);

                    medico = new Medico(nome, crm, especialidade, endereco, telefone);


                    //Switch de cadastro

                    switch (especialidade) {
                        case 1:
                            especialidades = "Cardiologista";
                            medicos.add(medico);
                            JOptionPane.showMessageDialog(null,
                                    "Nome: " + medicos.get(i).getNome() + "\n"
                                    + "CRM: " + medicos.get(i).getCrm() + "\n"
                                    + "Especialidade: " + especialidades + "\n"
                                    + "---------- Endereço ----------" + "\n"
                                    + "Logradouro: " + medicos.get(i).getEndereco().getLogradouro() + "\n"
                                    + "Bairro: " + medicos.get(i).getEndereco().getBairro() + "\n"
                                    + "Cidade: " + medicos.get(i).getEndereco().getCidade() + "\n"
                                    + "Cep: " + medicos.get(i).getEndereco().getCep() + "\n"
                                    + "Estado: " + medicos.get(i).getEndereco().getEstado() + "\n"
                                    + "Complemento: " + medicos.get(i).getEndereco().getComplemento() + "\n"
                                    + "Ponto de referencia: " + medicos.get(i).getEndereco().getReferencia() + "\n"
                                    + "---------- Telefone ----------" + "\n"
                                    + "Numero: " + medicos.get(i).getTelefone().getDdd() + " "
                                    + medicos.get(i).getTelefone().getNumero(), "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                            i++;
                            break;
                        case 2:
                            especialidades = "Dermatologista";
                            medicos.add(medico);

                            JOptionPane.showMessageDialog(null,
                                    "Nome: " + medicos.get(i).getNome() + "\n"
                                    + "CRM: " + medicos.get(i).getCrm() + "\n"
                                    + "Especialidade: " + especialidades + "\n"
                                    + "---------- Endereço ----------" + "\n"
                                    + "Logradouro: " + medicos.get(i).getEndereco().getLogradouro() + "\n"
                                    + "Bairro: " + medicos.get(i).getEndereco().getBairro() + "\n"
                                    + "Cidade: " + medicos.get(i).getEndereco().getCidade() + "\n"
                                    + "Cep: " + medicos.get(i).getEndereco().getCep() + "\n"
                                    + "Estado: " + medicos.get(i).getEndereco().getEstado() + "\n"
                                    + "Complemento: " + medicos.get(i).getEndereco().getComplemento() + "\n"
                                    + "Ponto de referencia: " + medicos.get(i).getEndereco().getReferencia() + "\n"
                                    + "---------- Telefone ----------" + "\n"
                                    + "Numero: " + medicos.get(i).getTelefone().getDdd() + " "
                                    + medicos.get(i).getTelefone().getNumero(), "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                            i++;
                            break;
                        case 3:
                            especialidades = "Neurologista";
                            medicos.add(medico);
                            JOptionPane.showMessageDialog(null,
                                    "Nome: " + medicos.get(i).getNome() + "\n"
                                    + "CRM: " + medicos.get(i).getCrm() + "\n"
                                    + "Especialidade: " + especialidades + "\n"
                                    + "---------- Endereço ----------" + "\n"
                                    + "Logradouro: " + medicos.get(i).getEndereco().getLogradouro() + "\n"
                                    + "Bairro: " + medicos.get(i).getEndereco().getBairro() + "\n"
                                    + "Cidade: " + medicos.get(i).getEndereco().getCidade() + "\n"
                                    + "Cep: " + medicos.get(i).getEndereco().getCep() + "\n"
                                    + "Estado: " + medicos.get(i).getEndereco().getEstado() + "\n"
                                    + "Complemento: " + medicos.get(i).getEndereco().getComplemento() + "\n"
                                    + "Ponto de referencia: " + medicos.get(i).getEndereco().getReferencia() + "\n"
                                    + "---------- Telefone ----------" + "\n"
                                    + "Numero: " + medicos.get(i).getTelefone().getDdd() + " "
                                    + medicos.get(i).getTelefone().getNumero(), "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                            i++;
                            break;
                    }
                    break;
                case 2: // Buscar                     
                    busca = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe o CRM do Médico: ",
                            "Busca", JOptionPane.QUESTION_MESSAGE)); 
                        for (int z = 0; z < medicos.size();z++) {
                            if (1 == medico.getEspecialidade()){
                                especialidades = "cardiologista";
                            }else if (2 == medico.getEspecialidade()){
                                especialidades = "dermatologista";
                            }else if(3 == medico.getEspecialidade()){
                                especialidades = "neurologista";
                            }else{
                                JOptionPane.showMessageDialog(null, "Especialidade Errada", "ERRO",JOptionPane.ERROR_MESSAGE);
                            }
                        if (busca == (medicos.get(z).getCrm())) {
                            JOptionPane.showMessageDialog(null,
                                    "Nome: " + medicos.get(z).getNome() + "\n"
                                    + "CRM: " + medicos.get(z).getCrm() + "\n"
                                    + "Especialidade: " + especialidades + "\n"
                                    + "---------- Endereço ----------" + "\n"
                                    + "Logradouro: " + medicos.get(z).getEndereco().getLogradouro() + "\n"
                                    + "Bairro: " + medicos.get(z).getEndereco().getBairro() + "\n"
                                    + "Cidade: " + medicos.get(z).getEndereco().getCidade() + "\n"
                                    + "Cep: " + medicos.get(z).getEndereco().getCep() + "\n"
                                    + "Estado: " + medicos.get(z).getEndereco().getEstado() + "\n"
                                    + "Complemento: " + medicos.get(z).getEndereco().getComplemento() + "\n"
                                    + "Ponto de referencia: " + medicos.get(z).getEndereco().getReferencia() + "\n"
                                    + "---------- Telefone ----------" + "\n"
                                    + "Numero: " + medicos.get(z).getTelefone().getDdd() + " "
                                    + medicos.get(z).getTelefone().getNumero(), "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                            break;
                        }
                    }
                case 3: //Editar
                    busca = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a crm do medico a ser editado:", "Edição", JOptionPane.INFORMATION_MESSAGE));
                    for (int z = 0; z < medicos.size();z++) {
                        if (busca == (medicos.get(z).getCrm())) {
                        nome = JOptionPane.showInputDialog(null, "digite o nome: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                        crm = Integer.parseInt(JOptionPane.showInputDialog(null, "digite o crm: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE));
                        especialidade = Integer.parseInt(JOptionPane.showInputDialog(null, "digite a especialidade \n ex: \n 1 - Cardiologia \n"
                                + " 2 - Dermatologia \n 3 - Neurologia \n Opção: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE));
                        logradouro = JOptionPane.showInputDialog(null, "digite o logradouro: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                        bairro = JOptionPane.showInputDialog(null, "digite o bairro: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                        cidade = JOptionPane.showInputDialog(null, "digite o cidade: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                        cep = JOptionPane.showInputDialog(null, "digite o cep: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                        estado = JOptionPane.showInputDialog(null, "digite o estado: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                        complemento = JOptionPane.showInputDialog(null, "digite o complemento: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                        referencia = JOptionPane.showInputDialog(null, "digite o referencia: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);

                        endereco = new Endereco(logradouro, bairro, cidade, cep, estado, complemento, referencia);

                        ddd = JOptionPane.showInputDialog(null, "digite o ddd: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                        numero = JOptionPane.showInputDialog(null, "digite o numero: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);

                        telefone = new Telefone(ddd, numero);

                        medico = new Medico(nome, crm, especialidade, endereco, telefone);
                       }
                        medicos.add(z,medico);
                        
                    }break;
                case 4: // Excluir Medico
                    busca = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a crm do medico a ser DELETADO:", "Edição", JOptionPane.INFORMATION_MESSAGE));
                    for (int z = 0; z < medicos.size();z++) {
                        if (busca == (medicos.get(z).getCrm())) {
                            medicos.remove(z);
                            JOptionPane.showMessageDialog(null, "Removido com sucesso.");                           
                        }else {
                            JOptionPane.showMessageDialog(null, "Não foi possivel excluir.");
                        }
            }
            

        }
    }
}
}

nesse codigo, quando eu faço a busca ele ja passa automaticamente para a edição...
e ao meu ver ele deveria voltar para o while do inicio.
qual o erro?

2 Respostas

tuliomonteazul

Pode ser que o break não esteja sendo chamado, então, quando o switch de busca acaba, o switch de edição é chamado em seguida (no mesmo loop do while).
Tenta colocar o break da linha 152 pra fora do if.

anunes

Cara brigadão mesmo :)
eu ja tava sem cabeça pra notar as coisas no codigo...
=)
mas eu reformulei.

package visao;

import controle.Verificacao;
import javax.swing.JOptionPane;

import objetos.Cadastro;

public class ClassePrincipalTeste {

    public static void main(String[] args) {
        int acao = 1;
        Cadastro cadastro = new Cadastro();
        Verificacao verificacao = new Verificacao();
        

        while (acao != 0) {

            acao = Integer.parseInt(JOptionPane.showInputDialog(null, "---------- Opção ----------"
                    + "\n" + "1 - Cadastrar Médico" + "\n" + "2 - Procurar Médico" + "\n"
                    + "3 - Editar Médico" + "\n" + "4 - Excluir Médico" + "\n"
                    + "0 - Encerrar Programa", "Escolha o que fazer", JOptionPane.QUESTION_MESSAGE));

            //Switch de escolha das ações

            switch (acao) {
                
                case 1: // cadastro
                    
                    Integer esp = Integer.parseInt(JOptionPane.showInputDialog(null,"digite a especialidade do medico \n ex: \n 1 - Cardiologia \n"
                                + " 2 - Dermatologia \n 3 - Neurologia \n Opção: ", "Cadastro de Médicos", JOptionPane.QUESTION_MESSAGE));
                    verificacao.verificacaoEspecialidade(esp);
                    cadastro.cadastro(esp);
                    cadastro.mostrarCadastro(esp);
                    break;
                    
                case 2: // buscarCadastro
                    cadastro.buscarCadastro();
                    break;
                    
                case 3: //Editar
                    cadastro.editarCadastro();
                    break;
                    
                case 4: // Excluir Medico
                    cadastro.excluirCadastro();
                    break;        
            }
        }
    }
}
package objetos;

import controle.Verificacao;
import javax.swing.JOptionPane;

import java.util.ArrayList;


public class Cadastro {
    ArrayList<Medico> medicos = new ArrayList<Medico>();
    
    
    String nome;
    Integer crm;
    Integer especialidade;
    String logradouro;
    String bairro;
    String cidade;
    String cep;
    String estado;
    String complemento;
    String referencia;
    String ddd;
    String numero;
    Endereco endereco;
    Telefone telefone;
    Medico medico;
    
    String especialidades;
    
    Integer busca;

        
        public void cadastro(Integer x){
           
            nome = JOptionPane.showInputDialog(null, "digite o nome: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            crm = Integer.parseInt(JOptionPane.showInputDialog(null, "digite o crm: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE));
            especialidade = x;
            logradouro = JOptionPane.showInputDialog(null, "digite o logradouro: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            bairro = JOptionPane.showInputDialog(null, "digite o bairro: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            cidade = JOptionPane.showInputDialog(null, "digite o cidade: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            cep = JOptionPane.showInputDialog(null, "digite o cep: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            estado = JOptionPane.showInputDialog(null, "digite o estado: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            complemento = JOptionPane.showInputDialog(null, "digite o complemento: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            referencia = JOptionPane.showInputDialog(null, "digite o referencia: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);

            ddd = JOptionPane.showInputDialog(null, "digite o ddd: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            numero = JOptionPane.showInputDialog(null, "digite o numero: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);

            endereco = new Endereco(logradouro, bairro, cidade, cep, estado, complemento, referencia);

            telefone = new Telefone(ddd, numero);

            medico = new Medico(nome, crm, especialidade, endereco, telefone);
            
            medicos.add(medico);
            
        }
        
        public void mostrarCadastro(Integer x){
            
            Verificacao verificacao = new Verificacao();
            verificacao.verificacaoEspecialidade(x);
            JOptionPane.showMessageDialog(null,
            "Nome: " + medicos.get(x).getNome() + "\n"
            + "CRM: " + medicos.get(x).getCrm() + "\n"
            + "Especialidade: " + especialidades + "\n"
            + "---------- Endereço ----------" + "\n"
            + "Logradouro: " + medicos.get(x).getEndereco().getLogradouro() + "\n"
            + "Bairro: " + medicos.get(x).getEndereco().getBairro() + "\n"
            + "Cidade: " + medicos.get(x).getEndereco().getCidade() + "\n"
            + "Cep: " + medicos.get(x).getEndereco().getCep() + "\n"
            + "Estado: " + medicos.get(x).getEndereco().getEstado() + "\n"
            + "Complemento: " + medicos.get(x).getEndereco().getComplemento() + "\n"
            + "Ponto de referencia: " + medicos.get(x).getEndereco().getReferencia() + "\n"
            + "---------- Telefone ----------" + "\n"
            + "Numero: " + medicos.get(x).getTelefone().getDdd() + " "
            + medicos.get(x).getTelefone().getNumero(), "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
        }
        
        public void editarCadastro(){
        busca = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a crm do medico a ser editado:", "Edição", JOptionPane.INFORMATION_MESSAGE));
        for (int z = 0; z < medicos.size();z++) {
            if (busca == (medicos.get(z).getCrm())) {
            nome = JOptionPane.showInputDialog(null, "digite o nome: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            crm = Integer.parseInt(JOptionPane.showInputDialog(null, "digite o crm: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE));
            especialidade = Integer.parseInt(JOptionPane.showInputDialog(null, "digite a especialidade \n ex: \n 1 - Cardiologia \n"
                    + " 2 - Dermatologia \n 3 - Neurologia \n Opção: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE));
            logradouro = JOptionPane.showInputDialog(null, "digite o logradouro: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            bairro = JOptionPane.showInputDialog(null, "digite o bairro: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            cidade = JOptionPane.showInputDialog(null, "digite o cidade: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            cep = JOptionPane.showInputDialog(null, "digite o cep: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            estado = JOptionPane.showInputDialog(null, "digite o estado: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            complemento = JOptionPane.showInputDialog(null, "digite o complemento: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            referencia = JOptionPane.showInputDialog(null, "digite o referencia: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);

            endereco = new Endereco(logradouro, bairro, cidade, cep, estado, complemento, referencia);

            ddd = JOptionPane.showInputDialog(null, "digite o ddd: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
            numero = JOptionPane.showInputDialog(null, "digite o numero: ", "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);

            telefone = new Telefone(ddd, numero);

            medico = new Medico(nome, crm, especialidade, endereco, telefone);
            medicos.add(z,medico);
            }
            }
        }
        
        public void buscarCadastro(){
            
            busca = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe o CRM do Médico: ",
                            "Busca", JOptionPane.QUESTION_MESSAGE)); 
            for (int x = 0; x < medicos.size();x++) {
                if (busca == (medicos.get(x).getCrm())) {
                    JOptionPane.showMessageDialog(null,
                    "Nome: " + medicos.get(x).getNome() + "\n"
                    + "CRM: " + medicos.get(x).getCrm() + "\n"
                    + "Especialidade: " + especialidades + "\n"
                    + "---------- Endereço ----------" + "\n"
                    + "Logradouro: " + medicos.get(x).getEndereco().getLogradouro() + "\n"
                    + "Bairro: " + medicos.get(x).getEndereco().getBairro() + "\n"
                    + "Cidade: " + medicos.get(x).getEndereco().getCidade() + "\n"
                    + "Cep: " + medicos.get(x).getEndereco().getCep() + "\n"
                    + "Estado: " + medicos.get(x).getEndereco().getEstado() + "\n"
                    + "Complemento: " + medicos.get(x).getEndereco().getComplemento() + "\n"
                    + "Ponto de referencia: " + medicos.get(x).getEndereco().getReferencia() + "\n"
                    + "---------- Telefone ----------" + "\n"
                    + "Numero: " + medicos.get(x).getTelefone().getDdd() + " "
                    + medicos.get(x).getTelefone().getNumero(), "Cadastro de Médicos", JOptionPane.INFORMATION_MESSAGE);
                }
            }
            
        }
        
        public void excluirCadastro(){
            
            busca = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite a crm do medico a ser DELETADO:", "Edição", JOptionPane.INFORMATION_MESSAGE));
                    for (int z = 0; z < medicos.size();z++) {
                        if (busca == (medicos.get(z).getCrm())) {
                            medicos.remove(z);
                            JOptionPane.showMessageDialog(null, "Removido com sucesso.");                           
                        }else {
                            JOptionPane.showMessageDialog(null, "Não foi possivel excluir.");
                        }
            }
            
        }
        
}
package controle;

import javax.swing.JOptionPane;

public class Verificacao {
    
    public void verificacaoEspecialidade(Integer x){
        String especialidades; 
        if (x == 1){
            especialidades = "Cardiologia";
        }
        if (x == 2){
            especialidades = "Dermatologia";
        }
        if (x == 3){
            especialidades = "Neurologia";
        }else{
            JOptionPane.showMessageDialog(null, "Especialidade Errada", "ERRO",JOptionPane.ERROR_MESSAGE);
         }
    }    
    
}

eu to fazendo meio que na cara e coragem...
eu comecei a aprender java tem umas 3 semanas ai não sei muito bem.
provavel que ainda não esteja funcionando como eu gostaria...
mas uma hora vai estar ahsuahsu

Criado 10 de outubro de 2011
Ultima resposta 10 de out. de 2011
Respostas 2
Participantes 2