jueves, 24 de noviembre de 2011

Puntos Extras Taller de POO

 http://programacion-orientada-4200.blogspot.com/2011/10/ejercicios-en-sql.html


http://programacion-orientada-4200.blogspot.com/2011/11/ejercicio-de-la-clase-moto.html


http://programacion-orientada-4200.blogspot.com/2011/11/patrones-de-diseno_24.html

Patrones de Diseño

Hola en esta entrada mostrare el ejercicio de las Pruebas de Bebidas en la que se utilizaban partes del código de como preparar un Té y un Café, pero estas son clases incompletas las cuales nosotros tenemos que darles los valores adecuados, y acomodarlas según sea necesario.

Como ya mencioné son clases separadas las cuales debemos implementar, y ¿Como las implementamos si no están completas? Pues en parte tiene que ver mucho el tema de "Superclases" y subclases, las cuales para poder utilizarlas debemos agregar el "abstract" a la "superclase" para que, en este caso java, sepa que no están completas.

Bueno primero especificamos que la superclase se hereda, e implementamos los métodos del tipo abstracto:


public abstract class BebidaCafeinada
{
 public final void prepararReceta()
 {
  hervir();
  poner();
  servir();
  agregaCondimentos();
  System.out.println();
 }

 public abstract void poner();
 public abstract void agregaCondimentos();

 public void hervir()
 {
  System.out.println("Hirviendo el Agua");
 }

 public void servir()
 {
  System.out.println("Sirviendo");
 }
}


Aquí tenemos la superclase, de esta se heredan los metodos "poner" y "agregaCondimentos"

Después tenemos las bebidas que mencionamos hay que darles sus algoritmos, la superclase se encarga de controlar el proceso.


public class Cafe extends BebidaCafeinada
{
 public void poner()
 {
  System.out.println("Poniendo el Cafe");
 }

 public void agregaCondimentos()
 {
  System.out.println("Agregando Azucar y Leche");
 }
}

Esta es la clase Café, que continua con el programa utilizando herencia.


public class Te extends BebidaCafeinada
{
 public void poner()
 {
  System.out.println("Poniendo el Te");
 }

 public void agregaCondimentos()
 {
  System.out.println("Agregando limon");
 }
}

Esta es parecida a la del Café, pero se llama "Te"


public class PruebaBebidas
{
 public static void main(String[] args)
 {
  Te elTe = new Te();
  Cafe elCafe = new Cafe();

  System.out.println("Preparando el Te");
  elTe.prepararReceta();

  System.out.println("Preparando el Cafe");
  elCafe.prepararReceta();
 }
}

Por ultimo esta clase se encarga de hacer la prueba y mostrar los resultados en conjunto.

Bien ahora hacemos la prueba:
Primero vamos al directorio donde tenemos las clases, como son varios archivos ".java", podemos hacer uso del comando "javac *.java" para compilar todos de una sola vez.

Y ahora lo ejecutamos:


Y así es como termina, todo esto es buen motivo para aprender que cualquier código puede reutilizarse e implementarse como tipo abstracto, solo hace falta dar los valores a las variables y demás detalles estéticos.
Utilizando esta manera de programar es mas sencillo implementar otros tipos de clases que se ajusten al método.



Ejercicio de la clase Moto

Hola saludos!!
Haremos un ejemplo:
Bien primero hacemos el pseudocodigo:

Inicia
Numero de Placa:
Motocicleta apagada
Velocidad 0 km/h
Batería al 100%

Si encendemos {
Batería disminuye 1%
}
Si Batería es menor a 1{
No se puede encender! Batería descargada!
}
Apagar detiene Moto y no Disminuye Batería;
Acelerar Disminuye 1% Batería y Aumenta 20 a velocidad;
Frenar Disminuye 1% Batería y Disminuye 20 a velocidad;
Si Velocidad =200 {
Ya no puede acelerar mas!! es la máxima velocidad!!
}
Si Velocidad es =0 {
Ya no puede frenar porque esta detenido!!

Si al Acelerar o Frenar y Batería es menor a 1%{
Motocicleta se Apaga y se detiene
}

Si Batería es Menor a 1%{
Salir de Moto
}
}

Como notaron agregue algunas opciones extras al código como una velocidad limitada a 200 Km/h y que si la batería se acaba la moto se apaga y se detiene.

Bien Ahora el código:


import java.util.*;

public class Motocicleta {

public String Placa;
public boolean EstadoMotor;
public int Velocidad;
public int VidaBateria;

public Motocicleta(String Placa, boolean EstadoMotor, int Velocidad, int VidaBateria)
  {
      this.Placa = Placa;
      this.EstadoMotor = EstadoMotor;
      this.Velocidad = Velocidad;
      this.VidaBateria = VidaBateria;
  }
/**
* @param args
*/
public static void main (String[] args)
  {
Motocicleta casos = new Motocicleta("ELV9550", false, 0, 100);
   
    int opcion = 0;
    Scanner read = new Scanner(System.in);
   
    do {
   
    System.out.println("1.-Datos de Motocicleta");
    System.out.println("2.-Encender");
    System.out.println("3.-Apagar");
    System.out.println("4.-Acelerar");
    System.out.println("5.-Freno");
    System.out.println("6.- Salir\n");                              
    System.out.print("Elija una opcion: ");
    opcion = read.nextInt();
   
    System.out.println("\n");
   
    switch(opcion)
    {
        case 1:
            casos.InfoMoto();
            break;
        case 2:
            casos.encender();
            break;
        case 3:
        casos.apagar();
            break;
        case 4:
        casos.acelerar();
            break;
        case 5:
        casos.frenar();
            break;
 
    }
    }
while(opcion != 6);
}
 
public String MostrarPlaca ()
{
    return Placa;
}

public void encender()
{
    if(EstadoMotor != true && VidaBateria>0){
    EstadoMotor = true;
    if(VidaBateria>1)
    {
        VidaBateria--;
    }
    else{ System.out.println("¡¡La Bateria se descargo por completo!!\n");
    EstadoMotor = false;
    Velocidad = 0;
    }

}
else{
System.out.println("¡¡La Motocicleta ya esta encendida!!\n");
}
   
   
}

public void apagar()
{
if(EstadoMotor != false){
   EstadoMotor = false;
   Velocidad = 0;
}
else{
System.out.println("¡¡La Motocicleta ya esta Apagada!!\n");
}
}

public void acelerar()
{
    if(EstadoMotor = true && Velocidad < 200 && VidaBateria>=0)
    {
        Velocidad = Velocidad + 20;
   
    if(VidaBateria>1)
    {
        VidaBateria--;
    }
else{ System.out.println("¡¡La Bateria se descargo por completo!!\n");
EstadoMotor = false;
Velocidad = 0;
    }
}
else{
System.out.println("No puede acelerar mas!! Velocidad Maxima de Motocicleta:200Km/h\n");
}
}

public void frenar ()
{
    if(EstadoMotor = true && Velocidad != 0 && VidaBateria>=0)
    {
        Velocidad = Velocidad - 20;
    if(VidaBateria>1)
    {
        VidaBateria--;
    }
else{ System.out.println("¡¡La Bateria se descargo por completo!!\n");
EstadoMotor = false;
Velocidad = 0;
    }
    }
    else{
    System.out.println("Ya está detenido!! Velocidad:0 Km/h\n");
    }
}

public void InfoMoto()
{
    System.out.println("La placa es: "+Placa);
    if(EstadoMotor == false){
    System.out.println("Motor Apagado");
    }
    else {
    System.out.println("Motor Encendido");
   }
    System.out.println("Velocidad: "+Velocidad+" Km/h");
    System.out.println("Porcentaje de vida de la bateria: "+VidaBateria+"%"+"\n");

}
}

Bien ahora a probarlo:

Primero Compilamos y ejecutamos el código:

Ahora veamos el estado de la Moto:

Ahora encendemos y mostramos el estado de la moto:

Bien observamos como disminuye la vida de la Batería.

Ahora agregue una opción que nos manda un mensaje si la moto ya esta encendida y la queremos volver a encender:

Ahora probamos el de apagar la moto:

Y también agregué un mensaje si la moto ya esta apagada y tratamos de apagarla de nuevo:

Ahora Aceleramos la moto varias veces:

También como ya mencione la velocidad máxima es de 200Km/h, así que cuando intentamos acelerar mas no nos permite, y por lo tanto no se gasta batería al intentarlo:


Ahora probamos la opción frenar, la cual disminuye la batería y velocidad:


También si ya hemos frenado por completo y queremos volver a frenar nos manda un mensaje:

Y por ultimo probar que pasa cuando la batería se acaba:



Y claro que cada vez que muestra el estado de la moto, muestra el numero de Placa, el Estado del motor, la Velocidad y el estado de la Batería.

miércoles, 23 de noviembre de 2011

Pruebas Unitarias

Hola esto es las pruebas unitarias que resultaron al crearlas, debido a que hay muchas clases mostrare algunas y las demás las subiré para que las puedan descargar.


Prueba de Clase Main:
package proyectofinal;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

public class MainTest {

    public MainTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of main method, of class Main.
     */
    @Test
    public void testMain() {
        System.out.println("main");
        String[] args = null;
        Main.main(args);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

}

Prueba de Clase Seguridad:


package frames;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

public class SeguridadTest {

    public SeguridadTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of main method, of class Seguridad.
     */
    @Test
    public void testMain() {
        System.out.println("main");
        String[] args = null;
        Seguridad.main(args);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

}

Prueba de Clase Menu:



package frames;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

public class MenuTest {

    public MenuTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of main method, of class Menu.
     */
    @Test
    public void testMain() {
        System.out.println("main");
        String[] args = null;
        Menu.main(args);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

}

Prueba de Clase AltaCliente:


package frames;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

public class AltaClienteTest {

    public AltaClienteTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of main method, of class AltaCliente.
     */
    @Test
    public void testMain() {
        System.out.println("main");
        String[] args = null;
        AltaCliente.main(args);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of setTxtRFC method, of class AltaCliente.
     */
    @Test
    public void testSetTxtRFC() {
        System.out.println("setTxtRFC");
        String id = "";
        AltaCliente instance = new AltaCliente();
        instance.setTxtRFC(id);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of getTxtRFC method, of class AltaCliente.
     */
    @Test
    public void testGetTxtRFC() {
        System.out.println("getTxtRFC");
        AltaCliente instance = new AltaCliente();
        String expResult = "";
        String result = instance.getTxtRFC();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of setTxtNombre method, of class AltaCliente.
     */
    @Test
    public void testSetTxtNombre() {
        System.out.println("setTxtNombre");
        String nombre = "";
        AltaCliente instance = new AltaCliente();
        instance.setTxtNombre(nombre);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of getTxtNombre method, of class AltaCliente.
     */
    @Test
    public void testGetTxtNombre() {
        System.out.println("getTxtNombre");
        AltaCliente instance = new AltaCliente();
        String expResult = "";
        String result = instance.getTxtNombre();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of setTxtCalle method, of class AltaCliente.
     */
    @Test
    public void testSetTxtCalle() {
        System.out.println("setTxtCalle");
        String calle = "";
        AltaCliente instance = new AltaCliente();
        instance.setTxtCalle(calle);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of getTxtCalle method, of class AltaCliente.
     */
    @Test
    public void testGetTxtCalle() {
        System.out.println("getTxtCalle");
        AltaCliente instance = new AltaCliente();
        String expResult = "";
        String result = instance.getTxtCalle();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of setTxtColonia method, of class AltaCliente.
     */
    @Test
    public void testSetTxtColonia() {
        System.out.println("setTxtColonia");
        String colonia = "";
        AltaCliente instance = new AltaCliente();
        instance.setTxtColonia(colonia);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of getTxtColonia method, of class AltaCliente.
     */
    @Test
    public void testGetTxtColonia() {
        System.out.println("getTxtColonia");
        AltaCliente instance = new AltaCliente();
        String expResult = "";
        String result = instance.getTxtColonia();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of setTxtCiudad method, of class AltaCliente.
     */
    @Test
    public void testSetTxtCiudad() {
        System.out.println("setTxtCiudad");
        String ciudad = "";
        AltaCliente instance = new AltaCliente();
        instance.setTxtCiudad(ciudad);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of getTxtCiudad method, of class AltaCliente.
     */
    @Test
    public void testGetTxtCiudad() {
        System.out.println("getTxtCiudad");
        AltaCliente instance = new AltaCliente();
        String expResult = "";
        String result = instance.getTxtCiudad();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of setTxtTel method, of class AltaCliente.
     */
    @Test
    public void testSetTxtTel() {
        System.out.println("setTxtTel");
        String tel = "";
        AltaCliente instance = new AltaCliente();
        instance.setTxtTel(tel);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of getTxtTel method, of class AltaCliente.
     */
    @Test
    public void testGetTxtTel() {
        System.out.println("getTxtTel");
        AltaCliente instance = new AltaCliente();
        String expResult = "";
        String result = instance.getTxtTel();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of setTxtEstado method, of class AltaCliente.
     */
    @Test
    public void testSetTxtEstado() {
        System.out.println("setTxtEstado");
        String estado = "";
        AltaCliente instance = new AltaCliente();
        instance.setTxtEstado(estado);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of getTxtEstado method, of class AltaCliente.
     */
    @Test
    public void testGetTxtEstado() {
        System.out.println("getTxtEstado");
        AltaCliente instance = new AltaCliente();
        String expResult = "";
        String result = instance.getTxtEstado();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of setTxtCP method, of class AltaCliente.
     */
    @Test
    public void testSetTxtCP() {
        System.out.println("setTxtCP");
        String cp = "";
        AltaCliente instance = new AltaCliente();
        instance.setTxtCP(cp);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of getTxtCP method, of class AltaCliente.
     */
    @Test
    public void testGetTxtCP() {
        System.out.println("getTxtCP");
        AltaCliente instance = new AltaCliente();
        String expResult = "";
        String result = instance.getTxtCP();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of validacion method, of class AltaCliente.
     */
    @Test
    public void testValidacion() {
        System.out.println("validacion");
        AltaCliente instance = new AltaCliente();
        boolean expResult = false;
        boolean result = instance.validacion();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of validacionCP method, of class AltaCliente.
     */
    @Test
    public void testValidacionCP() {
        System.out.println("validacionCP");
        AltaCliente instance = new AltaCliente();
        boolean expResult = false;
        boolean result = instance.validacionCP();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of validacionTel method, of class AltaCliente.
     */
    @Test
    public void testValidacionTel() {
        System.out.println("validacionTel");
        AltaCliente instance = new AltaCliente();
        boolean expResult = false;
        boolean result = instance.validacionTel();
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

    /**
     * Test of SP method, of class AltaCliente.
     */
    @Test
    public void testSP() {
        System.out.println("SP");
        boolean a = false;
        AltaCliente instance = new AltaCliente();
        boolean expResult = false;
        boolean result = instance.SP(a);
        assertEquals(expResult, result);
        // TODO review the generated test code and remove the default call to fail.
        fail("The test case is a prototype.");
    }

}

Bien las demás las dejo en el siguiente link:
Pruebas Unitarias zip





Sistemas Distribuidos


Nombre del Proyecto: Sistema de Administración de Almacén.

Objetivo: Diseñar y desarrollar un Sistema de Información que gestione todas las operaciones en un Departamento de  Almacén de Artículos.

Justificación: La idea de desarrollar un Sistema de Información, que gestione las operaciones de un departamento de almacén, está dada por la actual problemática de las pequeñas y medianas empresas, donde no existe un control automatizado para gestionar dichas operaciones. Normalmente en dichas organizaciones, se utilizan métodos tradicionales, que a un mediano y largo plazo, se  generan problemas por el volumen de documentos que se llegaran a manejar.
Este Sistema, tiene como principal finalidad:
-Automatizar todas las tareas que se efectúan en el departamento de almacén.
-Llevar un registro histórico, de todos los movimientos efectuados en el departamento, es decir: compas de artículos, altas, existencias, salidas de material, bajas de material, modificaciones, consultas de información.
-Reducir las pérdidas y extravió de material en la empresa.
-Reducir los tiempos en todas las operaciones antes mencionadas.

Alcance: El alcance de este Sistema, abarca cualquier tipo de Organización, es decir tanto pública como privada, así como instituciones, en donde se requieran metodologías, para automatizar y controlar todas las operaciones en un almacén, donde el personal que labora puede ser susceptible a cometer errores, si realiza su trabajo de forma manual y mecánica.
El diseño de este Sistema de Información, se adecua perfectamente a las necesidades cualquier Pequeña o Mediana Empresa, por lo que su alcance puede repercutir aun más, ya que si se requiere implementar a otro tipo de negocio, solo se realizan mínimas modificaciones al diseño original y así adecuarlo a las necesidades de cada empresa.

domingo, 20 de noviembre de 2011

Documentación Técnica

Hola saludos, en esta entrada mostrare como generar documentación técnica con javadoc, que fue el que yo utilice.

Existen varias herramientas que nos permiten auto-generar la documentación técnica, están: Javadoc, Doxygen, Sandcastle, Sphinx entre otros.

Bien yo utilizare javadoc, primero desde el símbolo del sistema buscamos el directorio donde tenemos el proyecto, después una vez encontrado tecleamos javadoc *.java y damos enter.
Escribir *.java quiere decir que incluiremos todos los archivos con dicha extensión.



Después nos vamos al directorio donde están los archivos y abrimos el documento html que se llama "index" el cual nos mostrara toda la información generada con esta herramienta.




Subí la documentación completa del proyecto para descargar:
Documentación Técnica

Les dejo también estos links muy buenos sobre la documentación:

Subestimada Javadoc
Javadoc

martes, 1 de noviembre de 2011

Patrones de diseño

Hola, en esta entrada hablare de los Patrones de diseño.

Primero ¿que es un patrón de diseño?
Es una solución ya especificada para resolver problemas de programación comunes.
Esto hace el código mas flexible, también es una buena manera de implementar organización en el código, si existen uniones entre clases esto lo hace mas diferenciable y fácil de encontrar.

Algunos patrones de diseño son (pueden dar clic en cada uno son enlaces):

Algunos patrones de diseño

Delegado
Compuesto
Decorador
Mediador
Iterador
Observador
Modelo-vista-controlador
Factoria
Data Access Object (DAO)
Proxy

Los patrones de diseño describen las clases y las instancias colaboran entre si. Cada patron puede ser adaptado a algún problema, para describir alguno debemos especificar:

  • El nombre
  • Cual es el propósito
  • Si existen algunos otros que coincidan
  • Cual problema se esta aplicando
  • El diagrama de clases
  • Diagrama de interacciones
  • Algunas notas extras
  • Otros patrones con los que pudiera estar relacionado.
Un Patrón de diseño es un esquema que se supone puede o debe resolver el problema ya que se muestra de manera mas simple toda  la información de las clases osea el programa en si. Pero un patrón es en escala pequeña y sirve para resolver problemas, no confundirlo con los esquemas que se elaboran para diseñar el programa, ya que estos son en escala mucho mayor.

Aqui un ejemplo del Patrón que queremos seguir para nuestro proyecto, es la clase Seguridad de la cual ya mostre su funcionamiento anteriormente:


Aquí utilizamos el patrón Observador y el Decorador, trataremos de seguirlos usando en todo lo demás, solo muestro esta parte por ahora porque seguimos puliendo las demás.


Referencias:
Patrones de Diseño PDF
Descripcion de patrones

Eventos y excepciones

Hola saludos, en esta entrada hablare de eventos que ocurren y errores que se pueden presentar en el programa.

Primero que es un evento o excepción, un evento puede ser algún problema que se puede presentar debido a que el usuario de alguna manera no ha ejecutado correctamente el programa, o lo ha llevado hasta los extremos que puede tolerar este.
Un error es cuando el programa en si, ha tenido problemas al iniciar, ejecutarse o para finalizar debido a que algún archivo fue eliminado, movido de directorio o editado incorrectamente. Cuando esto pasa el usuario puede encontrarse con que ha descubierto un error irreparable por el, amenos que sepa exactamente la causa, por estas razones debemos especificar al usuario mediante cuadros de dialogo que algo pasa, para que el usuario no se espante y tenga alguna idea de que pudo haber ocurrido al menos.

En mi proyecto también manejamos eventos y excepciones aquí algunos ejemplos:

En la primera ventana la cual le pedimos al usuario que ingrese su cuenta y contraseña:



Si el usuario es incorrecto el programa lo detectará entonces le mandara un mensaje para que el usuario sepa que se ha equivocado al teclear su cuenta:


También hay un mensaje si el usuario introduce una contraseña invalida, para que se entere que se ha equivocado:


Y aquí el código que es el responsable de que esto ocurra y evite que el usuario se desespere al no poder acceder y no saber que esta tecleando mal los datos:


Cuando el usuario ingresa correctamente sus datos y presiona aceptar el programa abrirá la ventana del menú para que pueda acceder a trabajar.
Si no es así, el código podemos apreciar como hay una parte donde declaramos un cuadro de mensaje que le avisa al usuario su error.


Material de Apoyo:


Información sobre eventos y excepciones

sábado, 29 de octubre de 2011

Interfaz Gráfica

Hola saludos, en esta entrada mostrare las ventanas que tenemos contempladas en el proyecto.

Primero Aparece la ventana de Acceso, que sera la que permitirá o no la entrada del usuario al programa mediante la captura de un usuario y una contraseña.



Si se desea cambiar la contraseña se da clic en el botón y aparece la siguiente ventana de cambio de contra:


Si se accede directamente en la de seguridad o ventana de acceso al menú, que obviamente se debe tener correctos los campos de usuario y contraseña, aparecerá la ventana del menú de opciones con la cual el usuario podrá manejar y trabajar con la información.


Y de esta manera poder acceder a cualquier campo de las opciones mostradas o terminar el programa si asi lo desea.

Ventana de Alta de Almacén:


Ventana de Alta de Cliente:


Ventana de Alta de Proveedor:


Ventana de Compras:



Bien estas son las ventanas que tenemos para usar, si contemplamos alguna otra la subiré en otra entrada.

También les dejo algunos tutoriales para crear interfaces gráficas, para que se den alguna idea de como hacer las ventanas de sus proyectos:

Links para los tutoriales:

Video de interfaz en NetBeans:
Video de Interfaz

Bibliotecas que contienen la interfaz:
Bibliotecas de la interfaz

Pdf de Interfaces graficas de usuario:
Pdf de GUI


sábado, 15 de octubre de 2011

Ejercicios en SQL

Hola saludos, en esta entrada mostraré algunos de los comandos que podemos practicar en SQL, como los que practicamos en clase de taller.

SQL es un lenguaje declarativo que se utiliza para hacer consultas a bases de datos relacionales, una de sus características es que utiliza el álgebra y el calculo relacional permitiendo efectuar consultas para recopilar información de manera sencilla.

Primero vamos a la base de datos que esta en  linea. que se encuentra en la siguiente pagina:


http://www.w3schools.com/sql/sql_tryit.asp


Primero vamos a tratar de que nos muestre la siguiente tabla:


Para lograr esto escribimos el código siguiente:
SELECT * FROM customers
en:


Ahora escribimos donde mismo lo siguiente:

SELECT CompanyName, ContacName
FROM customers




Debemos revisar la ortografía ya que es posible que sea la primer causa de que no   nos muestre correctamente la información deseada.


Bueno estos primeros dos ejemplos solo estamos pidiendo que nos muestre las columnas que le pedimos.
En el primero le pedimos que nos muestre la tabla completa,en el segundo que solo muestra las tablas "CompanyName" y "ContactName" de la tabla "customers".


Bien ahora escribimos la siguiente consulta:
SELECT*
FROM customers
WHERE CompanyName LIKE 'e%'
En esta pedimos que nos muestre la tabla "customers" en la columna "Company Name" todo lo que empieze con "e".
Debe quedar algo asi:




Ahora el siguiente ejercicio:


SELECT CompanyName, ContactName
FROM customers
WHERE CompanyName > 'd'


Con este pedimos que solo de las columnas "CompanyName" y "ContactName" de la tabla "customers" queremos todas las posibilidades de resultados que sean mayores a la letra "d".


Debe quedar asi:





SELECT Address, Country
FROM customers
WHERE CompanyName > 'f'
AND ContactName > 'f'


Este es parecido pero nos permite ver 2 o mas columnas con condiciones separadas o iguales, debe quedar algo así:

Pues esto son algunos de los muchos ejemplos que podemos hacer en SQL, espero que les aclare sus dudas y les sirva de apoyo.

Referencias:


Que es SQL:
Por Wikipedia


Tutorial de SQL

sábado, 8 de octubre de 2011

Ejemplo en Java

Hola saludos compañeros, en esta entrada haré un ejemplo de un programa en java que genera 4 objetos en un mismo panel.

Bueno para empezar abran su editor favorito y teclean el siguiente código:



Bien una vez que tenemos el código, nos aseguramos de guardar el archivo con el nombre de la clase y la extensión  ".java", si es que lo hicimos manualmente.

Ahora sigue compilar el código:



Y si no marca ningún error de compilación procedemos a ejecutarlo:



Y nos debe mostrar la siguiente ventana:


Y le damos clic al botón para que nos muestre su función:


Y nos queda de esta manera.

Referencias: Libro de Java para Estudiantes.

viernes, 16 de septiembre de 2011

Esqueleto de Clases

Hola saludos

Este es el esqueleto de clases de mi proyecto, si cambiamos o agregamos alguna otra clase lo publicare mas adelante.

Primera clase:
Segunda clase:

Tercera clase:


Cuarta clase:

Quinta clase:



Bien estas son las clases que tenemos previstas a usar, como ya mencioné, si hacemos algún cambio lo diré mas adelante.

viernes, 2 de septiembre de 2011

Programando una clase

Hola saludos!! 
En esta entrada voy a crear una clase, la mostrare usando el bloc de notas de Windows y la compilare y ejecutare en el símbolo del sistema.

Primero: ¿Que es una clase?
Una clase es una parte del programa que contiene las instancias de los objetos, osea es una parte del programa entero que se encarga de hacer una porción o su totalidad ( según cuan grande es el programa) de la acción de este.
Las clases contienen los atributos de los objetos a los cuales se les hará referencia. Estos atributos son las características de cada objeto que se mande llamar.

Bueno manos a la obra:

Primero abrimos nuestro editor de texto, (yo usare el "bloc de notas", algunos usaran "Emacs"), y comenzamos a escribir nuestro programa:


Este será un programa que nos muestra una ventana con un cuadro de texto con el mensaje "Hola!!"
Primero debemos importar las bibliotecas que utilizara el programa, esto se hace en las primeras tres lineas de código.


1 import java.awt.*;
2 import java.awt.event.*;
3 import javax.swing.*;
4
5 public class Saludo extends JFrame {
6
7 private JTextField textField;
8
9 public static void main (String[] args) {
10 Saludo marco = new Saludo();
11 marco.setSize(300, 150);
12 marco.createGUI();
13 marco.setVisible(true);
14 }
15
16 private void createGUI() {
17 setDefaultCloseOperation(EXIT_ON_CLOSE);
18 Container window = getContentPane();
19 window.setLayout(new FlowLayout() );
20 textField = new JTextField("      Hola!!      ");
21 window.add(textField);
22 }
23 }

Después tenemos "public class Saludo extends JFrame {" en la linea 5, lo cual es donde se declara la clase "Saludo" del tipo "public" y utiliza el extends JFrame para crear un cuadro de texto, que es donde se colocará el mensaje.
Luego en la linea 7 se muestra "private JTextField textField;" lo cual es para crear una variable llamada textField del tipo privada.
Después aparece un conjunto de instrucciones de la linea 9 a la13 la cual la primera linea nos dice que se crea el método "main" del tipo "public" y "static" y "void" que indica que no devuelve algún valor.
las siguientes lineas sirven para crear la ventana donde se desplegara nuestro programa.
También en la linea 14 hay un "}" que sirve para cerrar la instrucción del método main.
Tenemos de la linea 16 a 21 otro grupo de instrucciones las cuales no ayudan a crear la interfaz gráfica del usuario.
Al final se cierran los corchetes de la interfaz y de la clase.


Bueno ya que tenemos el código debemos compilarlo, para eso me voy al símbolo del sistema:



Primero debemos llegar al lugar donde tengamos el archivo, recuerden que se debe guardar el código con la extensión ".java".
Después tecleamos "javac Saludo.java"
Si no exite ningun error de compilación deberá mostrarse asi:


Ahora vamos a ejecutarlo, para eso tecleamos "java Saludo", una vez que se compila un archivo se crea otro pero con la extensión ".class"

Y debe aparecer asi:



Si funciono correctamente debe mostrar la ventana con el cuadro de texto que dice Hola!!.

Si pudieron completarlo felicidades!! han creado una clase!! :)
Si no es casi seguro que tuvieron algún error al momento de teclear el programa, deben revisar que el código sea igual y recuerden que el archivo debe llamarse como la clase porque si no este no funcionará.

Es recomendable practicar los programas para mejorar nuestra habilidad al programar.

miércoles, 31 de agosto de 2011

Instalando herramientas de trabajo

Hola a todos, esta es mi primera entrada, en la cual muestro la instalación de las herramientas que utilizaré.

En mi caso debo instalar Java en mi PC, ya que es en el lenguaje en el que quiero programar y utilizare el símbolo del sistema de Windows Vista.

Primero debemos descargar el Kit de herramientas de Java (JDK):
http://java.com/es/download/


Después de que termine de descargar el archivo debemos instalarlo:


Una vez que se termina la instalación estamos listos para comenzar a programar en Java.

Existen algunos tipos de software que facilitan la programación en Java, como por ejemplo Eclipse, ya que este nos presta mucha ayuda al momento de estar tecleando el código ya que nos va mostrando nuestros errores al momento de teclear el código en el editor de texto de eclipse.

También es un compilador, solo es necesario escribir el código y dar clic a un botón. Y podemos ejecutar el programa también desde eclipse con un solo clic(siempre y cuando el programa compile correctamente).


También podemos usar el editor de texto de Windows, o si usan Ubuntu usan "Emacs" que es muy popular entre los programadores y es parte del proyecto GNU.

Yo usare el editor de texto de Windows osea el Bloc de notas, para compilar cualquier código de Java vamos al símbolo del sistema:


y para compilar código en java tecleamos "javac nombre.java"
y para ejecutar tecleamos "java nombre"
y listo si no hay ningún error de compilación deberan poder visualizar su programa.