Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - moniVeme

Páginas: [1]
1
Hola, muchas gracias por hacerme retroalimentar, tuve que platicar con la profesora para que me diera oportunidad de poner la herencia en otro lugar; ya tengo el proyecto completo, sin embargo al momento de ejecutar el caso 2, cuando se selecciona la opción 'N', no muestra más información; en el caso 3 y 4 no muestran información y en el caso 5 no muestra información, estuve revisando cuáles podían ser los motivos pero no veo nada malo. ¿Me podría revisar e indicar mis errores por favor?
Clase Principal
Código: [Seleccionar]
import java.util.Scanner;

public class HelpingTheDentist {
    public static void main(String[] args) {
        Scanner leer=new Scanner(System.in);
        String contra="1234567",con;
       
        estructuraMenu menu=new estructuraMenu();
        do{
        System.out.println("Hola, ingrese la contraseña(cédula profesional) por favor");
        con=leer.next();
       
        }while(! con.equals(contra));
        menu.estructuraMenu();
       
  }
}
Estructura Menú
Código: [Seleccionar]
import java.util.*;

public class estructuraMenu {
    void estructuraMenu(){
        Scanner leer=new Scanner(System.in);
        gestionPaciente datos=new gestionPaciente();
        gestionHorario info = new gestionHorario(datos);
      int op;
      boolean Salir=false;
        System.out.println("Menú de acciones");
        System.out.println("1. Registrar nuevo paciente");
        System.out.println("2. Agendar Cita (Ya sea nuevo o no el paciente)");
        System.out.println("3. Mostrar datos del Paciente");
        System.out.println("4. Mostrar datos de la Cita");
        System.out.println("4. Eliminar cita");
        System.out.println("6. Salir");
       while(!Salir){
        try {
            System.out.println("¿Cuál acción desea realizar?");
            op=leer.nextInt();
             switch (op){
                 case 1:
                     datos.nuevo();
                     break;
                 case 2:
                     info.nuevo();
                     break;
                 case 3:     
                    datos.mostrar();
                     break;
                 case 4:             
                    info.mostrar();
                     break;
                 case 5:             
                    info.eliminar();
                     break;
                 case 6:
                     Salir=true;
                     break;
                 default:
                     System.out.println("Debe elegir solo números entre 1 y 5");
             }
       
        }catch (InputMismatchException e){
            System.out.println("Valor no reconocido, se debe ingresar un número");
            leer.next();
        }
        }
    }
}
Persona
Código: [Seleccionar]
public class Persona {
    public String nom, tel,cel,corr_ele,dir;
   public int ed;
}
datosPacientes
Código: [Seleccionar]
public class datosPacientes extends Persona {
   protected String id;
        public datosPacientes(String nom, String tel, String cel,
                String corr_ele, String dir, String id, int ed){
            this.id=id;
            this.nom=nom;
            this.ed=ed;
            this.dir=dir;
            this.tel=tel;
            this.cel=cel;
            this.corr_ele=corr_ele;
        }
       
        public String getID(){
            return id;
        }
        public void setID(String id){
            this.id=id;
        }
        public void mostrarDatos(){
            System.out.println("\n\t---------------");
            System.out.println("ID Paciente: "+id);
            System.out.println("Nombre: "+nom);
            System.out.println("Edad: "+ed+" años");
            System.out.println("Domicilio: "+dir);
            System.out.println("Telefóno: "+tel);
            System.out.println("Celular : "+cel);
            System.out.println("Correo electrónico: "+corr_ele);
            System.out.println("\t---------------");
        }     
}
gestionPaciente
Código: [Seleccionar]
import java.util.*;
import javax.swing.JOptionPane;
public final class gestionPaciente  {
    protected ArrayList<datosPacientes>pacientes;
    private Scanner leer;
        public gestionPaciente(){
            pacientes=new ArrayList<datosPacientes>();
            leer=new Scanner(System.in);
        }
        public boolean nuevo() {
            System.out.println("\n\t NUEVO PACIENTE");
            System.out.println("Introduzca ID: ");
            String id=leer.next();
            System.out.println("Ingrese el nombre: ");
            String nom=leer.next();
            leer.nextLine();
            System.out.println("Ingrese el domicilio: ");
            String dir=leer.next();
            leer.nextLine();
            System.out.println("Ingrese el número de telefono: ");
            String telPac=leer.next();
            leer.nextLine();
            System.out.println("Ingrese el número celular: ");
            String celPac=leer.next();
            System.out.println("Ingrese el correo electrónico: ");
            String corr_ele=leer.next();
            System.out.println("Ingrese la edad: ");
            int ed=leer.nextInt();
            leer.nextLine();
            datosPacientes nuevoPaciente =new datosPacientes( nom, telPac, celPac,
                 corr_ele,  dir,  id,  ed);
            return pacientes.add(nuevoPaciente);
        }
        public boolean mostrar(){
            String id=JOptionPane.showInputDialog(null,"Introduzca identificador del paciente para mostrar datos: ",
                    "Mostrar datos del paciente",JOptionPane.QUESTION_MESSAGE);
            datosPacientes paciente=null;
            for (int i=0;i<pacientes.size();i++){
                if(pacientes.get(i).getID().equals(id)){
                    paciente=pacientes.get(i);
                    paciente.mostrarDatos();
                }
            }
            if(paciente==null){
                JOptionPane.showMessageDialog(null, "No se encuentra Paciente con el ID:\n"+id,
                        "Paciente no encontrado", JOptionPane.WARNING_MESSAGE);
            } 
        return false;
        }
        public datosPacientes getPac(String id){
            for (datosPacientes pac:pacientes){
                if (pac.getID().equals(id)){
                    return pac;
                }
            }
            return null;
        }
}
Horarios
Código: [Seleccionar]
public class Horarios {
    private String hora,fecha,cita;
   // private gestionPaciente paciente;
    public Horarios(String fecha, String hora, String cita){
        this.hora=hora;
        this.fecha=fecha;
        this.cita=cita;
        //this.paciente=paciente;
    }
    String getFecha(){
        return fecha;
    }
    void setfecha(){
        this.fecha=fecha;
    }
    String getHora(){
        return hora;
    }
    void setHora(){
        this.hora=hora;
    }
   String getCita(){
        return cita;
    }
    void setCita(){
        this.cita=cita;
    }
   // gestionPaciente getPac(){
      //  return paciente;
    //}
    //void setPac(){
      //  this.paciente=paciente;
    //}
    public void mostrar(){
            System.out.println("\n\t---------------");
            System.out.println("HORARIO");
            System.out.println("ID Cita: ");
            System.out.println(cita);
            System.out.println("Fecha: ");
            System.out.println(fecha);
            System.out.println("Hora: "+hora);
            System.out.println("\t---------------");
    }
}
gestionHorario
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class gestionHorario{
    private ArrayList<Horarios>horas;
    private Scanner leer;
    private gestionPaciente pacientes;
        public gestionHorario(gestionPaciente paci){
            horas=new ArrayList<Horarios>();
            leer=new Scanner(System.in);
            pacientes= paci;
        }
    public boolean nuevo() {
        char op;
     System.out.println("¿Es nuevo el paciente?(S/N)");   
        do{
            op=leer.next().charAt(0);
                if((op!='S')&&(op!='N')){
                   System.out.println("Vuelva a introducir el dato correcto.");
                }
                    if(op=='S'){
                        System.out.println("Introduzca el ID de la cita");
                        String cita=leer.next();
                        leer.nextLine();
                        pacientes.nuevo();
                        System.out.println("Introduzca la hora:");
                        String hora=leer.nextLine();
                        System.out.println("Introduzca la fecha (dd/mm/aa)");
                        String fecha=leer.nextLine();
                        Horarios nuevo=new Horarios(cita,hora,fecha);
                        return horas.add(nuevo);
                    }if(op=='N'){
                        System.out.println("Introduzca el ID de la cita");
                        String cita=leer.nextLine();
                        System.out.println("Inroduce el ID del paciente");
                        String id=leer.nextLine();
                        pacientes.mostrar();
                        System.out.println("Introduzca la hora:");
                        String hora=leer.nextLine();
                        System.out.println("Introduzca la fecha (dd/mm/aa)");
                        String fecha=leer.nextLine();
                         Horarios nuevo=new Horarios(cita,hora,fecha);
                        return horas.add(nuevo);
                    }
                   
        }while((op!='S')&&(op!='N'));
        return horas.add(null);
    }
    public boolean mostrar(){
         String cita=JOptionPane.showInputDialog(null,"Introduzca identificador de la cita para mostar datos: ",
                   "Mostrar datos de la cita",JOptionPane.QUESTION_MESSAGE);
             Horarios citas=null;
                    for (int i=0;i<horas.size();i++){
                        if(horas.get(i).getCita().equals(cita)){
                                citas=horas.get(i);
                                citas.mostrar();
                        }
                    }
                        if(citas==null){
                            JOptionPane.showMessageDialog(null, "No se encuentra ninguna cita con el ID:\n"+cita,
                                 "Cita no encontrada", JOptionPane.WARNING_MESSAGE);
                        } 
                        return false;
     }
     public boolean eliminar(){
         String cita=JOptionPane.showInputDialog(null,"Introduzca identificador de la cita para mostar datos: ",
                    "Mostrar datos de la cita",JOptionPane.QUESTION_MESSAGE);
             Horarios citas=null;
                for (int i=0;i<horas.size();i++){
                    if(horas.get(i).getCita().equals(cita)){
                        citas=horas.remove(i);
                    }
                }
                if(citas==null){
                    JOptionPane.showMessageDialog(null, "No se encuentra ninguna cita con el ID:\n"+cita,
                        "Cita no encontrada", JOptionPane.WARNING_MESSAGE);
                    return false;
                }else {
                    JOptionPane.showMessageDialog(null, "Se elimino el paciente con ID:\n" + cita,
                        "Paciente Eliminado", JOptionPane.INFORMATION_MESSAGE);
                    return false;
                }
     }   
}   


Aquí están los códigos del programa, de antemano gracias :)

2
Hola de nuevo, el código de la gestión pacientes funciono bien, intente hacer lo mismo creando una claseCita y gestionCitas. Quería heredar la gestionPacientes a la gestionCitas o a la claseCita por requisito del proyecto, así que intente heredar la gestionPacientes a gestionCitas, pues al momento de agregar una nueva cita se requerirán datos del paciente de la misma manera que los metodos "modificarCita" y "eliminarCita".
Adjunto los códigos claseCita y gestionCitas...
Clase Cita
Código: [Seleccionar]
import java.util.*;
public class claseCita   {
    public String hora,mes,dia,anio;
    private datosPacientes pac;
        public claseCita(String hora, String dia, String mes, String anio){
            this.hora=hora;
            this.dia=dia;
            this.mes=mes;
            this.anio=anio;
        }
       
        public String getHora(){
            return hora;
        }
        public void setHora(){
           this.hora=hora;
        }
        public String getDia(){
            return dia;
        }
        public void setDia(){
           this.dia=dia;
        }
        public String getMes(){
            return mes;
        }
        public void setMes(){
           this.mes=mes;
        }
        public String getAño(){
            return anio=anio;
        }
        public void setAño(){
           this.anio=anio;
        }
       
        public void mostrarDatos(){
            System.out.println("\n\t---------------");
            System.out.println("ID Paciente: "+pac);
            System.out.println("Fecha: ");
            System.out.println(dia+"/"+mes+"/"+anio);
            System.out.println("Hora: ");
            System.out.println(hora);
            System.out.println("\t---------------");
        }
}

gestionCitas
Código: [Seleccionar]
import java.util.*;
import javax.swing.JOptionPane;
public class gestionCitas extends gestionPaciente {
    private ArrayList<claseCita>citas;
    private Scanner leer;
        public gestionCitas(){
            citas=new ArrayList<claseCita>();
            leer=new Scanner(System.in);
            gestionPaciente pac=new gestionPaciente();
        }   
        public boolean nuevaCita(){
                System.out.println("\n\t NUEVO CITA");
                String id=JOptionPane.showInputDialog(null,"Introduzca identificador del paciente para mostrar datos: ",
                    "Mostrar datos del paciente",JOptionPane.QUESTION_MESSAGE);
                datosPacientes paciente=null;
                        for (int i=0;i<pacientes.size();i++){
                            if(pacientes.get(i).getID().equals(id)){
                                 paciente=pacientes.get(i);
                                 paciente.mostrarDatos();
                        }if(paciente==null){
                             JOptionPane.showMessageDialog(null, "No se encuentra Paciente con el ID:\n"+id,
                                "Paciente no encontrado", JOptionPane.WARNING_MESSAGE);
                        } 
                System.out.println("Ingresa el día: ");
                String dia=leer.nextLine();
                System.out.println("Ingresa el mes: ");
                String mes=leer.nextLine();
                System.out.println("Ingresa el año(los últimos dos dígitos): ");
                String año=leer.nextLine();
                System.out.println("Ingresa hora: ");
                String hora=leer.nextLine();
                claseCita nuevaCita= new claseCita(hora,dia,mes,año);
                return citas.add(nuevaCita);
            }
            public boolean modificarDatos(){
                String id=JOptionPane.showInputDialog(null,"Introduzca identificador del paciente para mostrar datos: ",
                    "Mostrar datos del paciente",JOptionPane.QUESTION_MESSAGE);
                datosPacientes paciente=null;
                        for (int i=0;i<pacientes.size();i++){
                            if(pacientes.get(i).getID().equals(id)){
                                 paciente=pacientes.get(i);
                                 break;
                        }if(paciente==null){
                             JOptionPane.showMessageDialog(null, "No se encuentra Paciente con el ID:\n"+id,
                                "Paciente no encontrado", JOptionPane.WARNING_MESSAGE);
                             return false;
                        }else{
                           
                     }                       
            }   
        }
}

Saludos.

3
Gracias Kabuto, deja lo checo, le trato de dar el cambio y le platico qué tal me fue.
Sinceramente me atasque en la línea de la clase gestionPaciente:
-public boolean mostrarPaciente(){
-paciente=pacientes.; En esta linea en particular me aparece tres opciones: remove(i), get(i) y set(i)
Te adjunto la clase datosPacientes y gestionPacientes
Código: [Seleccionar]
public final class datosPacientes {
   public String nom, telPac,celPac,corr_ele,dir;
   public int ed;
   private String id;
        public datosPacientes(String nom, String telPac, String celPac,
                String corr_ele, String dir, String id, int ed){
            this.id=id;
            this.nom=nom;
            this.ed=ed;
            this.dir=dir;
            this.telPac=telPac;
            this.celPac=celPac;
            this.corr_ele=corr_ele;
        }
       
        public String getID(){
            return id;
        }
        public void setID(String id){
            this.id=id;
        }
        public void mostrarDatos(String id){
            System.out.println("\n\t---------------");
            System.out.println("ID Paciente: "+id);
            System.out.println("Nombre: "+nom);
            System.out.println("Edad: "+ed+" años");
            System.out.println("Domicilio: "+dir);
            System.out.println("Telefóno: "+telPac);
            System.out.println("Celular : "+celPac);
            System.out.println("Correo electrónico: "+corr_ele);
            System.out.println("\t---------------");
        }     
}
Clase gestionPacientes
Código: [Seleccionar]
import java.util.*;
import javax.swing.JOptionPane;
public final class gestionPaciente {
    private ArrayList<datosPacientes>pacientes;
    private Scanner leer;
        public gestionPaciente(){
            pacientes=new ArrayList<datosPacientes>();
            leer=new Scanner(System.in);
        }
        public boolean nuevoPaciente() {
            System.out.println("\n\t NUEVO PACIENTE");
            System.out.println("Introduzca ID: ");
            String id=leer.next();
            System.out.println("Ingrese el nombre: ");
            String nom=leer.next();
            System.out.println("Ingrese el domicilio: ");
            String dir=leer.next();
            System.out.println("Ingrese el número de telefono: ");
            String telPac=leer.next();
            System.out.println("Ingrese el número celular: ");
            String celPac=leer.nextLine();
            System.out.println("Ingrese el correo electrónico: ");
            String corr_ele=leer.nextLine();
            System.out.println("Ingrese la edad: ");
            int ed=leer.nextInt();
            leer.nextLine();
            datosPacientes nuevoPaciente =new datosPacientes( nom, telPac, celPac,
                 corr_ele,  dir,  id,  ed);
            return pacientes.add(nuevoPaciente);
        }
        public boolean mostrarPaciente(){
            String id=JOptionPane.showInputDialog(null,"Introduzca identificador del paciente para mostrar datos: ",
                    "Mostrar datos del paciente",JOptionPane.QUESTION_MESSAGE);
            datosPacientes paciente=null;
            for (int i=0;i<pacientes.size();i++){
                if(pacientes.get(i).getID().equals(id)){
                    paciente=pacientes.get(i);
                }
            }
            if(paciente==null){
                JOptionPane.showMessageDialog(null, "No se encuentra Paciente con el ID:\n"+id,
                        "Paciente no encontrado", JOptionPane.WARNING_MESSAGE);
                return false;
            } 
        }
}

4
Hola Kabuto:
Estos ejercicios son similares al mío, te explico como esta conformada la idea del programa. Se requiere que un doctor tenga acceso por medio de una contraseña a un menú donde se despliegan las siguientes opciones:
1. Agregar nuevo Paciente
2. Agendar nueva cita(metodo de clase Cita)
3. Modificar cita(metodo de la clase Cita)
4. Cancelar cita(metodo de la clase Cita)
5. Salir
      Agregar nuevo paciente
Aquí tiene como atributos:
private int id=identificador,
public nom=nombre, ed=edad, dir=domicilio, int telPac=telefono, int celPac=celular de referencia, corr_ele=correo electrónico
     
      Agregar nueva cita
En esta parte va ligada con el nuevo paciente y tendrá como atributos
public String hora, String fecha
   
       Modificar cita
Por medio del identificador del paciente, se mostraran sus datos añadiendo la fecha y hora de la cita para después realizar su cambio.

        Cancelar cita
Sería la misma idea de "Modificar cita", sin embargo, en lugar de realizar el cambio de fecha y hora se deberá cancelar la cita.



Para todo esto me estoy guiando en las clases de este ejercicio, por lo que ya tengo las clases datosPacientes, gestionPacientes y estructura menu.
Sin embargo, en lugar de mostrar todos los datos de los pacientes, quiero con solo ingresar el ID de un paciente me muestre sus datos sin necesidad de mostrar todos.



Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".