martes, 30 de agosto de 2011

Prácticas Java: formulario básico que interactúa con una base de datos.


Sigue la práctica adjunta para crear el formulario de cálculo del sueldo neto que se indica. Una vez construido intenta añadirle la siguiente funcionalidad:

  • Capacidad de guardar los datos del empleado en una base de datos Access.
  • Buscar los datos del empleado una vez indicado el nombre y el apellido.
  • Eliminar el registro del empleado cuyo nombre y apellido coincidan con los indicados.
  • Limpiar todos los campos y opciones.
  • Validación de datos en todas las operaciones. Por ejemplo, que se marquen en rojo los campos obligatorios faltantes antes de guardar o que no se permita introducir texto en los campos numéricos.
  • Menú con todas la opciones y sus correspondientes atajos de teclado.
  • Autocompletado de los campos de nombre y apellidos cuando los caracteres introducidos coincidan con alguno de los empleados presentes en la base de datos.

SOLUCIÓN (proyecto NetBeans)

Para poder correr la aplicación debes configurar adecuadamente el controlador ODBC que te da acceso a la base de datos de Access. Para ello, indica cuál es el origen de datos ODBC dirigiéndote a Panel de Control>Herramientas Administrativas>Orígenes de datos (ODBC). En la ficha DSN de usuario pulsa el botón Agregar. En la lista de controladores que aparece selecciona Microsoft Access Driver (*.mdb). En el campo Nombre del origen de datos escribe BaseDatosSueldo. Después pulsa el botón Seleccionar y especifica la ruta \src\BaseDatos\sueldo.mdb.

Además, deberás incluir en el proyecto la librería jide-oss que proporciona la clase Autocompletion para la funcionalidad de autocompletado. Vete al menú de NetBeans Ejecutar>Establecer la configuración del proyecto>Personalizar. En la categoría Bibliotecas pulsa el botón Añadir jar/carpeta y selecciona el archivo jide-oss-2.11.0.jar que podrás encontrar dentro de la subcarpeta src\calculosueldoneto del proyecto.

miércoles, 24 de agosto de 2011

Write in C



Cuando me encuentro con toneladas de problemas en mi código
mis amigos y colegas acuden a mí
pronunciando sabias palabras:
"Escribe en C"

A medida que la fecha límite de entrega se aproxima
y todo lo que puedes ver son errores
alguien, en algún lugar, susurra:
"Escribe en C"

Escribe en C, escribe en C,
escribe en C, escribe en C.
LISP está muerto y enterrado,
Escribe en C

Yo acostumbraba a escribir muchísimo FORTRAN,
para problemas científicos funciona sin problemas,
pero ¡intenta usarlo para gráficos!
Escribe en C

Si acabas de pasar cerca de 30 horas
depurando y ensamblando
pronto querrás
Escribir en C

Escribe en C, escribe en C
escribe en C, escribe en C
sólo las interfaces gráficas de usuario usan BASIC (N. de Tr.: WIMP son la siglas de Window, Icon, Menu, Pointing Device pero en un doble sentido también podría traducirse como que "sólo los débiles usan BASIC")
Escribe en C

Escribe en C, escribe en C
escribe en C, ¡oh!, escribe en C
Pascal no cubrirá todas tus necesidades.
Escribe en C

Escribe en C, escribe en C
escribe en C, escribe en C.
Tan siquiera menciones a COBOL.
Escribe en C.

Y cuando la pantalla resulta confusa,
y el editor me está irritando,
Estoy harto de ceros y unos.
Escribe en C

Un millar de personas juran que T.P. 7 (N. del Tr. - Turbo Pascal 7)
es el apropiado para mí.
Odio la palabra PROCEDURE (N. del Tr. - palabra reservada presente en Pascal y muchos otros lenguajes procedimentales que no existe en C para referirse a la funciones que no devuelven ningún valor)
Escribe en C

Escribe en C, escribe en C,
escribe en C, escribe en C.
PL1 es de los años ochenta.
Escribe en C.

Escribe en C, escribe en C,
escribe en C, escribe en C.
El gobierno adora ADA (N. del Tr. - se refiere al gobierno de los EEUU que promovió muchísimos proyectos estatales de desarrollo de software en este lenguaje y lo adoptó casi como un estándar de facto para resolver problemas de inteligencia artifical y como núcleo de los sistemas de tiempo real)
Escribe en C.




jueves, 11 de agosto de 2011

Prácticas Java: Calculadora básica


Crea una calculadora básica con el IDE Netbeans utilizando su diseñador de interfaces Matisse. Sigue las siguientes especificaciones:
  • La calculadora permitirá realizar sumas, restas, productos y divisiones con números reales tanto positivos como negativos reaccionando a los clics del ratón sobre los botones.
  • Todas las operaciones serán acumulativas, no limitándose a dos operandos, es decir, que podremos realizar cadenas de cálculos como 3+4-5*(-4)/(-6)*8-4 de forma continua. Cada vez que pulsemos un operador debe aparecer el resultado parcial acumulado.
  • Será posible cambiar el signo tanto de los operandos, durante su introducción, como del resultado parcial acumulado antes de introducir el siguiente operando.
  • La calculadora dispondrá de un pequeño panel informativo donde aparecerá el último operador marcado. El usuario podrá sustituir una operación por otra mientras no introduzca el siguiente operando.
  • La división entre cero es un error, error que se notificará en el panel informativo quedando la pantalla de la calculadora a cero, lista para iniciar una nueva operación.
  • Clics sucesivos en los operadores o en el símbolo igual no deberían alterar el estado actual de la calculadora.
  • La calculadora dispondrá de dos "teclas" de borrado, C y CE. La primera hará que el estado de la calculadora sea el inicial, sin ningún cálculo acumulado y con la pantalla a cero y el panel informativo vacío. La segunda hará que se borre el último operando introducido pero manteniendo el cálculo parcial acumulado.
SOLUCIÓN

lunes, 8 de agosto de 2011

Diapositivas Java

View more presentations from mejiaff

Prácticas C++: seguimiento de la votación del Festival de Eurovisión.




Desarrolla una pequeña aplicación C++ en modo consola que permita el seguimiento de la votación de la final del festival de Eurovisión. Dispondrás de un fichero de texto que contiene la siguiente información relativa a 40 países participantes:

Nombre del país
Representante
Canción
finalista/NO finalista (dependiendo de si el país ha llegado a la final o no)
---------------------------------------- (una secuencia de guiones cortos a modo de separador)

Ten en cuenta las siguientes especificaciones:

  • Todos los países votan según el orden de aparición en el fichero.
  • Hay un total de 40 países participantes.
  • De los 40 participantes, sólo 25 llegan a la final, que son los países a los que se vota.
  • No se puede votar a un país que no haya llegado a la final, y por descontando, se ignora una votación a un país que no exista en la lista de participantes.
  • Ningún país se puede votar a sí mismo.
  • Cada país reparte las siguiente puntuaciones: 1, 2, 3, 4, 5, 6, 7, 8, 10 y 12 puntos.
  • Un mismo país no puede votar más de una vez por otro.
  • Tras la votación de cada país debe mostrarse la clasificación provisional indicando la cantidad de puntos, el país, el representante y la canción que interpreta. La lista clasificatoria estará ordenada de mayor a menor según la puntuación, con el más votado en la cabecera de la lista.
  • Mientras un país está votando aparecera una lista con los finalistas que todavía no ha votado dicho país, incluído el propio país votante si fuese finalista.
  • Emplea POO y sobrecarga los operadores necesarios para efectuar las operaciones de entrada por fichero y salida por pantalla.
SOLUCIÓN




jueves, 4 de agosto de 2011

Prácticas C++: compresión de imágenes mediante el código Huffman


Desarrolla un compresor/descompresor de imágenes BMP de 8 bits empleando programación orientada a objetos. Para ello, considera los siguientes puntos:
  • Investiga las funciones de ejemplo pasa_a_blanco_y_negro(TBMP &bmp) y pasa_a_nColores(TBMP &bmp, int n) de la librería imagenBMP.h que se te proporcionará en clase para comprender cómo manipular la matriz de colores de la fotografía de 8 bits. Asimismo, debes escudriñar bien todas las declaraciones del archivo de cabecera para entender las estructuras de datos empleadas al procesar la imagen.
  • Deberás crear una clase con todos la funcionalidad necesaria para cubrir los distintos subprocesos del algoritmo de Huffman.
  • Empieza añadiendo como atributo de la clase un vector que permita almacenar la frecuencia de aparición de cada uno de los 256 colores que pueden conformar la imagen. Desarrolla todos los métodos necesarios para llevar a cabo el conteo de frecuencias.
  • Crea un TDA Arbol que permita construir el árbol binario característico del algoritmo de Huffman a partir de un vector de frecuencias de colores. Desestima los colores que no aparezcan en la imagen, esto es, aquellos colores con frecuencia cero.
  • Construye una clase Diccionario que sea capaz, con sus métodos, de asociar a cada color el código Huffman correspondiente a partir del árbol anterior teniendo en cuenta que las ramas izquierdas se etiquetarán con '0' y las derechas con '1'.
  • Crea un TDA CampoDeBits que permita codificar cada color mediante el código determinado por el diccionario ocupando sólo un bit para representar cada valor '0' o '1'. Observa que el almacenamiento en disco de la matriz de colores codificada se hará como una secuencia de bytes pero el almacenamiento final debe materializarse bit a bit, sin desperdiciar ningún bit de cada byte, exceptuando, claro, los posibles bits sobrantes del último octeto.
  • Añade a las clases creadas los métodos necesarios para guardar y recuperar en disco. Para almacenar la imagen comprimida guardaremos, en este orden: primero, las cabeceras BMP y la paleta de colores (sin comprimir); luego, el diccionario de Huffman asociado a la imagen (sin comprimir) y finalmente, la matriz de colores (comprimida mediante el código Huffman)
  • Crea un menú simple para llevar a cabo las tareas de compresión y descompresión que me permita indicar la ruta de la imagen origen y la imagen destino en cada caso.
  • Observa, una vez programada la aplicación, que a pesar de no haber comprimido las cabeceras ni el diccionario (sólo la matriz de colores), casi siempre hay una ahorro importante de espacio... y, además, sin pérdida de información.
  • Si el proceso de compresión o descompresión resultan muy lentos, trata de crear índices en el diccionario de Huffman o cualquier otra mejora en las estructuras de datos que permita acelerar la operación.

SOLUCIÓN