jueves, 21 de enero de 2016

Manual Java

MANUAL DE PROGRAMACIÓN DE JAVA
  
MENU DE OPCIONES:


 LA PROGRAMACIÓN ES ALGO MARAVILLOSO....SÍGUEME EN....
                                  

Concepto:

Java es un lenguaje concurrente, orientado a objetos, que fue diseñado para tener pocas dependencias, como este le fuera posible, así mismo, este ya fue creado con las librerías y documentación básica. Por lo cual el programador tiene solamente que programar nada más, así mismo este es un lenguaje estándar es decir, está hecho para que funcione tanto, en ordenadores normales, como en celulares y dispositivos generales.

Importancia

La programación de java es importante ya que es un lenguaje orientado a objetos, pues ya vienen con todas las librerías necesarias y las dependencias necesarias como dice  el concepto. También radica su importancia por la múltiples plataformas que soporta el mismo, pues puede ser instalado en cualquier dispositivo, ordenador e incluso aparatos electrónicos.

Sintaxis


   public class TablaMultiplicar{
                         public static void main(String arg[]){
                         }
         }
        

Modelo, Vista y Controlador

El modelo vista controlador funciona de la siguiente forma.

MODELO:

En esta va las clases constructoras y los diferentes get y set que servirán para poder guardar temporalmente la información.



VISTA:

Van las diferentes pantallas a programar simplemente se las llama del modelo y las conexiones se las llama desde el controlador.
CONTROLADOR

El controlador va las conexiones a base de datos que servirán para todo el programa.

Pasos para la realización de un sistema:




Analizar el ejercicio:


Análisis de Requerimientos

UML tiene casos de uso (use-cases) para capturar los requerimientos del cliente. A través del modelado de casos de uso, los actores externos que tienen interés en el sistema son modelados con la funcionalidad que ellos requieren del sistema (los casos de uso). Los actores y los casos de uso son modelados con relaciones y tienen asociaciones entre ellos o éstas son divididas en jerarquías. Los actores y casos de uso son descritos en un diagrama use-case. Cada use-case es descrito en texto y especifica los requerimientos del cliente: lo que él (o ella) espera del sistema sin considerar la funcionalidad que se implementará. Un análisis de requerimientos puede ser realizado también para procesos de negocios, no solamente para sistemas de software.

Análisis

La fase de análisis abarca las abstracciones primarias (clases y objetos) y mecanismos que están presentes en el dominio del problema. Las clases que se modelan son identificadas, con sus relaciones y descritas en un diagrama de clases. Las colaboraciones entre las clases para ejecutar los casos de uso también se consideran en esta fase a través de los modelos dinámicos en UML. Es importante notar que sólo se consideran clases que están en el dominio del problema (conceptos del mundo real) y todavía no se consideran clases que definen detalles y soluciones en el sistema de software, tales como clases para interfaces de usuario, bases de datos, comunicaciones, concurrencia, etc.

Diseño

En la fase de diseño, el resultado del análisis es expandido a una solución técnica. Se agregan nuevas clases que proveen de la infraestructura técnica: interfaces de usuario, manejo de bases de datos para almacenar objetos en una base de datos, comunicaciones con otros sistemas, etc. Las clases de dominio del problema del análisis son agregadas en esta fase. El diseño resulta en especificaciones detalladas para la fase de programación.

Programación

En esta fase las clases del diseño son convertidas a código en un lenguaje de programación orientado a objetos. Cuando se crean los modelos de análisis y diseño en UML, lo más aconsejable es trasladar mentalmente esos modelos a código.

Pruebas

Normalmente, un sistema es tratado en pruebas de unidades, pruebas de integración, pruebas de sistema, pruebas de aceptación, etc. Las pruebas de unidades se realizan a clases individuales o a un grupo de clases y son típicamente ejecutadas por el programador. Las pruebas de integración integran componentes y clases en orden para verificar que se ejecutan como se especificó. Las pruebas de sistema ven al sistema como una "caja negra" y validan que el sistema tenga la funcionalidad final que le usuario final espera. Las pruebas de aceptación conducidas por el cliente verifican que el sistema satisface los requerimientos y son similares a las pruebas de sistema.


Realizar la base de datos con Mysql.


Como ejemplo simplemente le adaptamos a la necesidad que se tenga:

create database mentor;
Crear la base de datos
use mentor;
Escoger la base de datos.
create table estudiante(
DNI_estudiante int not null,
nombres_completos varchar(60) not null,
telefono int not null,
correo_electronico varchar(50) not null,
nacionalidad varchar(40) not null,
PRIMARY KEY (DNI_estudiante));
Creando la primera tabla.
create table curso (
Id_curso int not null,
nombre_curso varchar(40) not null,
duracion time not null,
titulo_libro varchar(50) not null,
enlace_descarga varchar(100) not null,
PRIMARY KEY (Id_curso));
Creando la segunda tabla
create table matricula(
Cod_matricula int not null,
Id_curso int not null,
DNI_estudiante int not null,
PRIMARY KEY (Cod_matricula),
FOREIGN KEY (Id_curso) REFERENCES curso(Id_curso),
FOREIGN KEY (DNI_estudiante) REFERENCES estudiante(DNI_estudiante));
Creando la tercera tabla
create table aula(
Codigo int not null,
nombre varchar(30) not null,
direccion varchar (30) not null,
DNI_estudiante int not null,
DNI_administrador int not null,
FOREIGN KEY (DNI_estudiante) REFERENCES estudiante(DNI_estudiante),
FOREIGN KEY (DNI_administrador) REFERENCES administrador (DNI_administrador));
Creando la cuarta tabla
create table tutor (
DNI_tutor int not null,
nombres_completos varchar (60) not null,
correo_electronico varchar(60) not null,
direccion varchar (30) not null,
PRIMARY KEY (DNI_tutor));
Creando la tabla tutor
create table asocia(
DNI_tutor int not null,
ID_curso int not null,
FOREIGN KEY(DNI_tutor) REFERENCES tutor (DNI_tutor),
FOREIGN KEY(ID_curso) REFERENCES curso(ID_curso));
Creando la tabla que asocia las demás.

Crear un nuevo proyecto con NetsBeans.



Creamos un nuevo proyecto:


Le colocamos el nombre al proyecto:


Observamos las carpetas y paquetes:


Nos fijamos en los paquetes:


Creamos tres paquetes:


Creamos la clase:


Le colocamos el nombre a la clase Cls_Conexion


Creamos las vistas necesarias:


Le colocamos el nombre a la vista:


Empezar a diseñar:


Creamos una nueva clase es paquetes modelo:


Le colocamos el nombre para la clase constructora:


Crear tres paquetes: modelo, vista  y controlador

Crear modelo:


Crear Vista


Crear controlador


Dentro del paquete Controlador Crear la clase Cls_Conexion

package Controlador;

import java.sql.Connection;
import java.sql.DriverManager;

public class Cls_conexion {
    Connection conec = null;
   
    public Connection conexion (){
         try {
    Class.forName("com.mysql.jdbc.Driver");

     conec=DriverManager.getConnection("jdbc:mysql://localhost/Institucion","root","root");
   
    
    } catch (Exception e) {
        System.out.print(e.getMessage());
    }

    return conec;
}

   
}
Paquete controlador

Importaciones
Clase publica
Palabra reservada.
Clase conexión interna.

Abrimos el Try…Catch…
La clase Class.forName


Las conexiones a la base de datos.


Excepción si falla.


NOTA: Ver bien las llaves que abren y cierran.

Dentro del paquete modelo crear la clase Cls_clase, con sus respectivas clases constructoras, el get y el set.


package Modelo;

public class Cls_Estudiante {
    public String Nombre; // variable Nombre
    public String Apellido;
    public String Direccion;
    public String Telefono;
   


    public void Cls_Estudiante(){}

    public Cls_Estudiante(String Nombre, String Apellido, String
Direccion, String Telefono) {

        this.Nombre = Nombre;
        this.Apellido = Apellido;
        this.Direccion = Direccion;
        this.Telefono = Telefono;
    }

    public String getNombre() {
        return Nombre;
    }
    public String getApellido() {
        return Apellido;
    }
    public String getDireccion() {
        return Direccion;
    }
    public String getTelefono() {
        return Telefono;
    }
    public void setNombre(String Nombre) {
        this.Nombre = Nombre;
    }
    public void setApellido(String Apellido) {
        this.Apellido = Apellido;
    }
    public void setDireccion(String Direccion) {
        this.Direccion = Direccion;
    }
    public void setTelefono(String Telefono) {
        this.Telefono = Telefono;
    }
}
Paquete modelo.
Clase pública
Variable pública 1
Variable pública 2
Variable pública 3
Variable pública 4
Poner las variables que usted necesite.
Clase constructora, posteriormente se la puede usar.
Clase publica constructora con las variables públicas ya creadas.
Las diferentes variables para listar los métodos get y set.


Método get
Método get
Método get
Método get
Método set
Método set
Método set
Método set

En el paquete Vistas crear las vistas que sean necesarias, es decir lo que va ver el cliente.


Dentro de este paquete podemos botones y clases varias, he aquí algunos códigos.


Función botón nuevo:


En este botón vamos a limpiar es igual que nuevo el código generado.
Btn_guardar.setText("Guardar");
        txt_id.setText(null);
        nombre.setText(null);
        apellido.setText(null);
        direccion.setText(null);
        telefono.setText(null);
        Btn_guardar.setEnabled(true);
        Actualizar.setEnabled(false);

Función botón guardar:



// TODO add your handling code here:
        // BOTON DE GUARDAR
        int op = JOptionPane.showConfirmDialog(this, "Desea guardar en la base de datos");
        if(op ==  JOptionPane.YES_OPTION){
            try {
                PreparedStatement pst=(PreparedStatement ) cn.prepareStatement("Insert into Tb_Estudiante(Nombre, Apellido, Direccion, Telefono)values(?,?,?,?)");
                pst.setString(1, nombre.getText());
                pst.setString(2, apellido.getText());
                pst.setString(3, direccion.getText());
                pst.setString(4, telefono.getText());
                pst.executeUpdate();
                JOptionPane.showMessageDialog(this, "Usted  ha guardado los datos");
                Btn_guardar.setText("Guardado");
                Actualizar.setEnabled(true);
                Btn_guardar.setEnabled(false);
            } catch (Exception e) {
            }
           
        }else {
            JOptionPane.showMessageDialog(this, "Usted no ha guardado los datos");
            Btn_guardar.setText("Interrumpido"); // cambiar el texto del boton
            Actualizar.setEnabled(true);
           
        }

Función botón eliminar:


boolean a = true;
        int fila = tabla.getSelectedRow();
        String cod = "";
        cod = tabla.getValueAt(fila, 0).toString();
        try {
            PreparedStatement pst = (PreparedStatement) cn.prepareStatement("Delete from usuarios where id='" + cod + "'");
            pst.executeUpdate();
            mostrardatos("");
        } catch (Exception e) {
        }

Función botón actualizar:


mostrardatos("");

Ejemplo de hacer un registro con archivo persistente:

package Unidad2;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.FileAlreadyExistsException;
import java.util.InputMismatchException;
import java.util.Scanner;
import javax.swing.JOptionPane;

/**
 *
 * @author DAVID GONZALEZ
 */

public class Cls_Resumen {
    public static void main(String[] args) {
        try {
            int ox=Integer.parseInt(JOptionPane.showInputDialog("BIENVENIDOS AL SISTEMA CCC \n Qué deseas hacer....? \n 1 registrar \n 2 Consultar \n 3  Salir"));
            if (ox==1){
                Cls_Resumen Cr= new Cls_Resumen();
                Cr.creararchivos();
            }if (ox==2){
                Cls_Resumen Cr1 = new Cls_Resumen();
                Cr1.leerdatos();
           
            }if (ox==3){
               
           int ax= JOptionPane.showConfirmDialog(null, "Esta seguro de guardar los datos: ");
               
           if(ax==JOptionPane.YES_OPTION){
               System.exit(0);
          
        }else{
            // do while
        }  
               
              
              
            }
            // clase principal utilizar try cath
           
               
               
            
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Aquí esta un error"+ e);
        } catch(Exception ex){
            JOptionPane.showMessageDialog(null,"Se genero un error"+ ex);}
       

   
       
        
  
  
}

    public int cedula1;
    public String strNom;
    public void creararchivos() throws IOException{
        // Aqui solo se utiliza el throws IOException

        Cls_Resumen Cr= new Cls_Resumen();// paara que se lea y se acumule
        Cr.leerdatos();
       
        //int cedula1= Integer.parseInt(JOptionPane.showInputDialog("Ingrese Cedula: "));
        //System.out.println("Este dato esta regsitrado"+cedula1); // si trae los datos
       
      
     
       
        File archivo= new File("resumen.odt");
        PrintWriter escribir =new PrintWriter(new BufferedWriter(new FileWriter(archivo,true)));   
        int ax= JOptionPane.showConfirmDialog(null, "Esta seguro de guardar los datos: ");
        if(ax==JOptionPane.YES_OPTION){
            String salida= String.format("%s, %d", strNom, cedula1);
            escribir.println(salida);
            escribir.close();
        }else{
            JOptionPane.showMessageDialog(null, "No ha guardado los datos");
        }       
    }
    public Scanner entrada;
    public String Nom;
    public int cedula;
    public void leerdatos() throws FileNotFoundException,InputMismatchException{
        entrada=new Scanner(new File("resumen.odt"));
         strNom= JOptionPane.showInputDialog("Ingrese el Nombre: ");
        cedula1= Integer.parseInt(JOptionPane.showInputDialog("Ingrese Cedula: "));
        while(entrada.hasNext()){
            strNom=entrada.next();
            cedula=entrada.nextInt();
           
            if(cedula1==cedula){
               System.out.printf("%s %d", Nom,cedula);
               JOptionPane.showMessageDialog(null, "El regsitro ya existe");
            }
            System.out.printf("%s %d", Nom,cedula);
           
        }
        entrada.close();
        
       
    }
    public void salir() throws IOException{
      
    }
}

Crear archivo persistente:

public static void main(String [] args){
        Scanner lector = new Scanner(System.in);
        System.out.print("Ingrese un nombre ");
        String srtNombre=lector.next();
        System.out.print("Ingrese edad ");
        int intEdad=lector.nextInt();
        //Codigo para crear archivos
        File Archivo=new File("Practica2.odt");
       try {
            PrintWriter escribir=new PrintWriter(new BufferedWriter(new FileWriter(Archivo, true)));
            String salida=String.format("%s %d",srtNombre,intEdad);
            escribir.println(salida);
            escribir.close();
           
        } catch (Exception e) {
            System.out.printf("error......"+e);
        }
      
    }

Función botón editar con popmenu:


Para elegir que se va editar:
int fila = tabla.getSelectedRow();
        if (fila >= 0) {
            txt_id.setText((String) tabla.getValueAt(fila, 0).toString());
            txt_nombre.setText((String) tabla.getValueAt(fila, 1).toString());
            txt_apellido.setText((String) tabla.getValueAt(fila, 2).toString());
            txt_cedula.setText((String) tabla.getValueAt(fila, 3).toString());
            txt_sexo.setText((String) tabla.getValueAt(fila, 4).toString());
            txt_edad.setText((String) tabla.getValueAt(fila, 5).toString());

            txt_profesion.setText((String) tabla.getValueAt(fila, 6).toString());
            txt_direccion.setText((String) tabla.getValueAt(fila, 7).toString());
            txt_telefono.setText((String) tabla.getValueAt(fila, 8).toString());
            comboo.setSelectedItem((String) tabla.getValueAt(fila, 9).toString());
            //txt_tipo.setText((String) tabla.getValueAt(fila, 9).toString());

        } else {
            JOptionPane.showMessageDialog(null, "No selecciono ningun dato");

        }

Función botón editar:


comboo.getSelectedItem().toString();
        if (comboo.equals("activo")){
            int op=JOptionPane.showConfirmDialog(null,"Desea borrar logicamente el dato");
            if (op==JOptionPane.YES_OPTION){
                try {
                    PreparedStatement pst = (PreparedStatement) cn.prepareStatement(""
                            + "UPDATE usuarios SET nombre='" + txt_nombre.getText() +
                            "',apellido='" + txt_apellido.getText() +
                            "',cedula='" + txt_cedula.getText()+
                            "',sexo='" + txt_sexo.getText() +
                            "',edad='" + txt_edad.getText() +
                            "',profesion='" + txt_profesion.getText() +
                            "',direccion='" + txt_direccion.getText() +
                            "',telefono='" + txt_telefono.getText() +
                            "',tipo='" + comboo.getSelectedItem()+
                            "' Where id='" + txt_id.getText()+"'");
                    pst.executeUpdate();
                    JOptionPane.showMessageDialog(null, "Datos guardados correctamente");
                    mostrardatos("");                                  
                } catch (SQLException ex) {}}}
           else {
                try {
                        PreparedStatement pst = (PreparedStatement) cn.prepareStatement(""
                                + "UPDATE usuarios SET nombre='" + txt_nombre.getText() +
                                "',apellido='" + txt_apellido.getText() +
                                "',cedula='" + txt_cedula.getText()+
                                "',sexo='" + txt_sexo.getText() +
                                "',edad='" + txt_edad.getText() +
                                "',profesion='" + txt_profesion.getText() +
                                "',direccion='" + txt_direccion.getText() +
                                "',telefono='" + txt_telefono.getText() +
                                "',tipo='" + comboo.getSelectedItem()+
                                "' Where id='" + txt_id.getText()+"'");
                        pst.executeUpdate();
                        mostrardatos("");                                  
                    } catch (SQLException ex) {}}

Clase actualizar o mostrar datos:

void mostrardatos(String valor) {
        DefaultTableModel modelo = new DefaultTableModel();

        modelo.addColumn("id");
        modelo.addColumn("nombre");
        modelo.addColumn("apellido");
        modelo.addColumn("cedula");
        modelo.addColumn("sexo");
        modelo.addColumn("edad");
        modelo.addColumn("profesion");
        modelo.addColumn("direccion");
        modelo.addColumn("Telefono");
        modelo.addColumn("Tipo");

        tabla.setModel(modelo);
        String sql = "";
        if (valor.equals("")) {
            sql = "Select * from usuarios";

        } else {
            sql = "Select * from usuarios Where id = " + "'" + valor + "'";

        }

        String[] datos = new String[10];
        try {
            Statement st = (Statement) cn.createStatement();
            ResultSet rs = st.executeQuery(sql);

            while (rs.next()) {
                datos[0] = rs.getString(1);
                datos[1] = rs.getString(2);
                datos[2] = rs.getString(3);
                datos[3] = rs.getString(4);
                datos[4] = rs.getString(5);
                datos[5] = rs.getString(6);
                datos[6] = rs.getString(7);
                datos[7] = rs.getString(8);
                datos[8] = rs.getString(9);
                datos[9] = rs.getString(10);

                modelo.addRow(datos);
            }
            tabla.setModel(modelo);
        } catch (Exception e) {

        }
    }

Leer archivo persistente:

public Scanner entrada;
 public void leerArchivo(){
     try {
         entrada=new Scanner(new File("Practica2.odt"));
         while(entrada.hasNext()){
             String srtNombre=entrada.next();
             int intEdad=entrada.nextInt();
             System.out.printf("%s %d", srtNombre, intEdad);
            
         }
         entrada.close();
     } catch (Exception e) {
     }
}
}

Enviar correo electrónico:

1.       Descargra la librería Java.mail:
Realizar el siguiente código en el paquete email:

package Email;

import com.sun.xml.internal.org.jvnet.mimepull.MIMEMessage;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;

import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.swing.JOptionPane;

public class Cls_Email {
    String usuarioCorreo;
    String password;
    String rutaArchivos;
    String nombreArchivo;
    String destinatario;
    String asunto;
    String mensaje;

    public Cls_Email(String usuarioCorreo, String password, String rutaArchivos, String nombreArchivo, String destinatario, String asunto, String mensaje) {
        this.usuarioCorreo = usuarioCorreo;
        this.password = password;
        this.rutaArchivos = rutaArchivos;
        this.nombreArchivo = nombreArchivo;
        this.destinatario = destinatario;
        this.asunto = asunto;
        this.mensaje = mensaje;
    }
     public Cls_Email(String usuarioCorreo, String password, String destinatario, String mensaje) {
         this(usuarioCorreo, password,"","", destinatario,"", mensaje);
        
     }
      public Cls_Email(String usuarioCorreo, String password, String destinatario, String asunto, String mensaje) {
         this(usuarioCorreo, password,"","", destinatario,asunto,mensaje);
        
     }
     
      public boolean sendEmail(){
          try {
              Properties props = new Properties();
              props.put("mail.smtp.host","smtp.gmail.com");
              props.setProperty("mail.smtp.starttls.enable", "true");
              props.setProperty("mail.smtp.port","587");
              props.setProperty("mail.smtp.user",usuarioCorreo);
              props.setProperty("mail.smtp.auch","true");
              Session session= Session.getDefaultInstance(props,null);
              BodyPart texto= new MimeBodyPart();
              texto.setText(mensaje);
              BodyPart adjunto = new MimeBodyPart();
              if(!rutaArchivos.equals("")){
                  adjunto.setDataHandler(new DataHandler(new FileDataSource(rutaArchivos)));
                  adjunto.setFileName(nombreArchivo);
              }
             MimeMultipart multipart = new MimeMultipart();
              multipart.addBodyPart(texto);
              if(!rutaArchivos.equals("")){
                  multipart.addBodyPart(adjunto);
                 
              }
              MimeMessage message = new MimeMessage(session);
              message.setFrom(new InternetAddress(usuarioCorreo));
              message.addRecipient(Message.RecipientType.TO, new InternetAddress(destinatario));
              message.setSubject(asunto);
              message.setContent(multipart);
              Transport t= session.getTransport("smtp");
              t.connect(usuarioCorreo,password);
              t.sendMessage(message, message.getAllRecipients());
              t.close();
              return true;
             
             
          } catch (Exception e) {
              e.printStackTrace();
              return false;
          }
         
     
     
         
      }
     public static void main(String[]  args){
         String clave= "";// se coloca la clave qde gmail que la descargamis de la configuracion que se hizo en gmail
         Cls_Email e = new Cls_Email("davidgabrielgonzalezgalvez@gmail.com", clave, "luistillaguango@yahoo.com", "prueba de correo");
         if(e.sendEmail()){
             JOptionPane.showMessageDialog(null, "Se envio correctamente");
            
         }else{
             JOptionPane.showMessageDialog(null, "No se nevio correctamente");
         }
     } 
  
}

Botón salir



int op = JOptionPane.showConfirmDialog(this, "Desea salir");
        if(op ==  JOptionPane.YES_OPTION){
            dispose();
        }
       
    }     

Creando Reportes:

1.       Primero damos clik en el proyecto y nos vamos en nuevo y seleccionamos Report Wizard.

2. Luego seleccionamos el molde del reporte en este caso un Simple Blue y damos siguiente


3. Damos clik en new luego seleccionamos Database JDBC connection y siguiente.

4.  Llenamos los datos en el nombre es opcional en el server ponemos localhost y en database el nombre de nuestra base de     datos en este caso institución2, el usuario y la contraseña depende de cómo está instalado su MySql en su pc.

5. Nos aparece una ventana damos clic en Desing query luego nos aparece una ventana con las tablas de nuestra base de datos arrastramos al espacio de la derecha y damos ok.

6. En esta ventana aparecen todos los campos de nuestra tabla seleccionamos todos y los pasamos a la derecha usando las   fechas que se nos presentan en la mitad de nuestra ventana y damos siguiente y en los siguientes pasos solo damos siguiente y finalizamos.

7. Una ves finalizado nos queda el reporte damos clic en el botón Preview y nos saldrán los datos guardados en nuestra tabla de la base de datos.

8. Ahora nos dirigimos a nuestro programa y dentro del botón mostrara reporte agregamos el siguiente código el recuadro de celeste nos indica que debemos poner el nombre de nuestro reporte en este caso report1.jrxml.

9. Ahora ejecutamos nuestro programa y damos clic en el botón de reporte y nos aparece todos los datos que tenemos guardados dentro de un reporte.



Verificar que no exista errores: (Recomendaciones)

 -Ver si están instalados bien las librerías.
-Ver las conexiones a base de datos estén correctas.
-Verificar la sintaxis a cada momento.
-Realizar el análisis, rápido para un simple prototipo.
-Realizar correctamente cada botón.
-Programar con tranquilidad, no apurarse.
-Verificar las líneas de conexiones a tablas en la base de datos (Mysql).


BIBLIOTECA DE EJERCICIOS PARA QUE SE AYUDEN

NOTA:   Estos ejemplos son con fines educativos. No afecta a ningún derecho de autor. Son con licencia GNU.
Ejemplo de un mini-sistema
 Para matriculación y registro














AUTOR DEL MANUAL: David Gabriel González Gálvez & Robert Castillo
LICENCIA:




Share:

0 comentarios:

Publicar un comentario

Visitas

Blogroll

Recent Posts

Unordered List

Theme Support