Certamen 2 DAI4501 [PHP/SESSION/JAVASCRIPT/CAPAS]
Acá dejo el último certamen de Desarrollo de Aplicaciones para Internet (DAI4501) de la profesora Yasna Meza
Enunciado:
SUELDO = NÚMERO HORAS * VALOR HORA
Codigo de Fuente:
http://estebanfuentealba.net/archive/Certamen2-DAI-Esteban-Fuentealba.rar
Saludos!
Java Validar Formularios
Aca les dejo una clase que hice para validar si los Formularios están vacios
import java.awt.*;
import javax.swing.*;
public class EFValidacion {
public static final int INTEGER=0;
public static final int BYTE=1;
public static final int LONG=2;
public static final int DOUBLE=3;
public static boolean isVacioForm(Component[] cs) {
for(Component c : cs) {
if(c instanceof JTextField) {
if(((JTextField)c).isEnabled())
if(((JTextField)c).getText().length()<1) return true;
} else if(c instanceof JComboBox) {
if(((JComboBox)c).getSelectedIndex() == 0) return true;
} else if(c instanceof JPanel) {
if(isVacioForm(((JPanel)c).getComponents())) return true;
}
}
return false;
}
public static boolean is(String v,int w) {
try {
switch(w) {
case 0: Integer.parseInt(v); break;
case 1: Byte.parseByte(v); break;
case 2: Long.parseLong(v); break;
case 3: Double.parseDouble(v); break;
}
return true;
} catch(Exception e) {}
return false;
}
}
Forma de Uso:
if(EFValidacion.isVacioForm(getContentPane().getComponents())){
JOptionPane.showMessageDialog(null,"Existen campos vacios");
return;
}else {
//...
}
NOTA: Los JCombobox deben tener en la primera posición la descripción y luego los valores
Ejemplo:

Para usar el metodo is es necesario un String y el tipo de dato que se quiere comprobar,
Ejemplo:
if(!EFValidacion.is("CACA",EFValidacion.INTEGER)) {
System.out.println("No es Numero");
}
Espero que les sirva,
Saludos!
Java Recorrer Colecciones [ Map ] usando for/while Parte 2
En el Post Anterior Mostre tres formas de recorrer una Collection ahora dejo como recorrer un Map.
En si un Map tiene una Clave y un Valor, por eso es un poco mas complicado recorrerlo
Iterator
Primero Mostrare como recorrer con Iterator
Iterator it = mapList.entrySet().iterator();
while(it.hasNext()) {
Map.Entry ent = (Map.Entry)it.next();
Persona p = (Persona)ent.getValue();
System.out.println(p);
}
Lo diferente esta en el Map.Entry , esto me permitirá acceder a la key y al value. (Recordemos que el value es el objeto completo).
Simple For
En si, Map no tiene un indice numérico por defecto, como si lo tienen los List, es por eso que para recorrer un Map usando for NO se podrá decir “quiero el objeto en la posición x” pero hay una forma de poder hacerlo, esta forma es convertir el map en array (arreglo) , Esto lo muestro a continuación
for(int i=0; i<mapList.size(); i++) {
System.out.println(mapList.values().toArray()[i]);
}
Del Map tome todos los valores con el metodo values() esto em devuelve un Set, como no tiene un indice lo convierto a Array y de ese array saco el objeto en la posición “i”
Foreach
:
Por ultimo dejo el foreach
for(Persona p : mapList.values()) {
System.out.println(p);
}
La forma mas sencilla de recorrer un Map…
Acá les dejo el codigo con las tres formas de Recorrer
/**
* @(#)Persona.java
*
*
* @author Esteban Fuentealba
* @version 1.00 2009/11/29
*/
import java.util.*;
public class Persona {
private String rut;
private String nombre;
public Persona() {}
public Persona(String rut,String nombre) {
this.rut = rut;
this.nombre = nombre;
}
public void setRut(String val) {
this.rut = val;
}
public void setNombre(String val) {
this.nombre = val;
}
public String getRut() {
return this.rut;
}
public String getNombre() {
return this.nombre;
}
public String toString() {
return "[Rut: "+this.getRut()+"] [Nombre: "+this.getNombre()+"]";
}
public static void main(String[] args) {
Map<String,Persona> mapList = new HashMap<String,Persona>();
Persona pA = new Persona("111-1","Juan");
Persona pB = new Persona("222-2","Pedro");
Persona pC = new Persona("333-3","Luis");
mapList.put(pA.getRut(),pA);
mapList.put(pB.getRut(),pB);
mapList.put(pC.getRut(),pC);
System.out.println("Recorrer Map con Iterator:");
Iterator it = mapList.entrySet().iterator();
while(it.hasNext()) {
Map.Entry ent = (Map.Entry)it.next();
Persona p = (Persona)ent.getValue();
System.out.println(p);
}
System.out.println("Recorrer Map con simple for:");
for(int i=0; i<mapList.size(); i++) {
System.out.println(mapList.values().toArray()[i]);
}
System.out.println("Recorrer Map con foreach:");
for(Persona p : mapList.values()) {
System.out.println(p);
}
}
}
Espero que les sirva,
Saludos!
Preparando Certamen 3 – Ejercicio 2 [POO - Java] PEF2501
Otro Ejercicio de Java para practicar para el cetamen 3 de Programación Orientada a Objetos… Solo Tienen que hacer lo que les piden… Si no piden main y no piden testear la aplicación no lo hagan (Si les sobra tiempo pueden hacerlo).
Enunciado:
- Constructor sin parámetros
- Constructor con parámetros (que reciba todos los atributos, obviando los alumnos, que deben ser ingresados posteriormente)
- Accesador para cada atributo
- Mutador para cada atributo
- Método de impresión
- Método addAlumno (que reciba un objeto del tipo Alumno ya inicializado y que valide la unicidad de registros mediante un mensaje en caso de que el alumno a ingresar ya se encuentre registrado).
ALUMNO
ATRIBUTOS:
RUT: String (máximo 10, los primeros 8 son números, luego el “-” y finalmente un número o una letra)
tipo: int (considerar uso de las siguientes constantes
Alumno.ADJUNTO:1,Alumno.REGULAR:2, Alumno.RETIRADO:3)
ciudad: String
prestamos: ArrayList<Préstamo>
MÉTODOS:
- Constructor sin parámetros
- Constructor con parámetros (obviando los préstamos, que deben ser generados posteriormente)
- Accesador para cada atributo
- Mutador para cada atributo
- Método de impresión
- Método addPrestamo, que reciba como parámetro un objeto del tipo Préstamo ya inicializado.
- Método booleano isResponsable, que devuelve true si los tres últimos préstamos han sido devueltos en la fecha que corresponde, false en su defecto, o si no existen préstamos registrados.
PRÉSTAMO
ATRIBUTOS:
fechaPréstamo: date
fechaDevolución: date (no puede ser inferior a la fecha de
préstamo).
libro: String
atrasado: boolean
MÉTODOS:
- Constructor sin parámetros
- Constructor con parámetros (que reciba todos los atributos, siendo atrasado: false)
- Accesador para cada atributo
- Mutador para cada atributo, excepto para el caso del atributo atrasado.
- Método de impresión
- Método devolverLibro() que recibe la fecha efectiva de la devolución y si es mayor a la fecha en la que debía ser devuelto el libro entonces deja el atributo atrasado seteado en true.
Todas las reglas de negocio deben controlarse con
Excepciones.(Considerar lanzar objetos Exception para el tipo
numérico y para el tipo String por separado, explicando en el
mensaje la regla de negocio no cumplida).
Descarga Código de fuente:
http://estebanfuentealba.net/ayudantia/PreparandoCertamen3EjercicioDos.rar
PD: Si quieren Testear El programa aqui les dejo un Main
/**
* @(#)EjercicioDos.java
*
* EjercicioDos application
*
* @author Esteban Fuentealba
* @version 1.00 2009/11/28
*/
import cl.duoc.pef.ejerciciodos.entidades.*;
import cl.duoc.pef.ejerciciodos.exception.*;
import java.util.*;
public class EjercicioDos {
public static void main(String[] args) {
try {
Carrera c = new Carrera("Informatica",(byte)4,true);
Alumno alumnoA = new Alumno("11111111-1",Alumno.REGULAR,"Concepcion");
Prestamo prestamoA = new Prestamo(new Date(2009,6,20),new Date(2009,6,25),"POO Avanzada");
Prestamo prestamoB = new Prestamo(new Date(2009,7,20),new Date(2009,8,25),"Programacion para Principiantes");
Prestamo prestamoC = new Prestamo(new Date(2009,9,20),new Date(2009,9,25),"Como salir de la Depresión");
alumnoA.addPrestamo(prestamoA);
alumnoA.addPrestamo(prestamoB);
alumnoA.addPrestamo(prestamoC);
Alumno alumnoB = new Alumno("22222222-2",Alumno.ADJUNTO,"Concepcion");
Prestamo prestamoD = new Prestamo(new Date(2009,7,20),new Date(2009,11,25),"Revista caras");
alumnoB.addPrestamo(prestamoD);
Alumno alumnoC = new Alumno("33333333-3",Alumno.REGULAR,"Concepcion");
Alumno alumnoD = new Alumno("44444444-4",Alumno.RETIRADO,"Santiago");
c.addAlumno(alumnoA);
c.addAlumno(alumnoB);
c.addAlumno(alumnoC);
c.addAlumno(alumnoD);
c.imprimir();
prestamoB.devolverLibro(new Date(2010,0,0));
System.out.println("Responsable: "+alumnoA.isResponsable());
} catch(NumberException exA) {
System.out.println(exA.getMessage());
} catch(StringException exB) {
System.out.println(exB.getMessage());
} catch(Exception exC) {
System.out.println(exC.getMessage());
}
}
}
Saludos!

