Вы находитесь на странице: 1из 14

Instituto Tecnolgico de la Laguna

Ingeniera en Sistemas Computacionales


TOPICOS AVANZADOS DE PROGRAMACION

SEMESTRE:

Ene - Jun / 2013

GRUPO: B 17 18 Hrs

UNIDAD:

PRACTICA No.: 1d

COMPOSICION DE OBJETOS EN JAVA


ALUMNO:
11130036 Eduardo Daz Salazar

PROFESOR:
Ing. Luis Fernando Gil Vzquez

Torren, Coah. a 16 de

Febrero de 2013

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

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 informacin de su volumen, el rea de su base, su rea lateral y su rea total. Desarrollar una aplicacin de consola
Java que solicite al usuario los datos del Cilindro e imprima la informacin del mismo.

Ejercicio 2
Desarrollar una clase Java que modele un prisma triangular caracterizado por una base en forma de Triangulo Rectngulo. La
clase debe proporcionar informacin de su volumen, el rea de su base, su rea lateral y su rea total. Desarrollar una aplicacin
de consola Java que solicite al usuario los datos del Prisma Triangular e imprima la informacin del mismo.

Ejercicio 3
Disear una clase Java que modele un prisma recto con base en forma de trapecio isoceles. La clase debe proporcionar
informacin de su volumen, el rea de su base, su rea lateral y su rea total. Desarrollar una aplicacin de consola Java que
solicite al usuario los datos del Prisma Trapezoidal e imprima la informacin del mismo.

Pag. 2

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

Anlisis
Ejercicio 1
Para la solucin 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 parmetro el radio y la altura del cilindro, utilizara los mtodos
volumen() arealateral() y areaTotal() y unos mtodos set/get que asigna y regresa el valor al radio. La clase CilindroApp utiliza la
clase Cilindro para mostrar los valores de sus mtodos.

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 parmetros, la base, la altura y el ancho del prisma. Proporcionar mtodos
para calcular su volumen y reas-

Ejercicio 3
Reutilizaremos la clase Trapecio para la solucin de este problema, pero implementaremos 2 clases ms 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 mtodos 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 volmenes.

Diseo
Ejercicio 1
CilindroApp

+ Main ( string [] args)

Clindro
radio
: doubl
altura
:doubl
baseSuperior
:Circulo
baseInferior
:Circulo

+ Cilindro ( doubl r, doubl h)


+ volumen()
+ areaBase()
+ areaLateral ()
+ areaTotal()
+ getInfo()

:double
:double
:doubl
:double

Pag. 3

ITL

Tpicos Avanzados de Programacin

PrismaTriangular

Ejercicio 2
PrismaTriangularApp

Ene-Jun/2013

baseInferior
baseSuperio
ancho

: TrianguloRec
: TrianguloRec
: double

+ Main ( string [] args)


+PrismaTriangular ( double b, double h, doubl h )
+ volumen()
:double
+ areaBase()
:double
+ areaLateral()
:double
+ reaTotal()
:doubl
+ setAncho(doubl an)

Ejercicio 3
PrismaTrapecioApp

PrismaTrapecio
-

caraInferior
caraSuperior
ancho

:Trapecio
:Tapecio
:double

+ Main ( string [] args)


+ PrismaTrapecio ( double b, double B, double a )
+ volumen()
:double
+ areaBase()
:double
+ areaLateral()
:double
+ areaTotal()
:double
+ setAncho( double an ) :double

Cdigo
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 Daz Salazar
11130036
:* Fecha
: 15/Feb/2013
:* Compilador : JAVA J2SE v1.7.0_11
:* Descripcin : 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.
:*
:*------------------------------------------------------------------------------------------*/
Pag. 4

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

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;
}
}

Pag. 5

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

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 Daz Salazar
11130036
:* Fecha
: 16/Feb/2013
:* Compilador : JAVA J2SE v1.7.0_11
:* Descripcin : 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
private
private
private

double radio;
double altura;
Circulo baseSuperior;
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 ();
}
//---------------------------------------------------------------------------------------------------------

Pag. 6

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

// 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 Daz Salazar
11130036
:* Fecha
: 15/Feb/2013
:* Compilador : JAVA J2SE v1.7.0_11
:* Descripcin : 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
System.out.println
System.out.println

(
(
(
(

"" );
"El area
: " + cir.area () );
"La circunferencia es : " + cir.circunferencia () );
"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 Daz Salazar
11130036
:* Fecha
: 15/Feb/2013
:* Compilador : JAVA J2SE v1.7.0_11
:* Descripcin : En esta clase tiene de atributos base y altura, los cuales usa para
:*
calcular el area, hipotenusa y perimetro del triangulo rectangulo.
:*
:*
:*------------------------------------------------------------------------------------------*/

Pag. 7

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

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 ) );
}
//----------------------------------------------------------------------------------------------}

Pag. 8

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

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 Daz Salazar
11130036
:* Fecha
: 16/Feb/2013
:* Compilador : JAVA J2SE v1.7.0_11
:* Descripcin : 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 ();
}

}
Pag. 9

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

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 Daz Salazar
11130036
:* Fecha
: 16/Feb/2013
:* Compilador : JAVA J2SE v1.7.0_11
:* Descripcin : 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
System.out.println
System.out.println
System.out.println

(
(
(
(
(

"" );
"El volumen es
: " + pri.volumen () );
"El area de la base es : " + pri.areaBase () );
"El area lateral es
: " + pri.areaLateral () );
"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 Daz Salazar
11130036
:* Fecha
: 15/Feb/2013
:* Compilador : JAVA J2SE v1.7.0_11
:* Descripcin : 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;
//-----------------------------------------------------------------------------------------Pag. 10

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

//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 Daz Salazar
11130036
:* Fecha
: 16/Feb/2013
:* Compilador : JAVA J2SE v1.7.0_11
:* Descripcin : 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.
:*------------------------------------------------------------------------------------------*/

Pag. 11

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

public class PrismaTrapecio {


//-----------------------------------------------------------------------------------------------//Atributos
private
private
private
private
private
private

Trapecio caraInferior;
Trapecio caraSuperior;
double baseMayor;
double baseMenor;
double altura;
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 ();
}
//------------------------------------------------------------------------------------------------

Pag. 12

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

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 Daz Salazar
11130036
:* Fecha
: 16/Feb/2013
:* Compilador : JAVA J2SE v1.7.0_11
:* Descripcin : 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
System.out.println
System.out.println
System.out.println

(
(
(
(
(

"" );
"El volumen es
: "
"El area de la base es : "
"El area lateral es
: "
"El area totales
: "

+
+
+
+

ptra.volumen () );
ptra.areaBase () );
ptra.areaLateral () );
ptra.areaTotal () );

}
}

Pag. 13

ITL

Tpicos Avanzados de Programacin

Ene-Jun/2013

Prueba de Ejecucin
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.

Pag. 14

Вам также может понравиться