Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public class ControlConsultas {
- //Declaración de las colas para cada especialidad
- Queue<Paciente> colaOdonto = new LinkedList<Paciente>();
- Queue<Paciente> colaGastro = new LinkedList<Paciente>();
- Queue<Paciente> colaDerma = new LinkedList<Paciente>();
- Queue<Paciente> colaNeuro = new LinkedList<Paciente>();
- public static void main(String[] args) throws IOException {
- Scanner sc = new Scanner(System.in);
- ControlConsultas control = new ControlConsultas();
- //Menú de opciones
- int opcion = 0;
- do {
- System.out.println("MENU DE OPCIONES: ");
- System.out.println("1. Registrar cita. ");
- System.out.println("2. Cargar las citas programadas. ");
- System.out.println("3. Mostrar datos de todas las citas de las clinicas de especialidades. ");
- System.out.println("4. Atender a todos los pacientes que van a especialidad de Odontologia. ");
- System.out.println("5. Atender a todos los pacientes que van a especialidad de Gastroenterologia. ");
- System.out.println("6. Atender a todos los pacientes que van a especialidad de Dermatologia. ");
- System.out.println("7. Atender a todos los pacientes que van a especialidad de Neurologia. ");
- System.out.println("8. Salir. ");
- System.out.print("Ingrese la opción deseada: ");
- opcion = sc.nextInt();
- switch(opcion) {
- case 1:
- control.registrarCita();
- break;
- case 2:
- control.cargarCitas();
- break;
- case 3:
- control.mostrarCitas();
- break;
- case 4:
- control.atenderOdonto();
- break;
- case 5:
- control.atenderGastro();
- break;
- case 6:
- control.atenderDerma();
- break;
- case 7:
- control.atenderNeuro();
- break;
- case 8:
- System.out.println("Gracias por usar el programa.");
- break;
- default:
- System.out.println("Opción inválida. Por favor ingrese una opción válida.");
- break;
- }
- } while(opcion != 8);
- }
- //Método para registrar una cita
- public void registrarCita() throws IOException {
- Scanner sc = new Scanner(System.in);
- System.out.print("Ingrese CUI del paciente: ");
- int cui = sc.nextInt();
- System.out.print("Ingrese nombres del paciente: ");
- String nombres = sc.next();
- System.out.print("Ingrese apellidos del paciente: ");
- String apellidos = sc.next();
- System.out.print("Ingrese fecha de nacimiento del paciente (dd/mm/yyyy): ");
- String fechaNac = sc.next();
- System.out.print("Ingrese género del paciente (M/F): ");
- char genero = sc.next().charAt(0);
- System.out.print("Ingrese número de especialidad a la que desea realizar la consulta (1. Odontología, 2. Gastroenterología, 3. Dermatología, 4. Neurología): ");
- int especialidad = sc.nextInt();
- Paciente paciente = new Paciente(cui, nombres, apellidos, fechaNac, genero, especialidad);
- //Crear archivo para la fecha 10 de Junio de 2023
- String fecha = "10062023";
- File archivo = new File("Cita_" + fecha + ".txt");
- if(!archivo.exists()) {
- archivo.createNewFile();
- }
- //Escribir los datos del paciente en el archivo
- FileWriter escritorArchivo = new FileWriter(archivo, true);
- PrintWriter escritor = new PrintWriter(escritorArchivo);
- escritor.println(paciente.toString());
- escritor.close();
- System.out.println("Cita registrada con éxito.");
- }
- //Método para cargar las citas programadas
- public void cargarCitas() throws IOException {
- //Crear archivo para la fecha 10 de Junio de 2023
- String fecha = "10062023";
- File archivo = new File("Cita_" + fecha + ".txt");
- if(archivo.exists()) {
- Scanner lectorArchivo = new Scanner(archivo);
- while(lectorArchivo.hasNextLine()) {
- String linea = lectorArchivo.nextLine();
- String[] datos = linea.split(",");
- Paciente paciente = new Paciente(Integer.parseInt(datos[0]), datos[1], datos[2], datos[3], datos[4].charAt(0), Integer.parseInt(datos[5]));
- //Agregar el paciente a la cola correspondiente
- switch(paciente.getEspecialidad()) {
- case 1:
- colaOdonto.add(paciente);
- break;
- case 2:
- colaGastro.add(paciente);
- break;
- case 3:
- colaDerma.add(paciente);
- break;
- case 4:
- colaNeuro.add(paciente);
- break;
- }
- }
- lectorArchivo.close();
- System.out.println("Citas cargadas con éxito.");
- } else {
- System.out.println("No existen citas programadas para la fecha 10 de Junio de 2023.");
- }
- }
- //Método para mostrar los datos de todas las citas
- public void mostrarCitas() {
- //Mostrar los datos de todas las citas de las clínicas de especialidades
- for(Paciente paciente : colaOdonto) {
- System.out.println(paciente.toString());
- }
- for(Paciente paciente : colaGastro) {
- System.out.println(paciente.toString());
- }
- for(Paciente paciente : colaDerma) {
- System.out.println(paciente.toString());
- }
- for(Paciente paciente : colaNeuro) {
- System.out.println(paciente.toString());
- }
- }
- //Método para atender a los pacientes de Odontología
- public void atenderOdonto() {
- while(!colaOdonto.isEmpty()) {
- Paciente paciente = colaOdonto.remove();
- System.out.println("Atendiendo al paciente de Odontología: " + paciente.getNombreCompleto());
- }
- System.out.println("No hay más pacientes en la cola de Odontología.");
- }
- //Método para atender a los pacientes de Gastroenterología
- public void atenderGastro() {
- while(!colaGastro.isEmpty()) {
- Paciente paciente = colaGastro.remove();
- System.out.println("Atendiendo al paciente de Gastroenterología: " + paciente.getNombreCompleto());
- }
- System.out.println("No hay más pacientes en la cola de Gastroenterología.");
- }
- //Método para atender a los pacientes de Dermatología
- public void atenderDerma() {
- while(!colaDerma.isEmpty()) {
- Paciente paciente = colaDerma.remove();
- System.out.println("Atendiendo al paciente de Dermatología: " + paciente.getNombreCompleto());
- }
- System.out.println("No hay más pacientes en la cola de Dermatología.");
- }
- //Método para atender a los pacientes de Neurología
- public void atenderNeuro() {
- while(!colaNeuro.isEmpty()) {
- Paciente paciente = colaNeuro.remove();
- System.out.println("Atendiendo al paciente de Neurología: " + paciente.getNombreCompleto());
- }
- System.out.println("No hay más pacientes en la cola de Neurología.");
- }
- }
- class Paciente {
- private int cui;
- private String nombres;
- private String apellidos;
- private String fechaNac;
- private char genero;
- private int especialidad;
- public Paciente(int cui, String nombres, String apellidos, String fechaNac, char genero, int especialidad) {
- this.cui = cui;
- this.nombres = nombres;
- this.apellidos = apellidos;
- this.fechaNac = fechaNac;
- this.genero = genero;
- this.especialidad = especialidad;
- }
- public int getCui() {
- return cui;
- }
- public void setCui(int cui) {
- this.cui = cui;
- }
- public String getNombres() {
- return nombres;
- }
- public void setNombres(String nombres) {
- this.nombres = nombres;
- }
- public String getApellidos() {
- return apellidos;
- }
- public void setApellidos(String apellidos) {
- this.apellidos = apellidos;
- }
- public String getFechaNac() {
- return fechaNac;
- }
- public void setFechaNac(String fechaNac) {
- this.fechaNac = fechaNac;
- }
- public char getGenero() {
- return genero;
- }
- public void setGenero(char genero) {
- this.genero = genero;
- }
- public int getEspecialidad() {
- return especialidad;
- }
- public void setEspecialidad(int especialidad) {
- this.especialidad = especialidad;
- }
- public String getNombreCompleto() {
- return nombres + " " + apellidos;
- }
- public String toString() {
- return cui + "," + nombres + "," + apellidos + "," + fechaNac + "," + genero + "," + especialidad;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement