1. UNIVERSIDAD ISRAEL
CIENCIAS DE LA INGENIERÍA
CARRERA DE SISTEMAS DE INFORMACIÓN
PROGRAMACIÓN ORIENTADA A OBJETOS
SEMESTRE 2021 A
LABORATORIO S4 y S5
TEMA: Aplicaciones Java (Diagramas de barras y de pastel)
PROFESOR: Mg. Luis Fernando Aguas Bucheli
QUITO, 2021
2. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
1. TEMA: Aplicaciones Java (Diagramas de barras y de pastel)
2. OBJETIVOS:
• Adquirir los conceptos básicos relacionados con la POO
• Reconocer las características de la POO
3. OBJETIVOS DE DESARROLLO SOSTENIBLE:
4. INTRODUCCION:
Clases y objetos
• Objeto
Un objeto es una encapsulación genérica de datos y de los procedimientos para
manipularlos.
Al igual que los objetos del mundo real, los objetos de software tienen un estado y un
comportamiento. El estado de los objetos se determina a partir de una o
más variables y el comportamiento con la implementación de métodos.
La siguiente figura muestra la representación cómun de los objetos de software
3. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
Como se observa en la figura, todos los objetos tienen una parte pública (su
comportamiento) y una parte privada (su estado). En este caso, hicimos una vista
transversal pero desde el mundo exterior, el objeto se observará como una esfera.
• Clase
Una clase está formada por los métodos y las variables que definen las características
cómunes a todos los objetos de esa clase. Precisamente la clave de la OOP está en
abstraer los métodos y los datos comunes a un conjunto de objetos y almacenarlos en
una clase.
Una clase equivale a la generalización de un tipo específico de objetos.
Una instancia es la concreción de una clase.
4. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
Clase X
En la figura anterior, el objeto A y el objeto B son instancias de la clase X.
Cada uno de los objetos tiene su propia copia de las variables definidas en la clase de
la cual son instanciados y comparten la misma implementación de los métodos.
5. DESARROLLO:
• Ingresamos a Netbeans
• Creamos un nuevo proyecto:
5. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Colocamos como nombre
6. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Damos clic en Finalizar
• Eliminamos la clase que se creó por defecto
• Teniendo
7. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Damos clic en agregar JFrame
• Colocamos el siguiente nombre
8. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Damos clic en Finalizar
• Creamos la siguiente interface
9. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Creamos la siguiente clase:
• Con el siguiente nombre:
jTextArea1
jButtons
jPanel1
jPanel2
10. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Teniendo:
• Colocamos el siguiente código
public class Persona {
protected String cedula;
protected String nombre;
11. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
public Persona(String cedula,String nombre)
{
this.nombre=nombre;
this.cedula=cedula;
}//fin persona
public String get_cedula()
{
return cedula;
}// fin get_cedula
public String get_nombre()
{
return nombre;
}
public void setea_datos( String cedula,String nombre)
{
this.nombre=nombre;
this.cedula=cedula;
}//fin setea_datos
}
• Teniendo:
• Creamos otra clase, con el siguiente nombre:
12. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Teniendo:
• Colocamos el siguiente código:
public class Paciente extends Persona{
String enfermedad;
String seguro;
13. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
public Paciente(String cedula,String nombre, String enfermedad,String seguro )
{
super(cedula, nombre);
this.enfermedad=enfermedad;
this.seguro=seguro;
}
public String get_enfermedad()
{
return enfermedad;
}// fin get_cedula
public String get_seguro()
{
return seguro;
}// fin get_cedula
}
• Teniendo:
• Declaramos las siguientes variables
Paciente A[]=new Paciente[3];
Font tipo1 =new Font("Arial",Font.BOLD+Font.ITALIC,14);
Font tipo2 =new Font("Comic Sans MS",Font.ITALIC,13);
• Teniendo:
14. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Damos doble clic en el siguiente botón
• Colocamos el siguiente código:
A[0]=new Paciente ("1716866916","Luis Aguas", "Ninguna","Seguro");
A[1]=new Paciente ("1716866916","Fabiola Aguas", "Ninguna","Seguro");
A[2]=new Paciente ("1716866916","Sofía Aguas", "Ninguna","No seguro");
jTextArea1.append("nCédula - Apellidos y Nombres - Enfermedad - Seguro");
jTextArea1.append("n---------------------- ");
15. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
for (int i=0;i<A.length;i++)
jTextArea1.append("n"+ A[i].get_cedula()+"-"+A[i].get_nombre()+"-
"+A[i].get_enfermedad()+"-"+A[i].get_seguro());
• Teniendo:
• Creamos las siguientes funciones para dibujar un diagrama de barras y de pastel
public void graficoBarras(Graphics t, Paciente A[],int x, int y)
{
int contS=0,contC=0,a=20,ancho=40;
for(int i=0;i<A.length;i++)
{
if(A[i].get_seguro().equals("Seguro"))
contS++;
if(A[i].get_seguro().equals("No seguro"))
contC++;
}
//Ejes
t.drawLine(x,y,x+300,y);
t.drawLine(x,y,x,y-250);
t.setFont(tipo1);
t.setColor(Color.red);
t.drawString("Tipo",x+300,y+30);
t.drawString("# Asegurados",x-100,y-250);
//Leyenda
t.setColor(Color.black);
t.drawRect(x+250,y-190,160,100);
t.setFont(tipo1);
16. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
t.setColor(Color.red);
t.drawString("Leyenda",x+270,y-170);
t.setColor(Color.blue);
t.fillRect(x+270,y-150,ancho,ancho/2);
t.setColor(Color.cyan);
t.fillRect(x+270,y-120,ancho,ancho/2);
t.setColor(Color.black);
t.drawRect(x+270,y-150,ancho,ancho/2);
t.drawRect(x+270,y-120,ancho,ancho/2);
t.setFont(tipo2);
t.drawString("Seguro",x+320,y-135);
t.drawString("No Seguro",x+320,y-105);
//Seguro
t.setColor(Color.blue);
t.fillRect(x+50,y-(contS*a),ancho,contS*a);
t.setColor(Color.black);
t.drawRect(x+50,y-(contS*a),ancho,contS*a);
t.drawLine(x,y-(contS*a),x+50+ancho,y-(contS*a));
t.setFont(tipo2);
t.drawString("Seguro",x+50,y+30);
t.drawString(""+contS,x-20,y-(contS*a));
//No Seguro
t.setColor(Color.cyan);
t.fillRect(x+140,y-(contC*a),ancho,contC*a);
t.setColor(Color.black);
t.drawRect(x+140,y-(contC*a),ancho,contC*a);
t.drawLine(x+50+ancho,y-(contC*a),x+140+ancho,y-(contC*a));
t.setFont(tipo2);
t.drawString("No Seguro",x+140,y+30);
t.drawString(""+contC,x-20,y-(contC*a));
}
public void graficoPastel(Graphics g, int x, int y)
{
int ptot=0; int s=0, ns=0;
for(int i=0;i<A.length;i++)
{
if(A[i].get_seguro().equals("Seguro"))
s++;
if(A[i].get_seguro().equals("No seguro"))
ns++;
}
ptot=A.length;
if(ptot!=0){
g.drawRect(x+200,y+20,100,100);
g.drawString("Leyenda:",x+210,y+40);
17. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
g.drawString("S "+(double)(s*100/ptot)+" %",x+230,y+60);
g.drawString("NS "+(double)(ns*100/ptot)+" %",x+230,y+80);
g.drawRect(x+210,y+50,10,10);
g.drawRect(x+210,y+70,10,10);
g.fillOval(x-3,y-3,156,156);
g.setColor(new Color(128,0,128));
g.fillArc(x,y,150,150,0,(int)(s*360/ptot));
g.fillRect(x+210,y+50,10,10);
g.setColor(new Color(14,45,34));
g.fillArc(x,y,150,150,(int)(s*360/ptot),(int)(ns*360/ptot));
g.fillRect(x+210,y+70,10,10);
}
}
• Teniendo:
18. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Ahora damos doble clic en el siguiente botón
• Colocamos el siguiente código:
jTextArea1.setText("");
• Teniendo:
19. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Ahora damos doble clic en el siguiente botón
• Colocamos el siguiente código
graficoBarras(jPanel1.getGraphics(),A,100,300);
graficoPastel(jPanel2.getGraphics(),50,125);
• Teniendo:
20. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Compilamos y ejecutamos
• Damos clic en ver pacientes
21. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
• Luego damos clic en Diagramas
22. Universidad Israel
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Ciencias de la Ingeniería
6. BIBLIOGRAFIA: