p01d- composicion de objetos en java

14
Instituto Tecnológico de la Laguna Ingeniería en Sistemas Computacionales TOPICOS AVANZADOS DE PROGRAMACION SEMESTRE: Ene - Jun / 2013 GRUPO: “B” 17 – 18 Hrs UNIDAD: 1 PRACTICA No.: 1d COMPOSICION DE OBJETOS EN JAVA ALUMNO: 11130036 Eduardo Díaz Salazar PROFESOR: Ing. Luis Fernando Gil Vázquez Torreón, Coah. a 16 de Febrero de 2013

Upload: eddu-diaz-salazar

Post on 14-Apr-2015

53 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: P01d- Composicion de Objetos en Java

Instituto Tecnológico de la Laguna Ingeniería en Sistemas Computacionales

TOPICOS AVANZADOS DE PROGRAMACION

SEMESTRE: Ene - Jun / 2013 GRUPO: “B” 17 – 18 Hrs UNIDAD: 1 PRACTICA No.: 1d

COMPOSICION DE OBJETOS EN JAVA

ALUMNO:

11130036 Eduardo Díaz Salazar

PROFESOR: Ing. Luis Fernando Gil Vázquez

Torreón, Coah. a 16 de Febrero de 2013

Page 2: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 2

Ejercicio 1 Desarrollar una clase Java que modele un Cilindro caracterizado por dos bases circulares de radio r y una altura h. La clase debe

proporcionar información de su volumen, el área de su base, su área lateral y su área total. Desarrollar una aplicación de consola

Java que solicite al usuario los datos del Cilindro e imprima la información del mismo.

Ejercicio 2 Desarrollar una clase Java que modele un prisma triangular caracterizado por una base en forma de Triangulo Rectángulo. La

clase debe proporcionar información de su volumen, el área de su base, su área lateral y su área total. Desarrollar una aplicación

de consola Java que solicite al usuario los datos del Prisma Triangular e imprima la información del mismo.

Ejercicio 3 Diseñar una clase Java que modele un prisma recto con base en forma de trapecio isoceles. La clase debe proporcionar

información de su volumen, el área de su base, su área lateral y su área total. Desarrollar una aplicación de consola Java que

solicite al usuario los datos del Prisma Trapezoidal e imprima la información del mismo.

Page 3: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 3

Análisis Ejercicio 1

Para la solución de este problema se platearan 3 clases de estas tres clases se reutilizara la clase Circulo. La clase Cilindro tendrá

de atributos radio y la altura, un constructor que recibirá de parámetro el radio y la altura del cilindro, utilizara los métodos

volumen() arealateral() y areaTotal() y unos métodos set/get que asigna y regresa el valor al radio. La clase CilindroApp utiliza la

clase Cilindro para mostrar los valores de sus métodos.

Ejercicio 2

En este problema se plantearan 3 clases pero al igual que el ejercicio anterior se reutilizara una clase TrainguloRec. La clase

PrismaTriangular tendrá un constructor que recibirá 3 parámetros, la base, la altura y el ancho del prisma. Proporcionará métodos

para calcular su volumen y áreas-

Ejercicio 3

Reutilizaremos la clase Trapecio para la solución de este problema, pero implementaremos 2 clases más la clase PrismaTrapecio

y PrismaTrapecioApp. La primera tendrá 4 atributos y constructor que recibirá 4 parametros, la base menor, base mayor altura y

ancho del prisma. Proporcionará métodos para calcular el volumen y ares. Se crearan 2 instancias de la Clase Trapecio. En la

clase PrismaTrapecioApp se creara una instancia de la clase PrismaTrapecioApp para calcular su área y volúmenes.

Diseño

Ejercicio 1

CilindroApp

+ Main ( string [] args)

Clindro

- radio : doublé

- altura :doublé

- baseSuperior :Circulo

- baseInferior :Circulo

+ Cilindro ( doublé r, doublé h)

+ volumen() :double

+ areaBase() :double

+ areaLateral () :doublé

+ areaTotal() :double

+ getInfo()

Page 4: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 4

Ejercicio 2

Ejercicio 3

Código Ejercicio 1 Clase Circulo,java /*------------------------------------------------------------------------------------------

:* INSTITUTO TECNOLOGICO DE LA LAGUNA

:* INGENIERIA EN SISTEMAS COMPUTACIONALES

:* TOPICOS AVANZADOS DE PROGRAMACION "B"

:*

:* SEMESTRE: ENE-JUN/2013 HORA: 17-18 HRS

:*

:* Clase que modela al un circulo

:*

:* Archivo : Circulo.java

:* Autor : Eduardo Díaz Salazar 11130036

:* Fecha : 15/Feb/2013

:* Compilador : JAVA J2SE v1.7.0_11

:* Descripción : Tiene de atributo radio, tiene metodos que calculan el area, circunferencia

:* y diagonal del circulo. Tambien tiene un metodo setRadio () que asigna valor

:* al radio.

:*

:*------------------------------------------------------------------------------------------*/

PrismaTriangularApp

+ Main ( string [] args)

PrismaTriangular

- baseInferior : TrianguloRec

- baseSuperio : TrianguloRec

- ancho : double

+PrismaTriangular ( double b, double h, doublé h )

+ volumen() :double

+ areaBase() :double

+ areaLateral() :double

+ áreaTotal() :doublé

+ setAncho(doublé an)

PrismaTrapecioApp

+ Main ( string [] args)

PrismaTrapecio

- caraInferior :Trapecio

- caraSuperior :Tapecio

- ancho :double

+ PrismaTrapecio ( double b, double B, double a )

+ volumen() :double

+ areaBase() :double

+ areaLateral() :double

+ areaTotal() :double

+ setAncho( double an ) :double

Page 5: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 5

public class Circulo {

//---------------------------------------------------------------------------------------------------------

-

//Atributos

private double radio;

//---------------------------------------------------------------------------------------------------------

-

// Constructor

public Circulo ( double r ) {

setRadio ( r );

}

//---------------------------------------------------------------------------------------------------------

-

// Metodo que calcula el area del circulo

public double area () {

return Math.PI * Math.pow ( radio, 2 );

}

//---------------------------------------------------------------------------------------------------------

-

//Metodo que calcula el diametro del circulo

public double diametro () {

return 2 * radio;

}

//---------------------------------------------------------------------------------------------------------

-

// Metodo que calcula la circunferencia del circulo

public double circunferencia () {

return Math.PI * diametro ();

}

//---------------------------------------------------------------------------------------------------------

-

// Propiedad set que asigna valor al radio

public void setRadio ( double r ) {

radio = r;

}

//---------------------------------------------------------------------------------------------------------

-

// Propiedad get que regresa el valor del radio

public double getRadio () {

return radio;

}

}

Page 6: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 6

Clase Cilindro.java

/*------------------------------------------------------------------------------------------

:* INSTITUTO TECNOLOGICO DE LA LAGUNA

:* INGENIERIA EN SISTEMAS COMPUTACIONALES

:* TOPICOS AVANZADOS DE PROGRAMACION "B"

:*

:* SEMESTRE: ENE-JUN/2013 HORA: 17-18 HRS

:*

:* Clase que modela al un cilindro

:*

:* Archivo : Cilindro.java

:* Autor : Eduardo Díaz Salazar 11130036

:* Fecha : 16/Feb/2013

:* Compilador : JAVA J2SE v1.7.0_11

:* Descripción : Tiene de atributos radio y altura pero se crean 2 instancias de la clase

:* Ciruculo.java para calcular el area de las bases que son dos circulos.

:* cuenta con metodos para calcular el volumen y area total.

:*------------------------------------------------------------------------------------------*/

public class Cilindro {

//---------------------------------------------------------------------------------------------------------

-

//Atributos

private double radio;

private double altura;

private Circulo baseSuperior;

private Circulo baseinferior;

//---------------------------------------------------------------------------------------------------------

-

//Constructor

public Cilindro ( double r, double h ) {

radio = r;

altura = h;

baseSuperior = new Circulo ( radio );

baseinferior = new Circulo ( radio );

}

//---------------------------------------------------------------------------------------------------------

-

//Metodo que calcula el volumen del cilindro

public double volumen () {

return baseSuperior.area () * altura;

}

//---------------------------------------------------------------------------------------------------------

-

//Metodo que calcula la area de la base

public double areaBase () {

return baseSuperior.area ();

}

//---------------------------------------------------------------------------------------------------------

-

//Metodo que calcula la area de la base

public double areaLateral () {

return baseSuperior.circunferencia () * altura;

}

//---------------------------------------------------------------------------------------------------------

-

//Metodo que calcula el area total del cilindro

public double areaTotal () {

return areaLateral() + 2 * areaBase ();

}

//---------------------------------------------------------------------------------------------------------

-

Page 7: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 7

// Propiedad que muestra informacion acerca del cilindro

public void getInfo () {

System.out.println ( "El radio es: " + radio + " y la altura es: " + altura );

}

//---------------------------------------------------------------------------------------------------------

-

}

Clase CilindroApp.java

/*------------------------------------------------------------------------------------------

:* INSTITUTO TECNOLOGICO DE LA LAGUNA

:* INGENIERIA EN SISTEMAS COMPUTACIONALES

:* TOPICOS AVANZADOS DE PROGRAMACION "B"

:*

:* SEMESTRE: ENE-JUN/2013 HORA: 17-18 HRS

:*

:* Clase tiene un metodo main

:*

:* Archivo : CirculoApp.java

:* Autor : Eduardo Díaz Salazar 11130036

:* Fecha : 15/Feb/2013

:* Compilador : JAVA J2SE v1.7.0_11

:* Descripción : En esta clase se crea una instancia de la clase Circulo para usar sus metodos

:* y mostrar los resultados del area, circunferencia y diagonal

:*

:*

:*------------------------------------------------------------------------------------------*/

import java.util.Scanner;

public class CirculoApp {

//-----------------------------------------------------------------------------------------

public static void main ( String [] args ) {

Scanner sc = new Scanner ( System.in );

System.out.println ( "-------------- Circulo --------------" );

System.out.print ( "Ingrese el radio: " );

double rad = sc.nextDouble ();

Circulo cir = new Circulo ( rad );

System.out.println ( "" );

System.out.println ( "El area : " + cir.area () );

System.out.println ( "La circunferencia es : " + cir.circunferencia () );

System.out.println ( "El diametro es : " + cir.diametro () );

}

} Ejercicio 2

Clase TrianguloRec.java

/*------------------------------------------------------------------------------------------

:* INSTITUTO TECNOLOGICO DE LA LAGUNA

:* INGENIERIA EN SISTEMAS COMPUTACIONALES

:* TOPICOS AVANZADOS DE PROGRAMACION "B"

:*

:* SEMESTRE: ENE-JUN/2013 HORA: 17-18 HRS

:*

:* Clase que modela un Triangulo Rectangulo

:*

:* Archivo : TrianguloRec.java

:* Autor : Eduardo Díaz Salazar 11130036

:* Fecha : 15/Feb/2013

:* Compilador : JAVA J2SE v1.7.0_11

:* Descripción : En esta clase tiene de atributos base y altura, los cuales usa para

:* calcular el area, hipotenusa y perimetro del triangulo rectangulo.

:*

:*

:*------------------------------------------------------------------------------------------*/

Page 8: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 8

public class TrianguloRec {

//-----------------------------------------------------------------------------------------------

//Atributos

private double base;

private double altura;

//-----------------------------------------------------------------------------------------------

//Constructor

public TrianguloRec ( double b, double h ) {

setBase ( b );

setAltura ( h );

}

//-----------------------------------------------------------------------------------------------

//Metodo set de la base

public void setBase ( double ba ) {

base = ba;

}

//-----------------------------------------------------------------------------------------------

//Metodo set de la altura

public void setAltura ( double al ) {

altura = al;

}

//-----------------------------------------------------------------------------------------------

//Metodo get de la altura

public double getAltura () {

return altura;

}

//-----------------------------------------------------------------------------------------------

//Metodo que calcula el area

public double area () {

return base * altura / 2;

}

//-----------------------------------------------------------------------------------------------

//Metodo que calcula el perimetro

public double perimetro () {

return hipotenusa () + base + altura;

}

//-----------------------------------------------------------------------------------------------

//Metodo que calcula la hipotenusa

public double hipotenusa () {

return Math.sqrt ( Math.pow ( base, 2 ) + Math.pow ( altura, 2 ) );

}

//-----------------------------------------------------------------------------------------------

}

Page 9: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 9

Clase PrismaTriangular.java

/*------------------------------------------------------------------------------------------

:* INSTITUTO TECNOLOGICO DE LA LAGUNA

:* INGENIERIA EN SISTEMAS COMPUTACIONALES

:* TOPICOS AVANZADOS DE PROGRAMACION "B"

:*

:* SEMESTRE: ENE-JUN/2013 HORA: 17-18 HRS

:*

:* Clase que modela un prisma triangular

:*

:* Archivo : PrismaTriangular.java

:* Autor : Eduardo Díaz Salazar 11130036

:* Fecha : 16/Feb/2013

:* Compilador : JAVA J2SE v1.7.0_11

:* Descripción : Tiene 2 instancias de la clase TrianguloRec.java que son las bases

:* del prisma y un atributo altura que es la altura del prisma.

:* Cuenta con metodos para calcular el volumen y area total.

:*------------------------------------------------------------------------------------------*/

public class PrismaTriangular {

//-------------------------------------------------------------------------------------------

private TrianguloRec baseInferior;

private TrianguloRec baseSuperior;

private double ancho;

//-------------------------------------------------------------------------------------------

//Constructor

public PrismaTriangular ( double b, double h, double a) {

baseInferior = new TrianguloRec ( b , h );

baseSuperior = new TrianguloRec ( b , h );

setAncho ( a );

}

//-------------------------------------------------------------------------------------------

//Metodo set que asgna el valor a lo ancho

public void setAncho ( double a ) {

ancho = a;

}

//-------------------------------------------------------------------------------------------

// Metodo que calcula el volumen del prisma

public double volumen () {

return baseInferior.area () * ancho;

}

//-------------------------------------------------------------------------------------------

// Metodo que calcula el area de la base

public double areaBase () {

return baseInferior.area ();

}

//-------------------------------------------------------------------------------------------

//Metodo que calcula el area lateral

public double areaLateral () {

return (ancho * baseInferior.getBase () ) + ( baseInferior.getAltura () * ancho ) + (

baseInferior.hipotenusa () * ancho );

}

//-------------------------------------------------------------------------------------------

//Metodo para calcular la area total

public double areaTotal () {

return areaLateral () + baseInferior.area ();

}

}

Page 10: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 10

Clase PrismaTriangularApp.java

/*------------------------------------------------------------------------------------------

:* INSTITUTO TECNOLOGICO DE LA LAGUNA

:* INGENIERIA EN SISTEMAS COMPUTACIONALES

:* TOPICOS AVANZADOS DE PROGRAMACION "B"

:*

:* SEMESTRE: ENE-JUN/2013 HORA: 17-18 HRS

:*

:* Clase que hace uso de la clase PrismaTrangular.java

:*

:* Archivo : PrismaTriangularApp.java

:* Autor : Eduardo Díaz Salazar 11130036

:* Fecha : 16/Feb/2013

:* Compilador : JAVA J2SE v1.7.0_11

:* Descripción : Esta clase tiene un metodo main que tiene una instancia de la clase

:* PrismaTriangular.java para calcular el area de las bases, tambien

:* cuenta con metodos para calcular el volumen y area total.

:*------------------------------------------------------------------------------------------*/

import java.util.Scanner;

public class PrismaTriangularApp {

public static void main ( String [] args ) {

Scanner sc = new Scanner ( System.in );

System.out.println ( "-------------- Prisma Triangular --------------" );

System.out.print ( " Ingrese la base: " );

double bas = sc.nextDouble ();

System.out.print ( "Ingrese la altura: " );

double alt = sc.nextDouble ();

System.out.print ( "Ingrese el ancho: " );

double anc = sc.nextDouble ();

PrismaTriangular pri = new PrismaTriangular ( bas, alt, anc );

System.out.println ( "" );

System.out.println ( "El volumen es : " + pri.volumen () );

System.out.println ( "El area de la base es : " + pri.areaBase () );

System.out.println ( "El area lateral es : " + pri.areaLateral () );

System.out.println ( "El area total es : " + pri.areaTotal () );

}

}

Ejercicio 3 Clase Trapecio.java /*------------------------------------------------------------------------------------------

:* INSTITUTO TECNOLOGICO DE LA LAGUNA

:* INGENIERIA EN SISTEMAS COMPUTACIONALES

:* TOPICOS AVANZADOS DE PROGRAMACION "B"

:*

:* SEMESTRE: ENE-JUN/2013 HORA: 17-18 HRS

:*

:* Clase que modela un Trapecio

:*

:* Archivo : Trapecio.java

:* Autor : Eduardo Díaz Salazar 11130036

:* Fecha : 15/Feb/2013

:* Compilador : JAVA J2SE v1.7.0_11

:* Descripción : Esta clase tiene los metodos baseMayor, baseMenor y altura, con los

:* cuales se calcula el area, la diagolnal y perimetro del trapecio

:*

:*

:*------------------------------------------------------------------------------------------*/

public class Trapecio {

//------------------------------------------------------------------------------------------

//Atributos

private double baseMayor;

private double baseMenor;

private double altura;

//------------------------------------------------------------------------------------------

Page 11: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 11

//Constructor

public Trapecio ( double b, double B, double a ) {

setbaseMayor ( B );

setbaseMenor ( b );

setaltura ( a );

}

//------------------------------------------------------------------------------------------

//Metodo set de la base Mayor

public void setbaseMayor ( double B ) {

baseMayor = B;

}

//------------------------------------------------------------------------------------------

//Metodo set base Menor

public void setbaseMenor ( double b ) {

baseMenor = b;

}

//------------------------------------------------------------------------------------------

//Metodo set de la altura

public void setaltura ( double a ) {

altura = a;

}

//------------------------------------------------------------------------------------------

//Metodo que calcula el area

public double area () {

return ( ( baseMayor - baseMenor ) * altura ) / 2;

}

//------------------------------------------------------------------------------------------

//Metodo que calcula el perimero

public double perimetro () {

return baseMayor + baseMenor + 2 * diagonal ();

}

//------------------------------------------------------------------------------------------

//Metodo que calcula la diagonal

public double diagonal () {

double c = ( baseMayor - baseMenor ) / 2;

return Math.sqrt ( Math.pow ( c , 2 ) + Math.pow ( altura , 2 ) );

}

//------------------------------------------------------------------------------------------

}

Clase PrismaTrapecio.java

/*------------------------------------------------------------------------------------------

:* INSTITUTO TECNOLOGICO DE LA LAGUNA

:* INGENIERIA EN SISTEMAS COMPUTACIONALES

:* TOPICOS AVANZADOS DE PROGRAMACION "B"

:*

:* SEMESTRE: ENE-JUN/2013 HORA: 17-18 HRS

:*

:* Clase que modela un prisma recto

:*

:* Archivo : PrismaTrapecio.java

:* Autor : Eduardo Díaz Salazar 11130036

:* Fecha : 16/Feb/2013

:* Compilador : JAVA J2SE v1.7.0_11

:* Descripción : Tiene 2 instancias de la clase Trapecio.java que son las bases

:* del prisma y 4 atributos que son: baseMeyor, baseMenor, altura y ancho.

:* Cuenta con metodos para calcular el volumen y area total.

:*------------------------------------------------------------------------------------------*/

Page 12: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 12

public class PrismaTrapecio {

//------------------------------------------------------------------------------------------------

//Atributos

private Trapecio caraInferior;

private Trapecio caraSuperior;

private double baseMayor;

private double baseMenor;

private double altura;

private double ancho;

//------------------------------------------------------------------------------------------------

//Constructor

public PrismaTrapecio ( double bmen, double bmay, double alt, double anch ) {

caraInferior = new Trapecio ( bmen, bmay, alt );

caraSuperior = new Trapecio ( bmen, bmay, alt );

setAncho ( anch );

}

//------------------------------------------------------------------------------------------------

//Metodo set del ancho

public void setAncho ( double an ) {

ancho = an;

}

//------------------------------------------------------------------------------------------------

//Metodo set del volumen

public double volumen () {

return areaBase () * ancho;

}

//------------------------------------------------------------------------------------------------

//Metodo que calcula el area de la base

public double areaBase () {

return caraSuperior.area ();

}

//------------------------------------------------------------------------------------------------

//Metodo que calcula el area lateral del prisma

public double areaLateral () {

return caraInferior.perimetro () * ancho;

}

//------------------------------------------------------------------------------------------------

//Metodo que calcula el area total del prisma

public double areaTotal () {

return 2 * areaBase () + areaLateral ();

}

//------------------------------------------------------------------------------------------------

}

Page 13: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 13

Clase PrismaTrapecioApp.java

/*------------------------------------------------------------------------------------------

:* INSTITUTO TECNOLOGICO DE LA LAGUNA

:* INGENIERIA EN SISTEMAS COMPUTACIONALES

:* TOPICOS AVANZADOS DE PROGRAMACION "B"

:*

:* SEMESTRE: ENE-JUN/2013 HORA: 17-18 HRS

:*

:* Clase que hace uso de la clase PrismaTrapecio.java

:*

:* Archivo : PrismaTrapecioApp.java

:* Autor : Eduardo Díaz Salazar 11130036

:* Fecha : 16/Feb/2013

:* Compilador : JAVA J2SE v1.7.0_11

:* Descripción : Esta clase tiene un metodo main que tiene una instancia de la clase

:* PrismaTrapecio.java para calcular el area de las bases, tambien

:* cuenta con metodos para calcular el volumen y area total.

:*------------------------------------------------------------------------------------------*/

import java.util.Scanner;

public class PrismaTrapecioApp {

//-----------------------------------------------------------------------------------------

public static void main ( String [] args ) {

Scanner sc = new Scanner ( System.in );

System.out.println ( "-------------- Prisma Trapecio --------------" );

System.out.print ( "Ingrese la base menor: " );

double bmen = sc.nextDouble ();

System.out.print ( "Ingrese la base mayor: " );

double bmay = sc.nextDouble ();

System.out.print ( " Ingrese la altura: " );

double altu = sc.nextDouble ();

System.out.print ( "Ingrese el ancho: " );

double anch = sc.nextDouble ();

PrismaTrapecio ptra = new PrismaTrapecio ( bmen, bmay, altu, anch );

System.out.println ( "" );

System.out.println ( "El volumen es : " + ptra.volumen () );

System.out.println ( "El area de la base es : " + ptra.areaBase () );

System.out.println ( "El area lateral es : " + ptra.areaLateral () );

System.out.println ( "El area totales : " + ptra.areaTotal () );

}

}

Page 14: P01d- Composicion de Objetos en Java

ITL Tópicos Avanzados de Programación Ene-Jun/2013

Pag. 14

Prueba de Ejecución

Ejercicio 1

Aquí se muestra la prueba del programa, se le pide el radio y la altura, al final se muestra el volumen, area de la base y el area

total.

Ejercicio 2

Se le pide al usuario la base, altura y ancho, y se muestra su volumen area de la base, area de lateral y area total.

Ejercicio 3

Aquí se aprecia que le pieden los datos de base menor, base mayor, altura y ancho del prisma, y se muestra su volumen, area de

la base, area lateral y area total.