Anda di halaman 1dari 35

Ao de la Promocin de la Industria Responsable y del Compromiso

Climtico

UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRION

FACULTAD
: INGENIERIA INDUSTRIAL, SISTEMAS E
INFORMATICA
EAP

: INGENIERIA INFORMTICA

GRUPO

: CUATRO

INTEGRANTES : TORRES SEVILLANO, Denis


RAVELO QUIRITA, Maycol
CICLO

: III

TEMA

: ARREGLO DE OBJETOS CON ARCHIVOS Y


PDF

PROFESOR

: FLORES CUETO JUAN JOSE


HUACHO-PER

1 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

2014
II.INDICE
III. RESUMEN
IV. INTRODUCCION
V. PROBLEMA PLANTEADO
1.- ENUNCIADO
2.- DESCRIPCION DE LA SOLUCION PROPUESTA
3.- DISEO DE LA SOLUCION
3.1.- DIAGRAMA DE PAQUETES
3.2.- DIAGRAMA DE CLASES
3.3.- GRAFICA DE ESTRUCTURA DE DATOS
4.- DESARROLLO DE LA SOLUCION
VI. CONCLUSIONES
VII. RECOMENDACIONES
VIII. BIBLIOGRAFIA

2 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

III. RESUMEN
El tema central de la presente monografa es arreglo de objetos con archivos y
pdf pero es muy conveniente hablar un poco sobre la tcnica que se a usado
que es la programacin orientada a objetos (POO) actualmente se ha
diversificado mucho el uso de la programacin orientada a objetos que viene a
ser el equilibrio de los lenguajes de programacin cuidando tanto los procesos
como los datos por igual son tan importantes los unos como los otros y lo que
viene a traer son los mximos beneficios de las cotas de abstraccin,
encapsulacin, modularizacin, jerarquizacin cosas que venan ya existiendo
pero con la programacin orientada a objetos se mejoran mas eso desde mi
punto de vista personal es la esencia de lo que es la programacin orientada a
objetos. Un nuevo equilibrio entre datos y procesos para mejorar la expresin y
el mantenimiento de los programas, por ejemplo la red del metro de Nueva
York la tenan programada en C desde hace muchos aos y ocupaba
aproximadamente un milln de lneas pues es un sistema en tiempo real y de
lgica compleja, hicieron el experimento de reprogramarlo en C++ queran
contrastar la programacin tradicional orientada a procesos con la orientacin a
objetos de C++ que es otro de los lenguajes orientado a objetos esto le hicieron
para demostrar que no era ms lento porque al principio a la programacin
orientada a objetos se le achacaba que era muy lento desde el punto de vista
de ejecucin (rendimiento), en esos tiempos el rendimiento era todo un drama
porque no haba las cantidades de memoria virtual que hay ahora,
curiosamente obtuvieron otro resultado la aplicacin que en C haba ocupado
aproximadamente un milln de lneas cuando la reprogramaron en C++ ocupo
300 mil lneas paso que el tamao de la aplicacin se redujo a la tercera parte
y hacia lo mismo y era ms liviano con menos cdigo, al hacer piezas y piezas
que se combinan y se resan muchas veces tu escribes en contra de los
lenguajes tradicionales la tercera parte del cdigo documentas la tercera parte
del cdigo y se comprende muy bien el programa, todo est en que pienses
cmo funciona el mundo real y as organizas tus ideas a la hora de programar.

3 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

IV. ABSTRACT
The focus of this paper is arranging objects and pdf files but it is very convenient to talk
a bit about the technique that is used to object-oriented programming (OOP) has
greatly diversified currently using oriented programming object which comes to balance
caring programming languages both processes and data are equally as important as
the other and what comes to bring are the greatest benefits of levels of abstraction,
encapsulation , modularity , nesting things that were already there but with the OOP
are improved over that from my point of view is the essence of what object-oriented
programming. A new balance between data and processes to enhance the expression
and maintenance of programs , for example the subway in New York were programmed
in C for many years and occupied approximately one million lines it is a real-time
system and complex logic , made the experiment reprogram it in C ++ wanted to
contrast the traditional programming oriented processes with object oriented C ++ is
another object-oriented languages that made him to prove it was no slower because at
first object-oriented programming is blamed it was very slow from the point of view of
execution (performance) , at that time the performance was quite a drama because
there were quantities of virtual memory that is now curiously obtained another result
the application that C had occupied about one million lines when reprogrammed in C +
+ I occupy 300,000 lines step the application size was reduced to one-third and did the
same and was lighter with less code , by making parts and pieces are combined and
are reused many times you write against traditional languages third of the code you
document the third part of the code and the program is easy to understand , everything
is to think how the real world works and so organize your ideas when programming .

4 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

IV. INTRODUCCIN
Java no naci como un lenguaje de orientacin a objetos pero poco a poco fue
absorbido por la programacin orientada a objetos. La programacin orientada a
objetos no es usar objetos al programar sino es pensar en cmo funcionan los objetos
en el mundo real y programar en esa lgica. La gracia de trabajar con ARREGLO DE
OBJETOS es que se hace que los problemas sean ms sencillos de programar, al
permitir dividir el problema en piezas. Est divisin se hace en arreglo de objetos, de
forma que cada pedazo de cdigo pueda ser reutilizado. Un arreglo de objeto es un
elemento del programa que posee sus propios datos y su propio funcionamiento. Es
decir un arreglo de objeto est formado por datos (propiedades) clases con sus
atributos, mtodos y funciones que es capaz de realizarse gracias a la programacin
orientada a objetos.
Antes de poder utilizar un objeto, se debe definir su clase. La clase es la definicin de
un tipo de objeto. Al definir una clase lo que se hace es indicar como funciona un
determinado tipo de objeto. Luego, a partir de la clase, podremos crear un arreglo de
objetos de esa clase. Por ejemplo, si quisiramos crear el juego del parchs en Java,
una clase sera la casilla, otra las fichas, otra el dado, etc., etc. En el caso de la casilla,
se definira la clase para indicar su funcionamiento y sus propiedades, y luego se
creara tantos objetos casilla como casillas tenga el juego. Lo mismo ocurrira con las
fichas, la clase ficha definira las propiedades de la ficha (color y posicin por ejemplo)
y su funcionamiento mediante sus mtodos (por ejemplo un mtodo sera mover, otro
llegar a la meta, etc., etc..,), luego se crearan tantos arreglos de objetos ficha, como
fichas tenga el juego.
En esta ocasin vamos a desarrollar una aplicacin aplicando el concepto de arreglo
de objetos en java cumpliendo con las condiciones que nos da el enunciado N 4
alcanzados por el docente del curso.
Usaremos la librera iText-5.0.5 que nos va permitir el manejo de los pdf en java y el
IDE Netbeans la versin 8.1 en espaol.

5 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

ARREGLO DE OBJETOS
Definicin: En Java no se emplea el trmino "registro" sino el de objeto que se
comportan similar al mundo real. Los arreglos de objetos son arreglos que en vez de
contener elementos de datos contienen referencias a objetos de un tipo de clase en
especial. Dicha clase contiene variables (atributos) de diferente tipo y mtodos con
los cuales se manipulan dichas variables. Cada variable se referencia empleando un
nombre de campo los cuales son realmente el nombre de las instancias de las
variables. Los elementos de un arreglo de objetos estn numerados y para referirnos
a un elemento concreto, utilizaremos su nmero de posicin denominado ndice.
En Java, los elementos de un arreglo de objetos se empiezan a numerar desde cero.
Esto es el ndice del primer elemento de la serie es 0. Si la longitud de la serie es N, el
ndice del ltimo elemento del arreglo de objetos ser n-1. Los arreglos de objetos se
crean usando el operador new.

V. PROBLEMA PLANTEADO
1.- ENUNCIADO N 4
Desarrolle una solucin que permita almacenar el DNI, el nombre, el email y la edad
de todas las personas de una localidad, adems desarrolle un mtodo que muestre a
las personas que son menores de edad y cuantos aos les falta para ser mayores de
edad, desarrolle tambin un mtodo para almacenar los datos ingresados en un
archivo de texto y un mtodo para exportar en PDF los datos ingresados adems
desarrolle con 3 paquetes VMC y todos los mtodos necesarios para manejar y
controlar los datos.

6 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

2.DESCRIPCION
PROPUESTA.

DE

LA

SOLUCION

El enunciado N 4 nos pide una solucin que permita almacenar el DNI, el nombre, el
email, la edad, es lgico que se trata sobre el manejo de los datos de las personas que
viven en una localidad la aplicacin adems debe servir para ver cuantos menores de
edad viven en dicha localidad y cuantos aos les falta para ser mayores de edad.
Vamos a resolver el problema planteado haciendo uso de la programacin
ORIENTADA A OBJETO utilizando tres paquetes el primer paquete es la vista donde
vamos a programar la GUI (Interfaz Grfica de Usuario) con dos clases GuiPersona y
la Clase principal llamada clase usuario donde escribiremos a main el otro paquete es
controlador con la clase Arreglo Persona con los mtodos necesarios para el manejo
de datos y el tercer paquete llamado modelo donde ubicaremos la clase Persona que
es donde van los atributos y 2 mtodos constructores uno simple y otro sobrecargado
y sus mtodos get y set que permitirn acceder y modificar los atributos de la clase
persona , optimizando el condigo para ahorrar recursos del sistema en el momento de
ejecutar la aplicacin.

7 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

3.- DISEO DE LA SOLUCION.


3.1.- DIAGRAMA DE PAQUETES

8 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

3.2.DIAGRAMA
DE CLASES
3.3.GRAFICA DE

ESTRUCTURA DE DATOS

9 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

numPer
int

Persona
s

3.4.- DISEO DE LA INTERFAZ GRAFICA DE USUARIO


(GUI)

10 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

3.5.- DESARROLLO DE LA SOLUCIN


PAQUETE MODELO, CLASE PERSONA:

package modelo;
public class Persona {
private long dni;
11 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

private String nombre;


private String Email;
private int edad;
public Persona() {
dni = 0;
nombre = "";
Email = "";
edad = 0;
}
public Persona(long codigo, String nombre, String Email,
int edad) {
this.dni = codigo;
this.nombre = nombre;
this.Email = Email;
this.edad = edad;
}
public void setDni(long codigo) {
this.dni = codigo;
}
public long getDni() {
return dni;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
public String getEmail() {
return Email;
}
12 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

public void setEmail(String Email) {


this.Email = Email;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
}

PAQUETE VISTA, CLASE USUARIO:

package vista;
import
import
import
import
import
import
import
import
import

biblioteca.LE;
java.awt.Color;
java.awt.Toolkit;
java.awt.event.ActionEvent;
java.awt.event.ActionListener;
java.io.File;
java.io.IOException;
java.io.RandomAccessFile;
javax.swing.*;

public class Usuario extends JFrame implements


ActionListener {
String usuario;
13 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

JLabel lblUsuario, lblContrasea;


JLabel lblFondo;
JTextField txtUsuario;
JPasswordField txtContrasea;
JButton btnAceptar, btnCancelar;
ImageIcon imgFondo;

public static void main(String a[]) {


Usuario usu= new Usuario();
}
public Usuario() {
getContentPane().setLayout(null);
imgFondo = new
ImageIcon(getClass().getResource("/Iconos/poblacion.png"));
lblUsuario = new JLabel("Usuario");
lblUsuario.setBounds(10, 10, 70, 25);
getContentPane().add(lblUsuario);
lblContrasea = new JLabel("Contrasea");
lblContrasea.setBounds(10, 50, 70, 25);
getContentPane().add(lblContrasea);
txtUsuario = new JTextField(100);
txtUsuario.setBounds(90, 10, 100, 20);
getContentPane().add(txtUsuario);
txtContrasea = new JPasswordField(100);
txtContrasea.setBounds(90, 50, 100, 20);
getContentPane().add(txtContrasea);
btnAceptar = new JButton("Aceptar");
btnAceptar.setBounds(285, 25, 85, 25);
btnAceptar.addActionListener(this);
getContentPane().add(btnAceptar);
14 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

btnCancelar = new JButton("Cancelar");


btnCancelar.setBounds(285, 70, 85, 25);
btnCancelar.addActionListener(this);
getContentPane().add(btnCancelar);
lblFondo = new JLabel(imgFondo);
lblFondo.setBounds(0, 0, 400, 200);
getContentPane().add(lblFondo);
this.setTitle("Bienvenido");
this.setSize(400, 200);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public void menu() {
String contrasea = "4321";
if (txtUsuario.getText().equals("")) {
Toolkit.getDefaultToolkit().beep();
LE.mostrarError("Introduzca el Usuario");
} else if (txtContrasea.getText().equals("")) {
Toolkit.getDefaultToolkit().beep();
LE.mostrarError("Introduzca la Contrasea");
} else if
(String.valueOf(txtContrasea.getPassword()).equals(contrase
a)) {
usuario = txtUsuario.getText();
new GUIPersona().setVisible(true);
dispose();
} else {
Toolkit.getDefaultToolkit().beep();
LE.mostrarError("Datos mal ingresado \n
REINTENTE");
}
}
15 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

public void actionPerformed(ActionEvent e) {


if (e.getSource() == btnAceptar) {
menu();
}
if (e.getSource() == btnCancelar) {
dispose();
}
}
}

PAQUETE VISTA, CLASE GUIPERSONA:

package vista;
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import

java.awt.Color;
java.awt.Toolkit;
java.awt.event.ActionEvent;
java.awt.event.ActionListener;
javax.swing.ImageIcon;
javax.swing.JButton;
javax.swing.JFrame;
javax.swing.JLabel;
javax.swing.JOptionPane;
javax.swing.JScrollPane;
javax.swing.JTable;
javax.swing.JTextArea;
javax.swing.JTextField;
javax.swing.SwingConstants;
javax.swing.table.DefaultTableModel;
sun.swing.SwingAccessor;
controlador.ArregloDePersonas;

16 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

public class GUIPersona extends JFrame implements


ActionListener {
private DefaultTableModel template = new
DefaultTableModel(new Object[]{"DNI", "Nombre", "Email",
"edad"}, 0);
private JTextField txtDni, txtNombre, txtEmail, txtedad;
private JLabel lblNombre, lblDni, lblEmail, lbledad;
private ImageIcon agregar, modificar, eliminar, guardar,
cancelar, mostrarDatos, salir, votantes;
private JButton btnAgregar, btnGrabar, btnArchivar,
btnMostrarEdades, btnVotantes, btnsalir;
private JTable tbRegistro, jtbMostrar;
;
private JScrollPane scpScroll;
private JTextArea txtMensaje;
private JLabel lblImagen;
public ArregloDePersonas salon;
public GUIPersona() {
salon = new ArregloDePersonas();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
getContentPane().setBackground(new Color(176, 196,
222));
agregar = new
ImageIcon(getClass().getResource("/iCONOS/agregar.png"));
eliminar = new
ImageIcon(getClass().getResource("/Iconos/delete.png"));
guardar = new
ImageIcon(getClass().getResource("/Iconos/guardar.png"));
17 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

cancelar = new
ImageIcon(getClass().getResource("/Iconos/cancelar.png"));
modificar = new
ImageIcon(getClass().getResource("/Iconos/modificar.png"));
salir = new
ImageIcon(getClass().getResource("/Iconos/salir.png"));
mostrarDatos = new
ImageIcon(getClass().getResource("/Iconos/mostrarDatos.png"
));
votantes = new
ImageIcon(getClass().getResource("/Iconos/votantes.png"));
lblDni = new JLabel("DNI:");
lblDni.setBounds(15, 15, 110, 25);
getContentPane().add(lblDni);
lblNombre = new JLabel("Nombre");
lblNombre.setBounds(15, 50, 110, 25);
lblNombre.setForeground(Color.red);
getContentPane().add(lblNombre);
lblEmail = new JLabel("Correo Electronico");
lblEmail.setBounds(15, 85, 110, 25);
lblEmail.setForeground(Color.red);
getContentPane().add(lblEmail);
lbledad = new JLabel("Edad");
lbledad.setBounds(15, 120, 110, 25);
lbledad.setForeground(Color.red);
getContentPane().add(lbledad);
txtDni = new JTextField("");
txtDni.setBounds(175, 15, 110, 25);
getContentPane().add(txtDni);
txtNombre = new JTextField();
txtNombre.setBounds(175, 50, 110, 25);
getContentPane().add(txtNombre);
18 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

txtEmail = new JTextField();


txtEmail.setBounds(175, 85, 200, 25);
getContentPane().add(txtEmail);
txtedad = new JTextField();
txtedad.setBounds(175, 120, 110, 25);
getContentPane().add(txtedad);
btnAgregar = new JButton("Agregar");
btnAgregar.setBounds(570, 40, 160, 50);
btnAgregar.setIcon(agregar);
btnAgregar.setHorizontalTextPosition(SwingConstants.CENTER
);
btnAgregar.setVerticalTextPosition(SwingConstants.CENTER);
btnAgregar.setToolTipText("Agrega datos en la
aplicacin");
btnAgregar.addActionListener(this);
getContentPane().add(btnAgregar);
btnGrabar = new JButton("Grabar");
btnGrabar.setBounds(570, 95, 160, 50);
btnGrabar.setIcon(guardar);
btnGrabar.setHorizontalTextPosition(SwingConstants.CENTER);
btnGrabar.setVerticalTextPosition(SwingConstants.CENTER);
btnGrabar.setToolTipText("Graba los datos en un archivo
de texto");
getContentPane().add(btnGrabar);
btnGrabar.addActionListener(this);
btnMostrarEdades = new JButton("mayores-menores");
btnMostrarEdades.setBounds(570, 150, 160, 50);
btnMostrarEdades.addActionListener(this);
getContentPane().add(btnMostrarEdades);
19 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

btnVotantes = new JButton("total de votantes");


btnVotantes.setBounds(570, 205, 160, 50);
btnVotantes.setIcon(votantes);
btnVotantes.addActionListener(this);
getContentPane().add(btnVotantes);
btnArchivar = new JButton("Generar");
btnArchivar.setBounds(570, 260, 160, 50);
btnArchivar.setToolTipText("Genera y muestra la
informacin en un PDF");
getContentPane().add(btnArchivar);
btnArchivar.addActionListener(this);
btnsalir = new JButton("salir");
btnsalir.setBounds(570, 315, 160, 50);
btnsalir.setIcon(salir);
btnsalir.addActionListener(this);
getContentPane().add(btnsalir);
tbRegistro = new JTable(template);
tbRegistro.setEnabled(false);
scpScroll = new JScrollPane(tbRegistro);
scpScroll.setBounds(15, 200, 500, 200);
getContentPane().add(scpScroll);
lblImagen = new JLabel(new
ImageIcon("imagen/logousmp.png"));
lblImagen.setBounds(470, 150, 180, 180);
getContentPane().add(lblImagen);
agregarAlumnosEnTabla();
this.setTitle("Registro de Habitantes");
this.setSize(850, 650);
this.setResizable(true);
}
20 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

//
//
//

public static void main(String[] args) {


new GUIPersona().setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnAgregar) {
agregar();
}
if (e.getSource() == btnGrabar) {
int rpta = salon.grabar();

Toolkit.getDefaultToolkit().beep();
if (rpta == 0) {
txtMensaje.setText("Los datos fueron grabados en "
+ salon.getRutaArchivo());
} else {
txtMensaje.setText("Los datos no fueron grabados
en " + salon.getRutaArchivo() + ". Verifique!");
}
}
if (e.getSource() == btnArchivar) {
int rpta = salon.generarPDF();
Toolkit.getDefaultToolkit().beep();
if (rpta == 0) {
txtMensaje.setText("El archivo PDF fue generado
exitosamente");
} else {
txtMensaje.setText("El archivo PDF no pudo ser
generado.., verifique!");
}
}
if (e.getSource() == btnVotantes) {
21 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

mostrar();
}
//
//
//
//
//

if (e.getSource() == btnVotantes) {
totalPersonasvotantes();
}
if (e.getSource() == btnsalir) {

//
//

eliminarArchivo();
grabarDatos();
dispose();
}

public void agregar() {


String
String
String
String

snombre = txtNombre.getText().trim();
sDni = txtDni.getText().trim();
sEmail = txtEmail.getText().trim();
sedad = txtedad.getText().trim();

if (snombre.equals("") || sDni.equals("") ||
sEmail.equals("") || sedad.equals("")) {
txtDni.requestFocus();
Toolkit.getDefaultToolkit().beep();
txtMensaje.setText("Faltan datos.., verifique");
} else {
try {
long dni = Long.parseLong(sDni);
int edad = Integer.parseInt(sedad);
22 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

if (salon.buscarCodigo(dni) != -1) {
Toolkit.getDefaultToolkit().beep();
txtDni.requestFocus();
txtMensaje.setText("El cdigo ya existe..,
verifique");
} else if (!sEmail.matches("[a-z-0-9-_]+[@][a-z]+[.]
[a-z]{3}")) {
Toolkit.getDefaultToolkit().beep();
txtEmail.requestFocus();
txtMensaje.setText("el correo ingresada no es
vlida.., verifique");
} else if (sedad.length() < 0) {
Toolkit.getDefaultToolkit().beep();
txtEmail.requestFocus();
txtMensaje.setText("el correo ingresada no es
vlida.., verifique");
} else if (snombre.length() < 3) {
Toolkit.getDefaultToolkit().beep();
txtNombre.requestFocus();
txtMensaje.setText("El nombre no es vlido..,
verifique");
} else {
salon.agregarPersonasEnArreglo(dni, snombre,
sEmail, edad);
agregarAlumnoEnTabla(dni, snombre, sEmail,
edad);
limpiarCajas();
}
} catch (Exception e) {
////

Toolkit.getDefaultToolkit().beep();
23 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

////
txtMensaje.setText("Algunos de los datos son
incorrectos.., verifique");
}
}
}
public void mostrar() {
if (btnMostrarEdades.getText().equals("Mostrar")) {
int i = jtbMostrar.getSelectedRow();
if (i == -1) {
JOptionPane.showMessageDialog(null, "por Favor...
seleccione una fila");
} else {
String D = jtbMostrar.getValueAt(i, 0) + "";
String nom = jtbMostrar.getValueAt(i, 1) + "";
String em = jtbMostrar.getValueAt(i, 2) + "";
String ed = jtbMostrar.getValueAt(i, 3) + "";
String not3 = jtbMostrar.getValueAt(i, 4) + "";
//
String dis = (String) jtbMostrar.getValueAt(i, 4);
txtDni.setText(D);
txtNombre.setText(nom);
txtEmail.setText(em);
txtedad.setText(ed);
}
}
}
public void agregarAlumnosEnTabla() {
template.setRowCount(0);
for (int i = 0; i < salon.getNumAlu(); i++) {
Object[] fila = new Object[]{"" +
salon.getCodigoPorPos(i),
salon.getNombrePorPos(i),
24 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

"" + salon.getEmailPorPos(i),
+salon.getEdadPorPos(i)};
template.addRow(fila);
}

public void agregarAlumnoEnTabla(long codigo, String


nombre, String Email, int edad) {
Object[] fila = new Object[]{codigo, nombre, Email,
edad};
template.addRow(fila);
}
public void limpiarCajas() {
txtNombre.setText("");
txtDni.setText("");
txtEmail.setText("");
txtedad.setText("");
txtMensaje.setText("");
}
private void mostrarDatos() {
throw new UnsupportedOperationException("Not
supported yet."); //To change body of generated methods,
choose Tools | Templates.
}
}

PAQUETE CONTROLADOR, CLASE ARREGLOPERSONA:

package controlador;
import
import
import
import

com.itextpdf.text.Document;
com.itextpdf.text.Element;
com.itextpdf.text.Paragraph;
com.itextpdf.text.Phrase;

25 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

import
import
import
import
import
import
import
import

com.itextpdf.text.pdf.PdfPCell;
com.itextpdf.text.pdf.PdfPTable;
java.awt.Desktop;
java.io.File;
java.io.FileOutputStream;
java.io.IOException;
java.io.RandomAccessFile;
modelo.Persona;

public class ArregloDePersonas {


Persona datos[];
int numPer;
private
private
private
private
private
private
private
private

static
static
static
static
static
static
static
static

String separador;
String salto;
String unidad;
String carpeta;
String nombreArchivo;
String nombrePDF;
String rutaCarpeta, rutaArchivo, rutaPDF;
File miCarpeta, miArchivo;

static {
separador = System.getProperty("file.separator");
salto = System.getProperty("line.separator");
unidad = "E:";
carpeta = "datos";
nombreArchivo = "Personas.dat";
nombrePDF = "Persona.pdf";
rutaCarpeta = unidad + separador + separador +
carpeta;
rutaArchivo = unidad + separador + separador +
carpeta + separador + nombreArchivo;
rutaPDF = unidad + separador + separador + carpeta +
separador + nombrePDF;
miCarpeta = new File(rutaCarpeta);
26 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

miArchivo = new File(rutaArchivo);


if (!miCarpeta.exists()) {
miCarpeta.mkdir();
}
}
public ArregloDePersonas() {
datos = new Persona[5];
numPer = 0;
leerDatos();
}
public void leerDatos() {
String texto = "";
if (miArchivo.isFile()) {
RandomAccessFile accessFile = null;
try {
accessFile = new RandomAccessFile(miArchivo,
"rw");

accessFile.seek(0);
while ((texto = accessFile.readLine()) != null) {
long codigo = Long.parseLong(texto.substring(0,

10).trim());

String nombre = texto.substring(10, 40).trim();


String Email = texto.substring(40, 60).trim();
int edad =
Integer.parseInt(texto.substring(60).trim());

27 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

agregarPersonasEnArreglo(codigo, nombre,
Email, edad);
}
accessFile.close();
} catch (IOException e) {
} catch (Exception e) {
}
} else {
System.out.println("No existen datos");
}
}
public void agregarPersonasEnArreglo(long codigo,
String nombre, String Email, int edad) {
if (numPer < datos.length) {
aumentar();
}
Persona alu = new Persona(codigo, nombre, Email,
edad);
datos[numPer] = alu;
numPer++;
}
public void aumentar() {
Persona[] datosTMP = new Persona[numPer + 10];
for (int i = 0; i < datos.length; i++) {
datosTMP[i] = datos[i];
}
datos = datosTMP;
}
28 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

public int grabar() {


String listado = "", reg;
for (int i = 0; i < numPer; i++) {
reg = completar(Long.toString(datos[i].getDni()), 10)
+ completar(datos[i].getNombre(), 30)
+ completar(Integer.toString(datos[i].getEdad()),

5);

listado = listado + reg + salto;


}
File file = new File(rutaArchivo);
file.delete();
RandomAccessFile accessFile = null;
try {
accessFile = new RandomAccessFile(miArchivo, "rw");
accessFile.seek(0);
accessFile.writeBytes(listado);
accessFile.close();
return 0;
} catch (IOException e) {
return -1;
}
}
public int generarPDF() {
String titulo = "Datos de las personas de la localidad" +
salto + salto + salto;
Document miPDF = new Document();
FileOutputStream outFile;
try {
29 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

outFile = new FileOutputStream(rutaPDF);


com.itextpdf.text.pdf.PdfWriter.getInstance(miPDF,
outFile);
PdfPTable table = new PdfPTable(4);
PdfPCell c1 = new PdfPCell(new Phrase("DNI"));
c1.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(c1);
c1 = new PdfPCell(new Phrase("Nombre"));
c1.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(c1);
c1 = new PdfPCell(new Phrase("Email"));
c1.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(c1);
c1 = new PdfPCell(new Phrase("edad"));
c1.setHorizontalAlignment(Element.ALIGN_CENTER);
table.addCell(c1);
table.setHeaderRows(1);
miPDF.open();
for (int i = 0; i < numPer; i++) {
table.addCell(Long.toString(datos[i].getDni()));
table.addCell(datos[i].getNombre());
table.addCell(datos[i].getEmail());
table.addCell(Integer.toString(datos[i].getEdad()));
}
miPDF.add(new Paragraph(titulo));
miPDF.add(table);
miPDF.close();
File file = new File(rutaPDF);
30 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

Desktop.getDesktop().open(file);
return 0;
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
public int buscarCodigo(long codigo) {
for (int i = 0; i < numPer; i++) {
if (datos[i].getDni() == codigo) {
return i;
}
}
return -1;
}
public String completar(String cadena, int total) {
int longitud = cadena.length();
String espacios = "";
String nuevaCadena = "";
if (longitud < total) {
int falta = total - longitud;
for (int i = 0; i < falta; i++) {
espacios = espacios + " ";
}
nuevaCadena = cadena + espacios;
} else {
nuevaCadena = nuevaCadena.substring(0, total);
}
return nuevaCadena;
}
public long getCodigoPorPos(int posicion) {
return datos[posicion].getDni();
}
31 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

public String getNombrePorPos(int posicion) {


return datos[posicion].getNombre();
}
public String getEmailPorPos(int posicion) {
return datos[posicion].getEmail();
}
public int getEdadPorPos(int posicion) {
return datos[posicion].getEdad();
}
public int getNumAlu() {
return numPer;
}
public String getRutaArchivo() {
return rutaArchivo;
}
}

CONCLUSIONES:
La programacin orientada a objetos permite crear aplicaciones de forma ms
parecida al pensamiento humano. De hecho se cae de maduro decirlo que simplifica el
problema dividindolo en objetos o piezas para luego juntarlos y usarlos haciendo ms
fcil la modificar y actualizar el cdigo de la la aplicacin para de esa forma eliminar la
complejidad. Cada objeto se programa de forma autnoma y esa es la principal virtud
32 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

la faculta que da de modificarlo de manera independiente lo cual hace mucho ms


fluido y sencillo programar.
El tema que abordamos hoy es ARREGLO DE OBJETOS CON ARCHIVOS Y PDF que
nos permitir generar informes de los registros en tablas, textos, etc. Un tema que
trasciende en el uso de lenguaje Java para lograr la optimizacin de la aplicacin
gracias a la versatilidad de la programacin orientada a objetos.
Porque java no naci con programacin orientada a objetos pues naci sin ello lo que
sucedi es que la programacin orientada a objetos lo fue absorbiendo poco a poco
hasta que lo absorbi por completo.
El diseo de la aplicacin se realiz respetando la teora de arreglo de objetos
planteados en clases por el docente del curso.

RECOMENDACIN:
Recomendaciones del Alumno Torres Sevillano, Denis:
1.- Es necesario leer bien el enunciado y comprender que es lo que pide luego pasar
al diseo de la estructura de datos para poder definir cuantos paquetes y cuantas
clases vas a usar y que mtodos vas emplear en cada clase, el siguiente paso que
queda es programar el cdigo de la aplicacin.
2.- Es muy recomendable importar la biblioteca iText-5.0.5 siempre la ltima versin
que salga porque siempre trae novedades
3.- Es considerado como buena prctica de programacin colocar ordenadamente los
mtodos para poder hallarlos ms rpido cuando se requiera agregar o quitar
mtodos.
4.- En realidad tienes cuatro posibilidades: Trabajar directamente con JTable, usar
TableModel, usar AbstractTableModel o usar DefaultTableModel.
La de DefaultTableModel es la ms sencilla. No tienes que escribir nada de cdigo.
DefaultTableModel tiene todos los mtodos necesarios para aadir, modificar y borrar
celdas.
33 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

Cul es mejor?. Si no tienes necesidades especiales y tus datos se parecen bastante


a una tabla, es mejor usar DefaultTableModel. Es lo ms cmodo. Si necesitas hacer
algo que DefaultTableModel no te ofrezca, entonces debes probar alguna de las otras
opciones.

Recomendaciones del Alumno Ravelo Quirita Maycol:


Si queremos aprender un lenguaje de programacin, antes de eso debemos
preocuparnos por aprender a programar de manera ordenada, de nada nos sirve
aprender a hablar si no sabemos lo que queremos decir ni como lo vamos a decir.
Tener un orden de tiempo para evitar la acumulacin del trabajo a si poder terminar
en un determinado lapso de tiempo indicado. Primero ah que describir el
enunciado del problema para poder desarrollar una solucin. Luego, en la
siguiente plantear un Grfico de Estructura de Datos utilizando una variable, un
vector y una matriz en forma simultnea. Representa grficamente para entender
que es un arreglo de objeto. Observe que un arreglo de objetos almacena objetos,
y los objetos a su vez almacenan datos y mtodos, los cuales han sido definidos
en su clase. Ejecutar la aplicacin

constantemente para

evitar errores en

conjunto. Es preferible nombrar los diferentes tipos de clase y paquetes para


mantener un orden para facilitar el manejo de errores.
Finalmente, Recomendamos el uso de Arreglos en paralelo, Arreglos simples,
Listas simples, Archivos, Arreglo de Objetos, su completo conocimiento para hacer
de la aplicacin desarrollada la ms ptima.

34 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Ao de la Promocin de la Industria Responsable y del Compromiso


Climtico

BIBLIOGRAFIA:
www.google.com.pe
http://progra.usm.cl/apunte/materia/arreglos.html
http://www.desarrolloweb.com/.../programacion-orientada-objetosjava.html
http://sepwww.stanford.edu/sep/jon/family/jos/oop_es/oop1.htm
Manual Universitario - Archivos v.1.0 30.10.12.pdf
Manual Universitario Arreglo de Objetos v. 06.03.13
Manual Universitario - 2. Listas simples v. 21.08.12

35 Universidad Nacional Jos Faustino Snchez Carrin

Lenguaje de Programacin II

Anda mungkin juga menyukai