martes, 10 de diciembre de 2013

MODULO 4:   BASE DE DATOS CON JDBC
REQUERIMIENTOS  FUNCIONALES  DE  LA  BASE  DE  DATOS 
COLEGIO
Se requiere una Base de Datos, de  La Escuela Preparatoria, para llevar a cabo la Organización de Información de los Estudiantes  y   Profesores.
REQUERIMIENTOS:
1.- Se necesita formar grupos UNICOS con diferente Asignatura, grupo, día, horario y Profesor Titular.
Con la Tabla: GRUPO
2.- Un profesor puede dar clase en diferentes grupos.
3.- Los Alumnos solo se registran una vez y el Sistema les asigna el grupo al cual pertenece.
4.- Se genera una Lista de Grupo por cada Asignatura.
5.- Cualquier Alumno puede tomar una Asignatura ó más.
6.- Cada Profesor se registra en el  Sistema y registra su contraseña.
7.- Cada Profesor solo puede ingresar a sus grupos de clase para ingresar calificaciones.

8.- El Sistema  puede  indicarnos;  el cupo máximo de cada grupo y cuando ya un grupo se lleno.
PARA LLEVAR ACABO LOS REQUERIMIENTOS SE PROPUSO LO SIGUIENTE:
1.-  Se Elaboraron las siguientes tablas:
Nombre de la Tabla:   ASIGNATURA ( id_asignatura, nombre_asig, grado   y cupo_máximo )
 Nombre de la Tabla:   NUM_GRUPO (  id_grupo,  grupo )
Nombre de la Tabla:   HORARIO ( id_horario, hora )
Nombre de la Tabla:   DIA (  id_dia, dia )
Nombre de la Tabla:   ALUMNO (  id_alumno, nombre_alumno, ap_paterno, ap_materno, matricula, status )
Nombre de la Tabla:   GRUPO ( id_formagrupo, id_asig, id_gpo, id_hor, id_day, id_prof  )
Nombre de la Tabla:   LISTA_GRUPO (  id_lista, id_alu, id_forgpo, calificación_1, calificación_2, num_inasistencias)
Nombre de la Tabla:  
USUARIO_PROFESOR ( id_profesor, nombre_prof, ap_paterno_prof, ap_materno_prof, password )
Nombre de la Tabla:   USUARIO_ESCUELA ( id_admin, nom_admin, password )
Con la siguiente multiplicidad, de acuerdo con el diagrama:
DIAGRAMA: Se presenta el Diseño de la Base de Datos Definitiva

Nombre de Base de Datos: COLEGIO

En base a esta BASE DE DATOS, se realizaron las clases de Borrar, Consultar y dar de Alta a un ALUMNO.
Las Tablas se Ingresaron datos desde consola:
INSERT INTO ALUMNO (nombre_alumno, ap_paterno, ap_materno, matricula, status)
VALUES ('Ignacio','Gonzalez','Millan','101011','INSCRITO'),
       ('Ana','Martinez','Garcia','202020','INSCRITO'),
       ('Victor','Garcia','Gonzalez','303030','INSCRITO'),……

Y también para la Tabla ASIGNATURA:



Para la tabla: GRUPO:


Se crearon las Clases para  ALTA de ALUMNO, BAJA de ALUMNO, MOSTRAR   ALUMNO ACTUALIZADO:
La Clase principal:
package com.siscolegio.escuela.view.console;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import com.siscolegio.escuela.modelo.Alumno;
import com.siscolegio.escuela.servicio.AlumnoServicio;
import com.siscolegio.escuela.servicio.AlumnoServicioImpl;
public class FormaAlumnoCrear {
       public static void main(String[] args) {
             // TODO Auto-generated method stub            
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("Bienvenido al Sistema de Colegio");
System.out.println("Forma de Registro Alumno");
System.out.println("Escribe el nombre del Alumno");
try{
       String nombreAlumno = br.readLine();//br contiene lo del buffer
       //Alumno alumno = new Alumno(); //alumno es un Objeto tipo Alumno
       System.out.println("Escribe el Apellido Paterno");
       String apellidoPaterno = br.readLine();
       System.out.println("Escribe el Apellido Materno");
       String apellidoMaterno = br.readLine();
       System.out.println("Escribe el numero de matricula");
       String numMatricula = br.readLine();
       System.out.println("Escriba La condicion del Alumno INSCRITO /BAJA");
       String nomStatus = br.readLine();
       Alumno alumno= new Alumno();//se crea alumno
       alumno.setNombrealumno(nombreAlumno);//se envia el valor de la variable nombrealumno
                                            //al campo Nombrealumno del objeto creado alumno
       alumno.setAppaterno(apellidoPaterno);
       alumno.setApmaterno(apellidoMaterno);
       alumno.setMatricula(numMatricula);
       alumno.setStatus(nomStatus);
       //alumno.setNombrealumno(nombreAlumno); //nombreAlumno es un objeto String y lo envia al campo NombreAlumno
           AlumnoServicio alumnoServicio = new AlumnoServicioImpl(); //
           alumnoServicio.crearAlumno(alumno);//el objeto alumnoServicio invoca al metodo crearAlumno para
                                              //pasarle de argumento el nuevo alumno formado
           System.out.println("Alumno: "+nombreAlumno+"  creado exitosamente");
}catch (IOException e){
       e.printStackTrace();
       System.out.println("Nombre de Alumno no valido");
}//Fin de catch
       }//FIN de main
}//FIN formaAlumnoCrear
Aquí se presentan las capas de:
DAO tienen las interfaces para conectarse a la base de datos Local COLEGIO
MODELO tienen las Clases de las entidades
SERVICIO Aquí están los métodos de Alumno y Asignatura Crear, Borrar, Actualizar
VISTA Aquí está la implementación de los métodos respectivos de CrearAlumno, CrearAsigantura, BorrarAlumno, BorrarAsignatura, ActualizarAlumno, ActualizarAsigantura.



package com.siscolegio.escuela.view.console;
import java.util.Collection;
import com.siscolegio.escuela.modelo.Alumno;
import com.siscolegio.escuela.servicio.AlumnoServicio;
import com.siscolegio.escuela.servicio.AlumnoServicioImpl;
public class FormaAlumnoConsultar {
public static void main(String[] args) {
System.out.println("Bienvenido al Sistema de Colegio");
       System.out.println("Forma de Alumnos Existentes");
       System.out.println("Lista de Alumnos");
                                        AlumnoServicio alumnoServicio = new AlumnoServicioImpl();
                                        Collection<Alumno> alumnos = alumnoServicio.consultarTodosAlumnos();
                                        //se crea un objeto tipo colection alumnos para aplicarle el metodo consultarTodosAlumnos
                                        //y poder imprimirlos en pantalla con un for
       //****************************************
                           for(Alumno alumno: alumnos){
System.out.println("Id_alumno: "+ alumno.getIdAlumno()+"  \n  Nombre_alu: "+alumno.getNombrealumno()+
             "   *Apellido Paterno: "+ alumno.getAppaterno()+"  *Apellido materno: "+ alumno.getApmaterno()+
             "   *Matricula: "+alumno.getMatricula()+" Status: "+  alumno.getStatus());
       }//FIN de for
}//FIN de main

}// FIN de Class FormaAlumnoConsultar

package com.siscolegio.escuela.view.console;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collection;
import com.siscolegio.escuela.modelo.Alumno;
import com.siscolegio.escuela.servicio.AlumnoServicio;
import com.siscolegio.escuela.servicio.AlumnoServicioImpl;
public class FormaAlumnoBorrar { 
public static void main(String[] args) {
       InputStreamReader isr = new InputStreamReader(System.in);
       BufferedReader br = new BufferedReader(isr);
       System.out.println("Bienvenido al Sistema  Colegio");
       System.out.println("Forma de Registro Alumno");
       System.out.println("Alumnos EXISTENTES");
       try{
AlumnoServicio alumnoServicio = new AlumnoServicioImpl();
Collection<Alumno> alumnos = alumnoServicio.consultarTodosAlumnos();//se invoca al metodo consultarTodosALUMNOS
for(Alumno alumno: alumnos)//Recorre a alumnos y presenta a cada objeto Alumno, los va imprimiendo uno por uno
{System.out.println("Id Alumno: "+alumno.getIdAlumno()+"nombre Aluumno: "+alumno.getNombrealumno()
             +"Apellido Paterno: "+alumno.getAppaterno()+"Apellido Materno: "+alumno.getApmaterno()
             +"matricula numero: "+alumno.getMatricula()+"Status: "+alumno.getStatus());    }
 System.out.println("Escriba el numero del id del Alumno que desea Borrar");
 Integer idAlumno = Integer.valueOf(br.readLine());//se realizo un parser de lo leido en linea y lo convierte a Integer
 Alumno alumno = new Alumno();//se crea un objeto Alumno llamado alumno
 alumno.setIdAlumno(idAlumno);//a este alumno se le envia el valor de id_alumno quye queremos borrar
 alumnoServicio.borrarAlumno(alumno);//este alumno con este id_alumno se envia al metodo borrarAlumno
 System.out.println("Alumno: "+alumno+"  borrado exitosamente ");
 }catch (IOException e){
       e.printStackTrace();
       System.out.println("El valor de id no es valido");
       }//FIN de catch
}//FIN de main
}//FIN de FormaAlumnoBorrar 

********    CLASES PARA TABLA CATALOGO ASIGNATURA   ********
package com.siscolegio.escuela.view.console;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import com.siscolegio.escuela.modelo.Asignatura;
import com.siscolegio.escuela.servicio.AsignaturaServicio;
import com.siscolegio.escuela.servicio.AsignaturaServicioImpl;
public class FormaAsignaturaCrear {
       public static void main(String[] args) {
             InputStreamReader isr = new InputStreamReader(System.in);
             BufferedReader br = new BufferedReader(isr);
             System.out.println("Bienvenido al Sistema de Colegio");
             System.out.println("Forma para Registrar Asignaturas");
             System.out.println("Escribe el nombre de la Asignatura");         
             try{
                    String nombreAsignatura = br.readLine();//br contiene lo del buffer
                    System.out.println("Escribe el Año de esta Asignatura");
                    String grados = br.readLine();  //
                    System.out.println("Escribe el Cupo Maximo");
                    String cupomax = br.readLine();
                    Asignatura asignatura= new Asignatura();
                    asignatura.setNombreasig(nombreAsignatura);//
                    asignatura.setGrade(grados);
                    asignatura.setCupomaximo(cupomax);                   
                        AsignaturaServicio asignaturaServicio = new AsignaturaServicioImpl();
                        asignaturaServicio.crearAsignatura(asignatura);
                        System.out.println("Asignatura: "+nombreAsignatura+"  creada exitosamente");
             }catch (IOException e){
                    e.printStackTrace();
                    System.out.println("Nombre de Asignatura no valida");
             }//FIN catch                           
       }//FIN de main

}//FIN CLASE

CLASES PARA TABLA CATALOGO ASIGNATURA






En el avance de la plataforma se entrego con las clases y las imágenes.

miércoles, 25 de septiembre de 2013

MODULO 3 APLICACIONES DE ESCRITORIO

Para el Modulo 3, Aplicaciones de Escritorio se elaboró lo siguiente:
En el paquete:  programasmodulotres
Se elaboró un programa que despliega una ventana de un menú  general llamado:
FormaGeneral.java
Que despliega un menú y podemos acceder a:
FormaDarAltaAlumno.java  y
FormaDarBajaAlumno.java
que se registra en una  LISTA LIGADA.
Se elaboraron  otras ventanas:
Se pretende perfeccionar la ventana de UsuarioProfesor  agregándole una contraseña
y se le coloco un reloj. 

Se Elaboraron unas clases que corresponden a la NUEVA Base De Datos PROPUESTA PARA el  proyecto SISCOLEGIO
Las cuales son:
Alumno.java
Asignatura.java
Materias.java
Profesor.java

Por otro lado se pretende presentar los Datos de una consulta por medio de una JTable
Que la despliega un JMenuItem Como la mostrada en la Clase;
Paquete:   pruebaspracticafinal 
PruebaDos.java 
ComparadorMatricula.java 
Alumno.java
Por otro lado se elaboró las clases:
En el paquete programasblock:
ComparadorMatriculaEstudiante.java 
Estudiante.java
ReporteEstudiantes.java 

Los archivos fueron enviados a la plataforma moodle
Se presenta a continuación algunas imágenes de los programas anteriores.
Formulario General  y Despliegue de Ventanas 
para Dar De Alta y Baja Alumno


Forma Dar Alta Alumno



Se puede ordenar por Matricula y por Apellido Paterno


Forma para presentar una Lista de Alumnos


Captura del Formulario Usuario Profesor