Hola, supongamos que tengo los siguientes datos, correspondientes a un profesional de la salud:
Apellido: xxxxxxx
Nombre: xxxxxxx
Especialidad: xxxxxxx
Número de matrícula: xxxxxx
(en las x puede ir un dato cualquiera)
Tengo que hacer un programa en Java que me permita ingresar esos datos por teclado, almacenarlos en alguna estructura de datos y luego mostrarlos por pantalla.
La verdad no sé muy bien por donde empezar y no sé que estructura de datos utilizar, soy novato en esto.
Agradezco enormemente la ayuda que me puedan brindar.
Muchas Gracias.
Saludos!
Hola. Veamos qué escenarios tienes:
1) Tienes una base de datos.
2) No tienes base de datos.
3) Aplicación web.
4) Aplicación desktop.
Opción 1Debes usar el paquete java.sql para poder interactuar con ella. Si quieres algo más práctico y funcional, puedes usar JPA (con Hibernate o EclipseLink).
Opción 2Debes usar alguna objeto como NavigableMap/TreeMap o Map/HashMap y declararlo estático, ésto para simular una base de datos.
Opción 3:Opciones:
- Simple 1: JSP's y Servlets + JDBC estándar.
- Simple 2: JSP's y Servlets + JPA y AJAX.
- Avanzada 1: JSF + JPA (AJAX incluido).
Opción 4:
Opciones:
- AWT: Obsoleto.
- Swing: Obsoleto (hablo desde la perspectiva del desarrollo actual).
- JavaFX: Presente y futuro.
Elige la que más te convenga. Investiga y cuando tengas una duda puntual, la publicas.
Hola, esto sería para una aplicación desktop, pero quiero algo más sencillo, con arrays o algo por el estilo. Mientras tanto estuve investigando un poco y hasta ahora hice una clase datosProfesional con los atributos nombre, apellido, especialidad y nroMat y otra clase profesional con un atributo profesional cuyo tipo es un array de datosProfesional.
¿Y qué duda tienes entonces? Veo que ya tienes una idea, entonces, aplícala o inténtalo. Si tienes alguna duda específica, crea un tema para recibir ayuda.
Un saludo.
Es que mientras esperaba tu respuesta me puse a investigar un poco y hasta ahora hice lo que ya te he dicho. Lo que me faltaría es saber cómo ingresar los datos a esa estructura de datos (sé ingresar por teclado pero en este caso particular no sé como meter los datos en la estructura)
Esa duda, la resuelves simplemente con Google, es muy trivial. Acostúmbrate a investigar.
public class Professional {
private Integer id;
private String names;
private String surnames;
private String speciality;
private String licenseNumber;
public Professional() {
}
public Professional(Integer id, String names, String surnames,
String speciality, String licenseNumber) {
this.id = id;
this.names = names;
this.surnames = surnames;
this.speciality = speciality;
this.licenseNumber = licenseNumber;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public String getSurnames() {
return surnames;
}
public void setSurnames(String surnames) {
this.surnames = surnames;
}
public String getSpeciality() {
return speciality;
}
public void setSpeciality(String speciality) {
this.speciality = speciality;
}
public String getLicenseNumber() {
return licenseNumber;
}
public void setlicenseNumber(String licenseNumber) {
this.licenseNumber = licenseNumber;
}
}
public class ProfessionalService {
private static final List<Professional> professionals;
private static final ProfessionalService THIS = new ProfessionalService();
private ProfessionalService() {
professionals = new ArraList<>();
}
public static ProfessionalService getService() {
return THIS;
}
public void add(Professional p) {
professionals.add(p);
}
public void remove(Professional p) {
professionals.remove(p);
}
public void update(Professional p) {
for(Professional current : professionals) {
if(current.getId() == p.getId()) {
current = p;
}
}
}
}
public class Main {
public static void main(String[] args) {
// ahora trabaja en ésto
}
}
Saludos.
Hola, te cuento lo que hice hasta ahora: mientras esperaba tu respuesta estuve investigando y luego adapté a mis necesidades el código que publicaste e intenté realizar la clase Main, que cito a continuación:
Código
Citar
public class Principal {
public static void main (String[] args)throws IOException{
System.out.println("Ingrese Apellido");
BufferedReader apellido = new BufferedReader(new InputStreamReader(System.in));
apellido.readLine();
System.out.println("Ingrese Nombre");
BufferedReader nombre = new BufferedReader(new InputStreamReader(System.in));
nombre.readLine();
System.out.println("Ingrese Especialidad");
BufferedReader especialidad = new BufferedReader(new InputStreamReader(System.in));
especialidad.readLine();
System.out.println("Ingrese Número de Matrícula");
BufferedReader nroMat = new BufferedReader(new InputStreamReader(System.in));
nroMat.readLine();
}
}
Tengo dudas de si esto está bien o no, en relación al propósito que quiero lograr. Si no está bien, te agradecería que me orientes sobre cómo hacerlo.
Muchas Gracias por tu ayuda.
Saludos.
Con Scanner te basta. BufferedReader se usa más para lectura de archivos ya que provee una amplia API para ello. No entiendo por qué creas un BufferedReader nuevo para cada lectura. Es ineficiente y completamente innecesario.
final Scanner READER = new Scanner(System.in);
System.out.println("Ingrese Apellido");
String apellido = READER.netxLine();
System.out.println("Ingrese Nombre");
String nombre = READER.nextLine();
nombre.readLine();
System.out.println("Ingrese Especialidad");
String especialidad = READER.nextLine();
System.out.println("Ingrese Número de Matrícula");
String nroMatricula = READER.nextLine();
Professional newProfessional = new Professional(apellido, nombre, especialidad, nroMatricula);
// agregas el nuevo profesional a la lista
Saludos.
Hola, entonces quedaría el programa terminado, con tres clases: main, professionalServices y professional.
El IDE me dice que la variable newProfessional no está utilizada.
¿De esta manera quedan almacenados los profesionales que ingrese?
Saludos.
CitarEl IDE me dice que la variable newProfessional no está utilizada.
¿Agregaste el objeto newProfessional a la lista?
Citar¿De esta manera quedan almacenados los profesionales que ingrese?
Sí. Si los guardas en la lista, quedarán guardadas mientras el programa esté levantado.
Saludos.
Creo que no lo agregué, ¿cómo se hace?
Saludos.
CitarCreo que no lo agregué, ¿cómo se hace?
¿Estudias Ing. Sistemas, Ing. Informática, Análisis y programación de sistemas, Ing. de Software o afines?
Si la respuesta es afirmativa. Olvida éste tema y ponte a estudiar de cero, por que primero debes entender las bases para seguir con temas más avanzados.
Si no eres informático y solo programas por diversión o por saber cómo se hacen las cosas:
List<Professional> professionals = new ArrayList<>();
Professional newProfessional = new Professional();
final Scanner READER = new Scanner(System.in);
System.out.println("Ingrese Apellido");
newProfessional.setSurnames(READER.netxLine());
System.out.println("Ingrese Nombre");
newProfessional.setNames(READER.nextLine());
System.out.println("Ingrese Especialidad");
newProfessional.setSpeciality(READER.nextLine());
System.out.println("Ingrese Número de Matrícula");
newProfessional.setNroMat(READER.nextLine());
professionals.add(newProfessional);
Saludos.