Kabuto, buenos dias
Me guie por las respuestas de este foro sin embargo no logro que mi programa ejecute, al darle build me sale el siguiente error
C:\Users\Emeth.Paredes\IdeaProjects\EvidenciaFinal\src\Clinica.java:39:9
java: illegal start of expression
C:\Users\Emeth.Paredes\IdeaProjects\EvidenciaFinal\src\Clinica.java:59
java: class, interface, enum, or record expected
Te comparto el codigo y las clases
Clase Main
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public final class Clinica {
private static ArrayList<Administrador> administradores = new ArrayList<Administrador>();
private static Scanner teclado = new Scanner(System.in);
static GestorPacientes pacientes = new GestorPacientes();
static GestorCita citas = new GestorCita();
static GestorDoctor doctores = new GestorDoctor();
public static void main(String[] args) {
crearAdmins();
if (validarAcceso()) {
System.out.println("\nUsuario autorizado\n");
if (validarAcceso()) {
System.out.println("\nUsuario autorizado\n");
doctores.nuevoDoctor();
doctores.modificarDoctor();
doctores.mostrarDoctores();
pacientes.nuevoPaciente();
pacientes.mostrarPacientes();
pacientes.modificarPaciente();
pacientes.borrarPaciente();
citas.nuevoCita();
citas.mostrarCitas();
}
else
System.out.println("\nUsuario no autorizado.");
System.out.println("\n\t\tFIN DE PROGRAMA");
}
private static void crearAdmins() {
administradores.add(new Administrador("Kabuto", "1234"));
administradores.add(new Administrador("EmethP", "5678"));
administradores.add(new Administrador("AnaT", "0000"));
}
private static boolean validarAcceso( ) {
System.out.println("ACCESO AL SISTEMA");
System.out.println("------ -- -------\n");
System.out.print("Nombre: ");
String nombre = teclado.nextLine();
System.out.print("Password: ");
String password = teclado.nextLine();
Administrador admin = new Administrador(nombre, password);
return administradores.contains(admin);
}
}
}
Clase Doctor
package clinica;
import javax.swing.JOptionPane;
public class Doctor {
private String id;
private String nombre;
private String apellidos;
private String especialidad;
public Doctor(String id, String nombre, String apellidos, String especialidad) {
this.id = id;
this.nombre = nombre;
this.apellidos = apellidos;
this.especialidad = especialidad;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellidos() {
return apellidos;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public String getEspecialidad() {
return especialidad;
}
public void setEspecialidad(String especialidad) {
this.especialidad = especialidad;
}
/**
* Muestra por panel todos los datos del doctor
*/
public void mostrar() {
String mensaje = "ID doctor: " + id + "\nNombre: " + nombre
+ "\nApellidos: " + apellidos + "\nEspecialidad: " + especialidad;
JOptionPane.showMessageDialog(null, mensaje, "Mostrar doctor", JOptionPane.INFORMATION_MESSAGE);
}
public Doctor getDoctor(String id) {
for (Doctor doc: doctores)
if (doc.getId().equals(id))
return doc; //Doctor encontrado
//Si el bucle no ha retornado ningún Doctor, es que no existe ese ID
return null;
}
}
Clase Paciente
import javax.swing.JOptionPane;
public class Paciente {
private String id;
private String nombre;
private String apellidos;
public String generaLineaCSV() {
return String.format("%s;%s;%s;%s\n", id, nombre, apellidos);
}
public Paciente(String id, String nombre, String apellidos) {
this.id = id;
this.nombre = nombre;
this.apellidos = apellidos;
}
}
Clase Administrador
public class Administrador {
private String nombre;
private String password;
public Administrador(String nom, String pass) {
nombre = nom;
password = pass;
}
@Override
public boolean equals(Object objeto) {
if (objeto instanceof Administrador) { //Objeto si es clase Administrador
//Casteamos objeto a Administrador
Administrador otroAdmin = (Administrador)objeto;
//Comparamos si coinciden nombre y password
if (nombre.equals(otroAdmin.nombre) && password.equals(otroAdmin.password))
return true; //Coinciden ambos, los objetos representan al mismo Administrador
else
return false;//Nombre o contraseña no coinciden, son Administradores diferentes.
}
else //Objeto a comparar no es de clase Administrador
return false;
}
}
Clase Cita
public class Cita {
private String id;
private String fecha;
private String hora;
private String motivo;
private Doctor doctor;
private Paciente paciente;
public Cita(String id, String fecha, String hora, String motivo,
Doctor doctor, Paciente paciente) {
this.id = id;
this.fecha = fecha;
this.hora = hora;
this.motivo = motivo;
this.doctor = doctor;
this.paciente = paciente;
}
public Cita(String id, String fecha, String hora, String motivo) {
this.id = id;
this.fecha = fecha;
this.hora = hora;
this.motivo = motivo;
}
public String getMotivo() {
return motivo;
}
public void setMotivo(String motivo) {
this.motivo = motivo;
}
public Paciente getPaciente() {
return paciente;
}
public void setPaciente(Paciente paciente) {
this.paciente = paciente;
}
}
Clase GestorPaciente
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public final class GestorPacientes {
private ArrayList<Paciente> pacientes;
public void crearCSV() {
File archivo = new File("C:\\Users\\Emeth.Paredes\\IdeaProjects\\EvidenciaFinal\\src");
try {
//Si no existe archivo, intentamos crearlo
boolean primeraVez = false;
if (!archivo.exists()) {
File carpeta = archivo.getParentFile();
carpeta.mkdirs();
archivo.createNewFile();
primeraVez = true; //Primera vez que trabajamos en este archivo
}
FileWriter escritor = new FileWriter(archivo, true);
//Cabecera para datos del CSV, solo si es la primera vez
if (primeraVez)
escritor.append("#ID;Nombre;Apellidos;Especialidad\n");
//Datos del último Doctor registrado
int ultimo = doctores.size() - 1;
escritor.append(doctores.get(ultimo).generaLineaCSV());//Insertamos linea CSV
escritor.close();
} catch (IOException e) {
System.out.println("Error de acceso a: " + archivo.getAbsolutePath());
}
}
}
Clase GestorDoctor
public class GestorDoctor {
public void crearCSV() {
File archivo = new File("C:\\Users\\Emeth.Paredes\\IdeaProjects\\EvidenciaFinal\\src");
try {
//Si no existe archivo, intentamos crearlo
boolean primeraVez = false;
if (!archivo.exists()) {
File carpeta = archivo.getParentFile();
carpeta.mkdirs();
archivo.createNewFile();
primeraVez = true; //Primera vez que trabajamos en este archivo
}
FileWriter escritor = new FileWriter(archivo, true);
//Cabecera para datos del CSV, solo si es la primera vez
if (primeraVez)
escritor.append("#ID;Nombre;Apellidos;Especialidad\n");
//Datos del último Doctor registrado
int ultimo = doctores.size() - 1;
escritor.append(doctores.get(ultimo).generaLineaCSV());//Insertamos linea CSV
escritor.close();
} catch (IOException e) {
System.out.println("Error de acceso a: " + archivo.getAbsolutePath());
}
}
}
Clase GestorCita
public class GestorCita {
private ArrayList<Cita> citas;
//Referencias a las instancias de los gestores de doctores y pacientes
private GestorDoctor doctores;
private GestorPaciente pacientes;
public GestorCita(GestorDoctor gestDoc, GestorPaciente gestPaci) {
citas = new ArrayList<Cita>();
doctores = gestDoc;
pacientes = gestPaci;
}
public boolean nuevoCita() {
String id = JOptionPane.showInputDialog(null, "Introduzca Identificador:", "Nuevo Cita", JOptionPane.QUESTION_MESSAGE);
String fecha = JOptionPane.showInputDialog(null, "Fecha:", "Nuevo Fecha", JOptionPane.QUESTION_MESSAGE);
String hora = JOptionPane.showInputDialog(null, "Hora:", "Nuevo Hora", JOptionPane.QUESTION_MESSAGE);
String motivo = JOptionPane.showInputDialog(null, "Motivo:", "Nuevo Motivo", JOptionPane.QUESTION_MESSAGE);
String iDdoctor = JOptionPane.showInputDialog(null, "ID del Doctor:", "Nuevo Doctor", JOptionPane.QUESTION_MESSAGE);
String iDpaciente = JOptionPane.showInputDialog(null, "ID del Paciente:", "Nuevo Paciente", JOptionPane.QUESTION_MESSAGE);
//Pedimos los datos a los gestores que tenemos referenciados
Doctor doctor = doctores.getDoctor(iDdoctor);
Paciente paciente = pacientes.getPaciente(iDpaciente);
Cita nuevoCita = new Cita(id, fecha, hora, motivo, doctor, paciente);
return citas.add(nuevoCita);
//Devuelve TRUE si se insertó correctamente, FALSE si no se pudo insertar
}
}
Podrias apoyarme por favor? No encuentro que es lo que puede estar mal.
Te agradezco de antemano, saludos!