Mostrando entradas con la etiqueta programa en java. Mostrar todas las entradas
Mostrando entradas con la etiqueta programa en java. Mostrar todas las entradas

lunes, 10 de marzo de 2014

Buscador tipo Google en Java con Archivos e Interfaces Gráficas

Buscador tipo Google en Java


Se desarrolla una aplicación en Java haciendo uso de interfaces gráficas, es decir, los componentes visuales de Swing.
La aplicación permite registrar empleados e información principal de los mismos. Luego es posible buscar a los empleados a tiempo real según sus apellidos paternos. Es decir, a medida que se escribe el apellido la lista de resultados va filtrando a los que coinciden. La lista de resultados se actualiza cada vez que una tecla es liberada, haciendo uso del evento correspondiente.
Con ello decimos que no se necesita hacer clic en algún botón ni siquiera es necesario presionar enter.
Lo mejor es que no tenemos que estar ingresando datos cada vez que ejecutamos el programa, ya que los datos son salvados en archivos, y se cargan cada vez que el programa es abierto, lo que hace posible armar un buen listado, a diferencia de los programas que no hacen uso de archivos.

Videotutorial en Youtube

He realizado un video explicativo que explica con detalle el desarrollo de este programa, en el que se hacen uso de componentes como JTabbedPane, JTextArea, JTextField, entre otros.

Descargar programa

Es posible descargar el código fuente del programa expuesto en el videotutorial. Hay que tener en cuenta que el programa se desarrollo en Netbeans, sin embargo, puede ser abierto desde otros IDE con un mínimo esfuerzo.

lunes, 24 de febrero de 2014

Patrón de diseño Abstract Factory [Incluye descarga del ejemplo en Java]

Abstract Factory

Es incorrecto pensar que Abstract Factory es igual al patrón de diseño Builder. La principal diferencia es que Builder permite la creación de objetos de una única clase, asignando valores predeterminados a los atributos de cada objeto. En Abstract Factory, se gestiona la creación de objetos pero de distintas clases.
Los objetos que van a ser creados son denominados Productos Concretos, que implementarán una interface determinada, la cual es denominada Producto Abstracto.
Así mismo, la creación de estos objetos se hace a través de factorías, que son clases que se encargan de gestionar recursos para la creación de estas instancias. Así, existe una Factoría Abstracta (que es no es más que otra interface), y por lo tanto, Factorías Concretas, que son clases que implementan tal interface.

Para comprender mejor estos conceptos, se recomienda ver el siguiente video explicativo:

Incluso, es posible descargar el ejemplo en Java que aparece en el video, desde el siguiente enlace:

Si dudas se le presentan, no duda en escribirlas aquí mismo o en el video en Youtube.

martes, 26 de noviembre de 2013

Ejercicio tipo examen sobre Clases e Interfaces en Java

Bueno, el siguiente ejercicio fue propuesto como un ejercicio tipo examen para el curso "Tecnología de la programación I" que estoy siguiendo (IV ciclo de Ingeniería de Sistemas).

Enunciado.

El departamento de Informática de un hospital está realizando un nuevo registro de datos de todas las personas que tienen relación con esa institución, que son: los empleados, los médicos y los pacientes.
Los empleados son categorizados en función de si son contratados por Planilla o de forma Eventual y son los encargados de los procesos administrativos.

Los médicos (que podrían considerarse un tipo especial de empleados contratados por Planilla) se encargan de las atenciones de las consultas médicas.
Para solicitar una cita, el paciente es atendido por un empleado. El paciente indica el servicio en el cual quiere pasar consulta y el empleado le indica el nombre del médico, la fecha y la hora de la cita.

Los atributos de cada uno de ellos se indican a continuación:

  • Persona: número de DNI, nombre, apellido, fecha de nacimiento, dirección, ciudad de procedencia.
  • Paciente: número de historia clínica, sexo, grupo sanguíneo, lista de medicamentos a los que es alérgico.
  • Empleado: código de Empleado, número de horas extras, fecha de ingreso, área, cargo.
  • Empleado por Planilla: salario mensual, porcentaje adicional por hora extra.
  • Empleado Eventual: honorarios por hora, número de horas totales (normales + extras) trabajadas, fecha de término del contrato.
  • Médico: especialidad (cirujano, oftalmólogo, etc.), servicio (cirugía, oftalmología, etc.), número de consultorio.

Las operaciones que involucren algún cálculo, deben desarrollarse a través de interfaces.
La aplicación a desarrollar debe permitir:
a) Registrar los datos de los empleados, los pacientes y los médicos.
b) Registrar los datos de una cita médica.
c) Listar los datos de los médicos ordenados en forma descendente por la especialidad.
d) Listar los datos (nombres y apellidos) de los pacientes atendidos por un médico determinado (ingresando su código).

Nota: En el diagrama y en la codificación deben mostrarse e implementarse los aspectos de ocultación, composición y/o agregación, herencia (simple y múltiple) y polimorfismo.

Solución.

El desarrollo se compone de clases e interfaces, a fin de cumplir todos los requisitos expuestos.
En este caso, se ha ordenado el programa en 2 paquetes: backend y frontend.
El primero incluye toda la lógica interna del programa y el segundo sólo lo referente a la lectura de datos y acerca de cómo se presentan las opciones y respuestas al usuario.
Dentro del primer paquete se encuentran las clases e interfaces: EEventual, EPlanilla, Empleado, Fecha, Medico (que contiene una clase interna llamada CitaMedica), Paciente, Persona, Saldo, SaldoEventual y SaldoPlanilla.
Dentro del segundo paquete se tiene: Aplicacion, Lector y Principal.

El siguiente video explica detalladamente el desarrollo del programa:

miércoles, 23 de octubre de 2013

Herencia y Polimorfismo en Java (Ejemplo 01)

Enunciado: La empresa XYZ requiere una aplicación informática para administrar los datos de su personal.
Del personal se conoce: número de DNI, nombre, apellidos y fecha de ingreso.
Existen dos categorías de personal: el personal contratado y el personal a destajo. Los empleados contratados tienen un sueldo básico y un porcentaje adicional en función al tiempo laborado: de 0 a 3 años: 5%; de 4 a 7 años: 10%; de 8 a 15 años: 15% y más de 15 años: 20%. Los empleados a destajo tienen un número de clientes captados y un monto por cliente captado.

El desarrollo se compone de 3 paquetes: datos, entidades y presentacion.
En el paquete datos se encuentra una clase llamada ListaEmpleados.
Dentro de entidades tenemos la clase padre Empleado de la que heredan las clases EContratado y EDestajo.
Finalmente, el paquete presentacion incluye las clases: Aplication y AplicationRunner.
El video explicativo de este ejercicio (que hace uso de Herencia y Polimorfismo) puede verse desde la siguiente dirección: