viernes, 15 de julio de 2011

Demostracion Final

Aqui dejo lo que son mis ligas de Documentacion y del codigo fuente:

Codigo Fuente
En caso de no funcionar el link de megauplod esta es otra opcion:Codigo Fuente

Y aqui el manual de usuario:Manual


Eventos, excepciones y errores

Las excepciones que maneje en mi programa fueron las siguientes
Aqui un ejemplo:
En este ejemplo la Excepcion que se maneja es que en caso de que no se pudiera hacer una conexion con la base de datos te arrojaria el mensaje de que no se pudo conectar.Esta excepcion fue la que use en todo lo que inclucraba hacer modificaciones a la base de datos para saber si se habia ingresado correctamente la informacion.


st= basedatos.createStatement();
}catch(Exception e){
System.out.println("No se pudo conectar a la base de datos");//En caso de no conectarse manda la siguiente excepcion//


Aqui podemos ver que si no logra hacer lo que se pide arrija la excepcion que mostre antes y si si lo logra arroga el mensaje de estado que fue declarado como conexion satisfactoria.


public void agregar(String NombreE,int Edad,String Puesto)//Metodo para agregar un empleado//
{
try{
st.executeUpdate("INSERT INTO Empleados(Nombre,Edad,Puesto) VALUES('"+NombreE+"','"+Edad+"','"+Puesto+"')");
}catch(SQLException ex){
estado = ex.getMessage();
}
}//Fin agregar//

En general solo maneje esto de excepcion solo para confirmar la conexion con la base de datos si era correcta o incorrecta asi que todos mis campos de modificacion de la base de datos incluyen esas sentencias.


En cuanto a los errores en este ejemplo tenemos que se busca un empleado a eliminar si existe entraria al if pero en caso de no existir arrojaria el mensaje de error de que no fue encontrado verificar la informacion. De igual forma la mayoria de los errores que maneje fueron de este tipo de retornar un mensaje con verificar la informacion.


imprime("\nIngrese el nombre del Empleado a eliminar: ");
String Elim = Lectura.nextLine();
ResultSet resu= con.buscar(Elim);
if(resu.next())
{
con.Eliminar(Elim);
}else
imprime("Empleado no encontrado verifique la informacion");


Eventos
Para los eventos solo podria incluir lo que seria en mi caso que no pude realizar la interfaz pues lo que vendria siendo el switch case.Como vemos el switch es de la variable opcion en caso de que sea digamos el Caso 1 el evento que se desencadenaria seria el siguiente ejemplo.

switch(opcion)
{
case 1: //caso 1 Agregar Empleado//
imprime("Ingrese la siguiente informacion");
imprime("\nNombre: ");

String NombreE = Lectura.nextLine();
imprime("Edad: ");

int Edad = Integer.parseInt(Lectura.nextLine());

imprime("Puesto: ");
String Puesto = Lectura.nextLine();
con.agregar(NombreE,Edad,Puesto);
break;

Sistemas distribuidos Taller

Para poder distribuir mi software primero que nada creo que habria que terminarlo e implementar la interfaz grafica para que sea de facil manejo. Otro punto es que necesitaria ser open-source y atraves de internet para que se pueda adaptar segun al hotel que se quiera usar ya que yo en mi ejemplo solo manejo 15 habitaciones y 3 tipos pero esta informacion puede variar. Habria tambien que disenar un manual de usuario donde se incluyeran las especifaciones para poder usarlo como lo que se requiere que seria java ya al momento de hacerlo como un ejecutable sin necesidad de la termina, esto ya con la idea de que este termindo completamente, otro aspecto para distribuirlo bien seria gratis tambien. Por ultimo la seguridad habria que disenar un login para que solo los administradores tengan acceso a el programa.

Pruebas Unitarias Taller

Aqui unas capturas del resultado de las pruebas sobre mis clases hecho con Junit





Tambien las pruebas que habia planeado hacer en la clase


Aqui comprobe que realmente funcionara y la pueba fue exitosa al momento de hacer check in se obtienen los datos y se cambia el estado por Ocupada.





Aqui comprobe que realmente funcionara y la pueba fue exitosa el estado vuelve a "Vacio" y los datos se reinician.



Aqui comprobe que realmente funcionara y la pueba fue exitosa los datos de empleado que se proporcionan son agregados a la tabla.

Patrones de diseño Taller

Bueno un patron de diseño que implemente en mi codigo fue:
Flyweight (Peso ligero): Reduce la redundancia cuando gran cantidad de objetos poseen idéntica información. Utlice esto para ahorra escribir todo el System.out.println a la hora de querer imprimir algo en la pantalla de esta forma solo colocando imprime llamo a lo que es el System.out.println. Aqui el codigo de donde lo utilice

La declaracion

public static void imprime(String imprime)//Metodo para ahorrar codigo a la hora de Imprimir//
{
System.out.println(imprime);
}//fin de Impresor//


Y a la hora de querer usarlo solo lo mandamos a llamar a como lo hayamos definido en este caso "imprime"


imprime("Habitacion Disponible");
imprime("\nCuarto: "+Tipo.getString("Numero"));
String Num=Tipo.getString("Numero");
imprime("Estado: "+Tipo.getString("Estado"));

Interfaz Grafica Taller

Desafortunadamente por el tiempo de entrega y problemas que surgieron con la base ya no me dio tiempo de implementar la interfaz grafica que tenia en mente, asi que solo dejo las capturas de la Terminal de los Menus que le hice para poder hacerla funcionar.

El menu principal


El menu de Empleados


El menu de habitaciones

Documentacion Tecnica Taller

Aqui esta la liga con la documentacion de mi proyecto realizada con javadoc:
Descarga Aqui(El zip incluye ambos archivos):
Documentacion