1
Aprender a programar desde cero / Re: Ejercicio resuelto Java Paciente Historial Clinico menú JOptionPane #codigoJava
« en: 13 de Noviembre 2021, 23:46 »
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
Aquí están los códigos del programa, de antemano gracias
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();
}
}
}
}
PersonaCódigo: [Seleccionar]
public class Persona {
public String nom, tel,cel,corr_ele,dir;
public int ed;
}
datosPacientesCó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---------------");
}
}
gestionPacienteCó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;
}
}
HorariosCó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---------------");
}
}
gestionHorarioCó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
![Sonrisa :)](https://aprenderaprogramar.com/foros/Smileys/default/smiley.gif)