Practicas Progra2 2015 1 IngSW
Transcript of Practicas Progra2 2015 1 IngSW
-
7/21/2019 Practicas Progra2 2015 1 IngSW
1/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA 1: Pseudocdio
1. Determinar los atributos y operaciones que pueden ser de inters para los siguientes
objetos, partiendo de la base de que van a ser elementos de un almacn de regalos:
un libro, un disco, una grabadora de video, una cinta de video, un televisor, un radio,
un tostador de pan, un equipo de sonido, una calculadora y un telfono celular
(mvil).
. !rear una clase que describa un rect"ngulo (coordenadas) que se pueda visuali#ar en
la pantalla de la computadora, cambiar de tama$o, modificar su color de fondo y los
colores de los lados.
%. &epresentar una clase ascensor que tenga las funciones usuales de subir, bajar, parar
entre niveles (pisos), alarma, sobrecarga y en cada nivel botones (acciones) de
llamada para subir o bajar.
'. Dibujar diagramas de objetos que representen la jerarqua de objetos del modelo
figura (descripcin en consola).
. Deducir los objetos necesarios para dise$ar un programa de computadora que
permita jugar a diferentes juegos de dados.
*. !onstruir una clase +ersona con las funciones miembro y atributos que crea
oportunos.
. !onstruir una clase para generar n-meros aleatorios.
1
-
7/21/2019 Practicas Progra2 2015 1 IngSW
2/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA !: Lec"u#$ de d$"os
E%e&'(o 1
))C($se Lee#:
import java.io./
'u*(ic c($ss Lee# +
'u*(ic s"$"ic ,oid &$i-%$,$.($-.S"#i-/0 $#s +
00 nserte aqu cdigo para iniciar la aplicacin.
int dato2int34/5ystem.out.print(6I-#ese u- d$"o e-"e#o: 6)/dato2int37eer.datont()/5ystem.out.println(68l numero ingresado fue : 69dato2int)/
))M2"odo d$"oI-" :
public static int datont() ;return nteger.parsent(dato())/
))M2"odo d$"o:
public static 5tring dato() ;5tring sdato366/try;
nput5tream&eader isr 3 ne< nput5tream&eader(5ystem.in)/=uffered&eader flujo8 3 ne< =uffered&eader(isr)/
sdato3flujo8.read7ine()/catc> (?8@ception e);
5ystem.err.println(68&&?&:69e.getAessage())/
return sdato/
3
E%e&'(o!
import java.util.5canner/
public class 7ectura2suma2c5canner ;
public static void main(5tringBC args) ;
5canner entrada3ne< 5canner(5ystem.in)/
int n1,n,suma/
5ystem.out.println(6umeros enteros para sumar6)/
-
7/21/2019 Practicas Progra2 2015 1 IngSW
3/34
5ystem.out.print(6+rimer numero: 6)/
n13entrada.ne@tnt()/
5ystem.out.print(65egundo numero: 6)/
n3entrada.ne@tnt()/
suma3n19n/
5ystem.out.printf(67a suma es Ed Fn6,suma)/
00import java.util.5canner/
import [email protected]
-
7/21/2019 Practicas Progra2 2015 1 IngSW
4/34
color36Jmarillo6/
5ystem.out.println(color)/
color36&ojo6/
5ystem.out.println(color)/
'u*(ic s"$"ic ,oid &$i-S"#i-/0 $#s + c>ar rpta3KsK/
c7u# o7u#3ne< c7u#()/
ile(rpta33KsK);
nput5tream&eader isr3ne< nput5tream&eader(5ystem.in)/
=uffered&eader flujo83ne< =uffered&eader(isr)/
+rint5tream flujo535ystem.out/
try;
o7u#.!ambio()/
flujo5.print(6Desea continuarLs0nM: 6)/
rpta3(c>ar)flujo8.read()/
catc>(?8@ception e);
5ystem.out.println(68rror:69e.getAessage())/
3
3
'
-
7/21/2019 Practicas Progra2 2015 1 IngSW
5/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA 4: O*%e"os8 C($ses8 M2"odos
import [email protected]()
;
Hregorian!alendar fec>aJctual3 ne< Hregorian!alendar()/
dia3fec>aJctual.get(!alendar.DJO2?N2A?PQ)/
mes3fec>aJctual.get(!alendar.A?PQ)91/
a$o3fec>aJctual.get(!alendar.O8J&)/
public void asignarNec>a(int dd);
asignarNec>a()/
dia3dd/
public void asignarNec>a(int dd, int mm);
asignarNec>a()/
dia3dd/ mes3mm/
public void asignarNec>a(int dd, int mm, int aaaa);
dia3dd/ mes3mm/ a$o3aaaa/
-
7/21/2019 Practicas Progra2 2015 1 IngSW
6/34
'u*(ic s"$"ic ,oid &$i-S"#i-/0 $#s +
c+ersona alumno3ne< c+ersona()/
c+ersona profesor3ne< c+ersona()/
5tring tnom2a,tedad2a2s,tnom2p,tedad2p2s,mensaje2n2a,mensaje2e2a/ int tedad2a,tedad2p/
tnom2a3G?ption+ane.s>oooooooo
-
7/21/2019 Practicas Progra2 2015 1 IngSW
7/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA 9: A##e(o de O*%e"os
Dada la clase Jlumno, con los datos: cdigo, nombre, promedio final/ definir un arreglo
de alumnos, para permitir: ingresar y agregar por cdigo cuando ste no e@iste, luego
mostrar los alumnos ingresados. Jl ingresar se debe buscar si el cdigo del alumno
e@iste o no en el arreglo, para poder agregar o no al arreglo. Jl a$adir un elemento, se
actuali#a la longitud del arreglo de objetos, y luego se a$ade el objeto al final.
+edir el n-mero de alumnos para procesar.
A-(isis:
8@isten mtodos para ingresar, agregar por cdigo, mostrar, buscar alumno por cdigo,actuali#ar longitud del arreglo, a$adir un objeto.
C($ses so(uci-:
M2"odo P#i-ci'$(:
00 !rear objeto Jrreglo de alumnos vaco (con cero elementos)
+ara el objeto definido llamar a ingresar()/
+ara el objeto definido llamar a mostrar()/
public class Jlumno ;
5tring codigo/
5tring nombre/
int promediofinal/public Jlumno();
C($se A(u&-o
A"#i*u"os:
codigo
nombre
promediofinal
M2"odos:
Jlumno(R.)
Jsignarombre(R.)
?btenerombre(R)
RRRRRRRR
C($se A##e(oA(u&-os
A"#i*u"os:
JlumnoBC ca
n8lementos
M2"odos: JrregloJlumnos( )
ingresar( )
buscarJlumno(codigo)
agregarporcodigo(Jlumno R.) actuali#arlongitudJrreglo(JlumnoBC R) a$adirobjeto(ndice@, Jlumno R)
mostrar()
-
7/21/2019 Practicas Progra2 2015 1 IngSW
8/34
public Jlumno(5tring cod,5tring nom,int pf);
codigo3cod/
nombre3nom/
promediofinal3pf/
public void set!odigo(5tring cod);codigo3cod/
public void setombre(5tring nom);
nombre3nom/
public void set+romediofinal(int pf);
promediofinal3pf/
public 5tring get!odigo() ;
return codigo/
public 5tring getombre() ;
return nombre/
public int get+romediofinal() ;
return promediofinal/
public class JrregloJlumnos ;
private JlumnoBC ca/ 00Jrreglo de objetos de la clase Jlumno
private int n8lementos/ 00 node elementos del arreglo
public JrregloJlumnos();
n8lementos34/
ca3ne< JlumnoBn8lementosC/ 00!rea un arreglo vaco Jlumno con
00 cero elementos
public boolean buscarJlumno(5tring cod) ;
for(int i34/iL n8lementos/i99);
if(cod.equals(caBiC.get!odigo()))
;5ystem.out.println(6codigo encontrado6)/
return true/
5ystem.out.println(6codigo no encontrado6)/
return false/
private void un8lementoAas(JlumnoBC listaJctual);
n8lementos3 listaJctual.lengt>/
ca3ne< JlumnoBn8lementos91C/
for(int i34/iL n8lementos/i99)
caBiC3listaJctualBiC/ 00 !opiar la lista Jctual
n8lementos99/
public void ponerIalor8n(int i,Jlumno objeto);if(iM34 SS iL n8lementos)
T
-
7/21/2019 Practicas Progra2 2015 1 IngSW
9/34
caBiC3objeto/
else
5ystem.out.println(6ndice fuera de limites6)/
public void agregarporcodigo(Jlumno obj);
un8lementoAas(ca)/ponerIalor8n(n8lementosU1,obj)/
public void ingresar() ;
5tring codigo2i,nombre2i/
int promediofinal2i/
Jlumno at3ne< Jlumno()/
5ystem.out.print(6!odigo: 6)/
codigo2i3+romedioJlumnos.dato()/
5ystem.out.println(6codigo ingresado: 69codigo2i)/
if(VbuscarJlumno(codigo2i));at.set!odigo(codigo2i)/
5ystem.out.print(6ombre: 6)/
nombre2i3+romedioJlumnos.dato()/
at.setombre(nombre2i)/
5ystem.out.print(6+romedio final(entero): 6)/
promediofinal2i3+romedioJlumnos.datont()/
agregarporcodigo(ne< Jlumno(codigo2i,nombre2i,promediofinal2i))/
public void visuali#ar();
5ystem.out.println(6DJP?5 H&85JD?56)/
for(int i34/iL n8lementos/i99);
5ystem.out.print(caBiC.get!odigo()96 69caBiC.getombre()96
69caBiC.get+romediofinal())/
5ystem.out.println()/
import java.io./
public class +romedioJlumnos ; public static int datont();
return nteger.parsent(dato())/
public static 5tring dato();
5tring sdato366/
try;
nput5tream&eader isr3ne< nput5tream&eader(5ystem.in)/
=uffered&eader flujo83ne< =uffered&eader(isr)/
sdato3flujo8.read7ine()/
catc>(?8@ception e); 5ystem.err.println(68&&?&69e.getAessage())/
W
-
7/21/2019 Practicas Progra2 2015 1 IngSW
10/34
return sdato/
public static void main(5tringBC args) ;
int na/ JrregloJlumnos oa3ne< JrregloJlumnos()/
5ystem.out.print(6umero de alumnos: 6)/
na3+romedioJlumnos.datont()/
for(int i34/iLna/i99)
oa.ingresar()/
oa.visuali#ar()/
E;ERCICIO
1. Henerar una lista de telfonos. 7a lista debe ser un objeto que encapsula la matri# de
objetos persona, la clase !+ersona define los atributos privados nombre, direccin,
telfono relativos a una persona, mtodos respectivos que en un men- de opciones
permita: a$adir, eliminar y buscar en una lista.
14
-
7/21/2019 Practicas Progra2 2015 1 IngSW
11/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA a de nacimiento, los mtodos para asignar y mostrar atributos
de la clase. +ermitir a$adir clientes a la clase =anco, considerando que un cliente puede
serlo de un banco o mas de un banco/ adem"s si un objeto banco deja de e@istir, los
clientes persisten.
Aostrar los clientes asignados.
import java.util.Hregorian!alendar/'u*(ic c($ss C(ie-"e +
5tring nombre3null/
5tring dni3null/
Hregorian!alendar fec>aacimiento3null/
public !liente(5tring nom, 5tring doc2i, Hregorian!alendar fn);
nombre3nom/
dni3doc2i/
fec>aacimiento3fn/
public 5tring getombre();
return nombre/
public void setombre(5tring nombre);
t>is.nombre3nombre/
public 5tring getDni();
return dni/
public void setDni(5tring dni);
t>is.dni3dni/
public Hregorian!alendar getNec>aacimiento();
return fec>aacimiento/
public void setNec>aacimiento(Hregorian!alendar fec>aacimiento);
t>is.fec>aacimiento3fec>aacimiento/
X?verride
public 5tring to5tring();
return t>is.getombre()96Ft69t>is.getDni()
96Ft69t>is.getNec>aacimiento().getPime()/
3
11
-
7/21/2019 Practicas Progra2 2015 1 IngSW
12/34
import java.util.Jrray7ist/
'u*(ic c($ss =$-co +
5tring nombre3null/
5tring direccion3null/
Jrray7istL!lienteM clientes3 null/00?bjeto clientes del tipo !liente
00 Jrray7ist: clase que contendra 00 lista de objetos !liente
public =anco(5tring nom, 5tring direc);
nombre3nom/
direccion3direc/
t>is.clientes3ne< Jrray7istL!lienteM()/
public 5tring getombre();
return nombre/
public void setombre(5tring nombre);
t>is.nombre3nombre/
public void agregar!liente(!liente cliente);
t>is.clientes.add(cliente)/
public Jrray7istL!lienteM ?btener!lientes();
return t>is.clientes/
3
import java.util.Hregorian!alendar/
import java.util.terator/
'u*(ic c($ss P#ue*$ +
public static void main(5tringBC args) ;
=anco banco13ne< =anco(6=anco16, 6!>ina6)/
=anco banco3ne< =anco(6=anco6, 6+eru6)/ !liente clie13ne< !liente(6Aiguel6,64144%4'6,ne< Hregorian!alendar(1W4,%,*))/ !liente clie3ne< !liente(6&osa6,61144%4'6,ne< Hregorian!alendar(1WT4,,1*))/ !liente clie%3ne< !liente(6sergio6,6444%4'6,ne< Hregorian!alendar(1WW4,,1))/
00Jgregando clientes al =anco
banco1.agregar!liente(clie1)/
banco1.agregar!liente(clie)/
banco.agregar!liente(clie1)/
banco.agregar!liente(clie%)/
00mprimir los clientes
5ystem.out.println(6=anco: 69banco1.getombre())/
terator it3banco1.?btener!lientes().iterator()/
ile(it.>ase@t()); 00 seguidamente otro del mismo iterador
!liente obj3 (!liente) it.ne@t()/ 5ystem.out.println(obj.to5tring())/
1
-
7/21/2019 Practicas Progra2 2015 1 IngSW
13/34
5ystem.out.println(6=anco: 69banco.getombre())/
it3banco.?btener!lientes().iterator()/
ile(it.>ase@t()); 00 seguidamente otro del mismo iterador
!liente obj3 (!liente) it.ne@t()/ 5ystem.out.println(obj.to5tring())/
3
1%
-
7/21/2019 Practicas Progra2 2015 1 IngSW
14/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
ALGORITMICA II
PRACTICA >: Ge-e#$(i7$ci- ? Es'eci$(i7$ci- @e#e-ci$ E%e&'(o 1
5ea la clase C$(cu($do#$=$seuna clase base con los mtodos suma y resta para dos
n-meros enteros y reales, adem"s la clase C$(cu($do#$1 subclase o clase derivada que
>ereda los mtodos de C$(cu($do#$=$se. C$(cu($do#$1 implementa los mtodos
factorial y es+rimo. !onsiderar mtodos sobrecargados.
+ara una instancia de la clase C$(cu($do#$1, >allar la suma dados dos n-meros enteros,
la resta, factorial de cada uno de ellos, y decir si cada uno de los n-meros dados es
primo o no.
C$(cu($do#$=$se
public int suma(int n1, int n)
public float suma(float n1, float n)
public int resta(int n1, int n)
public float resta(float n1, float n)
C$(cu($do#$1
public int factorial(int n)
public long factorial(long n)
public boolean es+rimo(int n)
public boolean es+rimo(long n)
'u*(ic c($ss C$(cu($do#$=$se +
public int suma(int n1,int n);
int rpta3n19n/
return rpta/
public float suma(float n1,float n);
float rpta3n19n/
return rpta/
public int resta(int n1,int n);
1'
-
7/21/2019 Practicas Progra2 2015 1 IngSW
15/34
int rpta3n1Un/
return rpta/
public float resta(float n1,float n);
float rpta3n1Un/
return rpta/
3
'u*(ic c($ss C$(cu($do#$1 eB"e-ds C$(cu($do#$=$se +
public int factorial(int n);
int f31/
ile(nM1);
f3fn/n3nU1/
return f/
public long factorial(long n);
long f31/
ile(nM1);
f3fnUU/
return f/
public boolean es+rimo(int n);
boolean primo3true/
int Y31/
ile(99YLn);
if(nEY334);
primo3false/
breaY/
return primo/
public boolean es+rimo(long n);
boolean primo3true/
int Y31/ ile(99YLn);
if(nEY334);
primo3false/
breaY/
return primo/
3
1
-
7/21/2019 Practicas Progra2 2015 1 IngSW
16/34
'u*(ic c($ss P#ue*$c$(cu($do#$ +
'u*(ic s"$"ic ,oid &$i-S"#i-/0 $#s +
int n13, n31/
boolean r/
!alculadora1 obj3ne< !alculadora1()/ int suma3obj.suma(n1,n)/
int resta3obj.resta(n1,n)/
int f13obj.factorial(n1)/
int f3obj.factorial(n)/
5ystem.out.println(67a suma es:69suma)/
5ystem.out.println(67a resta es:69resta)/
5ystem.out.println(6Nactorial de: 69n196 es :69f1)/
5ystem.out.println(6Nactorial de: 69n96 es :69f)/
r3obj.es+rimo(n1)/
if(r33true) 5ystem.out.println(n196 es primo6)/
else
5ystem.out.println(n196 no es primo6)/
r3obj.es+rimo(n)/
if(r33true)
5ystem.out.println(n96 es primo6)/
else
5ystem.out.println(n96 no es primo6)/
3
3
1*
-
7/21/2019 Practicas Progra2 2015 1 IngSW
17/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA >: @e#e-ci$ E%e&'(o !
EmpleadoPorComision
nombre
ventasBrutas
tarifaporComision
EmpleadoBaseMasComision
salarioBase
public class 8mpleado+or!omision ;
protected 5tring nombre/
protected double ventas=rutas/
protected double tarifapor!omision/
public 8mpleado+or!omision(5tring nom,double ventas, double tarifa);
nombre3nom/
ventas=rutas3ventas/
tarifapor!omision3tarifa/
protected 5tring obtenerombre();
return nombre/
protected double obtenerIentas=rutas();
return ventas=rutas/
protected double obtenerParifa+or!omision();
return tarifapor!omision/
public class 8mpleado=aseAas!omision e@tends 8mpleado+or!omision ;
private double salariobase/
public 8mpleado=aseAas!omision(5tring nombre, double ventas, double tarifa,
double salario); super(nombre, ventas, tarifa)/
1
-
7/21/2019 Practicas Progra2 2015 1 IngSW
18/34
salariobase3salario/
public double obtener5alario=ase();
return salariobase/
public class +rueba8mpleado=aseAas!omision ;
public static void main(5tringBC args) ;
8mpleado=aseAas!omision empleado3ne< 8mpleado=aseAas!omision(6Denisse
Najardo6,1444,%,44)/
5ystem.out.println(6Fn nformacion del empleaco: Fn6)/
5ystem.out.println(6Fn ombre: 69empleado.obtenerombre())/
5ystem.out.println(6Fn Ientas brutas: 69empleado.obtenerIentas=rutas())/ 5ystem.out.println(6FnParifa por comision: 69empleado.obtenerParifa+or!omision())/ 5ystem.out.println(6Fn 5alario base: 69empleado.obtener5alario=ase())/
1T
-
7/21/2019 Practicas Progra2 2015 1 IngSW
19/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA : C($se $*s"#$c"$ Po(i&o#is&o P$#"e I
Dada la clase Nigura con atributos: @, y, referente a un punto, y, las clases !rculo,
&ect"ngulo, >allar la figura de mayor "rea, independiente de su forma, y los valores de
sus par"metros.
!rear un arreglo de la clase figura para cuatro elementos, y guardar en sus elementos los
valores devueltos por -e al crear objetos de las clases derivadas.
Circulo
double radio
double area()
Rectangulo
double largo
double ancho
double area()
iFigura
main()
Figura
int xint y
abstract double area()
figuraMayor()
'u*(ic $*s"#$c" c($ss Fiu#$ +
protected int @,y/
public Nigura(int @,int y);
t>is.@3@/
t>is.y3y/
public abstract double area()/3
'u*(ic c($ss Ci#cu(o eB"e-ds Fiu#$+
protected double radio/
public !irculo(int @, int y, double radio);
super(@,y)/
t>is.radio3radio/
public double area();
return Aat>.+radioradio/
3
1W
-
7/21/2019 Practicas Progra2 2015 1 IngSW
20/34
'u*(ic c($ss Rec"$-u(o eB"e-ds Fiu#$+
protected double largo,anc>o/
public &ectangulo(int @,int y, double largo, double anc>o);
super(@,y)/
t>is.largo3largo/
t>is.anc>o3anc>o/
public double area();
return largoanc>o/
3
'u*(ic c($ss iFiu#$ +
'u*(ic s"$"ic ,oid &$i-S"#i-/0 $#s +
NiguraBC fig3ne< NiguraB'C/
figB4C3ne< !irculo(4,4,.4)/
figB1C3ne< !irculo(4,4,.4)/ figBC3ne< &ectangulo(4,4,.4,.4)/
figB%C3ne< &ectangulo(4,4,'.4,*.4)/
Nigura fAayor3figuraAayor(fig,')/
5ystem.out.println(6Fn 7a figura de mayor area es: 69fAayor.area())/
3
public static Nigura figuraAayor(Nigura figBC,int n);
Nigura mNigura3null/
double areaAayor34.4/
for(int i34/iLn/i99);
if(figBiC.area()MareaAayor);
areaAayor3figBiC.area()/
mNigura3figBiC/
return mNigura/
3
4
-
7/21/2019 Practicas Progra2 2015 1 IngSW
21/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA : Po(i&o#is&o P$#"e II
Dada una clase base 8mpleado, y sus clases derivadas: 8mpleado+or!omision,
8mpleadopoQoras, donde cada subclase proporciona implementacin del mtodo:
calcular+ago().
8mpleado+orQora, calcula multiplicando las >oras trabajadas por el precio por >ora.
8mpleado+or!omision, se calcula, con un salario base m"s un bono por cada unidad
vendida.
!ada subclase agrega algunos mtodos propios.
'u*(ic $*s"#$c" c($ss E&'(e$do + private 5tring nombre/
private 5tring apellido/
private double salario/
public 8mpleado(5tring nombre, 5tring apellido, double salario);
t>is.nombre3nombre/
t>is.apellido3apellido/
t>is.salario3salario/
public double get5alario();
return salario/
public 5tring getombre();
return nombre/
public 5tring getJpellido();
return apellido/
public abstract double calcular+ago()/
public void imprimir&ecibo();
5ystem.out.println(6+ago: 69apellido96, 69nombre96 50.69calcular+ago())/
3
'u*(ic c($ss E&'(e$doPo#Co&isio- eB"e-ds E&'(e$do+
private double comision/ 00 bono por unidad vendida
private int unidades/ 00 Z de unidades vendidas
public 8mpleado+or!omision(5tring nombre, 5tring apellido, double salario, double
comision);
super(nombre,apellido,salario)/
t>is.comision3comision/
1
-
7/21/2019 Practicas Progra2 2015 1 IngSW
22/34
public void sumarventas(int unidades);
00t>is.unidades3unidades/
t>is.unidades3t>is.unidades9unidades/
public int getIentas();
return unidades/
public double calcular+ago();
return get5alario()9(comisionunidades)/
3
'u*(ic c($ss E&'(e$doPo#@o#$s eB"e-ds E&'(e$do+
private int >oras/ 00 Z de >oras trabajadas
public 8mpleado+orQoras(5tring nombre, 5tring apellido, double salario);
super(nombre,apellido,salario)/
public void sumarQoras(int >oras);
t>is.>oras3t>is.>oras9>oras/
public int getQoras();
return >oras/
public double calcular+ago();
return get5alario()>oras/
3
'u*(ic c($ss No&i-$ +
private int >oras2totales/
private int ventas2totales/
private double pago2total/
public void registrarnfo8mpleado(8mpleado+or!omision emp);
ventas2totales3ventas2totales9emp.getIentas()/
public void registrarnfo8mpleado(8mpleado+orQoras emp);
>oras2totales3>oras2totales9emp.getQoras()/
public void pagar8mpleados(8mpleadoBC emps);
for(int i34/iLemps.lengt>/i99);
8mpleado emp3empsBiC/
pago2total3pago2total9emp.calcular+ago()/
emp.imprimir&ecibo()/
3
'u*(ic c($ss Co-"#o($do#No&i-$ +
'u*(ic s"$"ic ,oid &$i-S"#i-/0 $#s +
-
7/21/2019 Practicas Progra2 2015 1 IngSW
23/34
00 !rear un sistema de nomina
omina nomina3ne< omina()/
00 !rear y actuali#ar algunos empleados
8mpleado+or!omision emp13ne< 8mpleado+or!omision(6[rias6,65otelo6,44.44,14)/ 8mpleado+or!omision emp3ne< 8mpleado+or!omision(6=etsabe6,6Hamarra6,'44.44,)/
emp1.sumarventas()/
emp.sumarventas()/
8mpleado+orQoras emp%3ne< 8mpleado+orQoras(6Goab6,6Hrados6,.4)/
8mpleado+orQoras emp'3ne< 8mpleado+orQoras(68lvira6,6&omero6,.44)/
emp%.sumarQoras('4)/
emp'.sumarQoras(')/
00 [tili#ar metodos sobrecargados
nomina.registrarnfo8mpleado(emp1)/
nomina.registrarnfo8mpleado(emp)/
nomina.registrarnfo8mpleado(emp%)/
nomina.registrarnfo8mpleado(emp')/
00 Guntar los empleados en un arreglo
8mpleadoBC emps3ne< 8mpleadoB'C/
empsB4C3emp1/ empsB1C3emp/
empsBC3emp%/ empsB%C3emp'/
nomina.pagar8mpleados(emps)/
3
Jl considerar el mtodo '$$#E&'(e$dosE&'(e$do/0 e&'s8 es un ejemplo de
'o(i&o#is&o de i-c(usi-, el mtodo funciona para cualquier empleado: por comisin,
o, empleado por >oras.
7os mtodos:
#eis"#$#I-oE&'(e$doE&'(e$doPo#Co&isio- e&'
#eis"#$#I-oE&'(e$doE&'(e$doPo#@o#$s e&'
son ejemplos de so*#ec$#$o 'o(i&o#is&o $doc.
5555555555555555555555555555555555555555555555555555555555
E;ERCICIO
Po(i&o#is&o C($se $*s"#$c"$ I-"e#$7
Dada un clase =$-coque define una matri# de referencias a objetos de tipo cuenta bancaria
(clase Cue-"$). Cue-"$ una clase abstracta con los atributos: nombre, cuenta, saldo, tipo de
inters/ y los mtodos: estado, que devuelve el saldo de la cuenta, comisiones, mtodo abstractosin par"metros que ser" redefinido en las subclases, que incluye a dos clases derivadas:
%
-
7/21/2019 Practicas Progra2 2015 1 IngSW
24/34
CCue-"$Ao##ocon el atributo cuota de mantenimiento/ y la clase CCue-"$Co##ie-"econ los
atributos: transacciones, importe por transacciones, transacciones e@entas/ y, a la ve#
CCue-"$Co##ie-"e es clase base de CCue-"$Co##ie-"eCo-I- (!uenta corriente con
intereses).
8n una clase Tes"definir un men- de opciones que permita:
1. 5aldo
. =uscar siguiente
%. ngreso
'. &eintegro 00 ngreso
. J$adir
*. 8liminar
. Aantenimiento
T. 5alir
5eleccione opcin:
'
-
7/21/2019 Practicas Progra2 2015 1 IngSW
25/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA H: I-"e#$7 G#ic$ de Usu$#io G#$'ic$( Use# I-"e#$ce GUI
E%e&'(o:
Iaca, cerdo son animales que tienen peso y no >ablan pero si dicen algo o rumian es el
caso de la vaca (muu), o gru$e, caso del cerdo (oinc). !rear una instancia de vaca por
ejemplo daisy, una instancia de cerdo por ejemplo porYy. [sando polimorfismo
redefinir un mtodo para que al seleccionar un animal de los indicados se diga algo de
uno de ellos
pacYage paquete1/
public abstract class Jnimal ;
public abstract 5tring dice()/
pacYage paquete1/
public class Iaca ;public 5tring dice();
-
7/21/2019 Practicas Progra2 2015 1 IngSW
26/34
return 6Iaca dice: Auu6/
import paquete1.Iaca/
'u*(ic c($ss 'o(i&o#is&ouGUI eB"e-ds %$,$B.si-.;F#$&e +
public polimorfismouH[() ;
init!omponents()/
private void j!ombo=o@1tem5tate!>anged(java.a
-
7/21/2019 Practicas Progra2 2015 1 IngSW
27/34
[I8&5DJD J!?J7 AJO?& D8 5J AJ&!?5
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA : C($ses Ge-2#ic$s
!lases con variables o par"metros que representan "i'os.
+or ejemplo, dada una clase genrica P$# que permita establecer un tipo T8para manejar enteros
y caracteres, y luego a travs de un mtodo intercambiar los valores, para luego presentar
intercambiado los valores en el programa principal.
'u*(ic c($ss P$# JTK+
private P a, b/
public +ar(P a, P b);t>is.a 3 a/
t>is.b 3 b/
public void setJ(P a);t>is.a3a/
public P getJ();return a/
public void set=(P b);t>is.b3b/
public P get=();return b/
public +arLPM s
-
7/21/2019 Practicas Progra2 2015 1 IngSW
28/34
+rint5tream flujo535ystem.out/
try;
flujo5.print(6+rimer caracterLletraM: 6)/
ca3(c>ar)flujo8.read()/
flujo8.read7ine()/ 007impiar caracteres: FrFn
flujo5.print(65egundo caracterLletraM: 6)/ cb3(c>ar)flujo8.read()/
flujo8.read7ine()/ 007impiar caracteres: FrFn
catc>(?8@ception e);
5ystem.out.println(68rror:69e.getAessage())/
00 nstanciacin de la clase genrica para !>aracter(!aracteres)
00+arL!>aracterM p1 3 ne< +arL!>aracterM(KaK,KbK)/
+arL!>aracterM p1 3 ne< +arL!>aracterM(ca,cb)/
S?s"e&.ou".'#i-"(-P$# de $#$c"e#es8 $-"es de( c$&*io: c$'1.e"A c*'1.e"=6 p13p1.s
-
7/21/2019 Practicas Progra2 2015 1 IngSW
29/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS
E.A.P. INGENIERIA DE SOFTWARE
PROGRAMACION II
PRACTICA 1: EBce'cio-es "i'o A#i"&e"icEBce'"io- e I-'u"Mis&$"cEBce'"io-
Dados dos n-meros enteros , >allar el cociente de dic>os n-meros. De ocurrir alg-n error
aritmtico, como por ejemplo divisin por cero, o, que las entradas no sean del mismo tipo es
decir no sean n-meros los datos de entrada, se debe en ambos casos atrapar y manejar la
e@cepcin, y permitir que el usuario ingrese los datos otra ve#.
import java.util.nputAismatc>8@ception/
import java.util.5canner/
'u*(ic c($ss Di,E-"#eCe#oCo-ME +
public static int cociente(int numerador, int denominador) t>rometic8@ception,
nputAismatc>8@ception
;
return numerador0denominador/
'u*(ic s"$"ic ,oid &$i-S"#i-/0 $#s + 5canner numero3ne< 5canner(5ystem.in)/
boolean continuar3true/
do;
try;
5ystem.out.println(6Dos enteros para >allar cociente6)/ 5ystem.out.print(6umerador entero: 6)/
int numerador3numero.ne@tnt()/
5ystem.out.print(6Denominador entero: 6)/
int denominador3numero.ne@tnt()/
int resultado3cociente(numerador,denominador)/
5ystem.out.printf(6Fn !ociente: Ed0Ed 3 EdFn6,numerador,denominador,resultado)/
continuar3false/
catc>(Jrit>metic8@ception arit>metic8@ception);
5ystem.err.printf(6Fn 8@cepcion: EsFn6, arit>metic8@ception)/
5ystem.out.println(6!ero es un denominador invalido. ntente de nuevo6)/
catc>(nputAismatc>8@ception inputAismatc>8@ception);
5ystem.err.printf(6Fn 8@cepcion: EsFn6,inputAismatc>8@ception)/
numero.ne@t7ine()/00descartar entrada para ingresar de nuevo
5ystem.out.println(6Debe ingresar enteros. ntente de nuevoFn6)/
ile(continuar)/
3
3
W
-
7/21/2019 Practicas Progra2 2015 1 IngSW
30/34
EBce'cio-es '#o'i$s E%e&'(o
5e conoce la longitud de los tres lados enteros de un tri"ngulo, el "rea puede calcularse
de la siguiente manera:
area 3 Aat>.sqrt(s(sUa)(sUb)(sUc))/donde: s3(a9b9c)0
8n un programa elabore un mtodo para calcular y devolver el "rea/ permita que lance
una e@cepcin cuando las tres longitudes no puedan formar un tri"ngulo. Desarrolle un
mtodo invocador que atrape la e@cepcin.
import java.util.nputAismatc>8@ception/
import java.util.5canner/
class !uando%7nofP e@tends 8@ception;
'u*(ic c($ss EBce'cio-Cu$-do4L-oT +
public static double area(double l1,double l, double l%) t>ro8@ception;
double s,carea/
if(l1Ll9l% SS lLl19l% SS l%Ll19l);
s3(l19l9l%)0/
carea3Aat>.sqrt(s(sUl1)(sUl)(sUl%))/
return carea/
else
t>ro< ne< !uando%7nofP()/
'u*(ic s"$"ic ,oid &$i-S"#i-/0 $#s "#os EBce'"io-+
5canner lado3ne< 5canner(5ystem.in)/
double resultado34/
try;
5ystem.out.println(6Pres lados enteros de un triangulo para >allar area:6)/
5ystem.out.println(6Fn 1er lado: 6)/
double lado13lado.ne@tDouble()/
5ystem.out.println(6Fn do lado: 6)/
double lado3lado.ne@tDouble()/
5ystem.out.println(6Fn %er lado: 6)/
double lado%3lado.ne@tDouble()/ resultado 3 area(lado1, lado, lado%)/
5ystem.out.println(68l area es:69resultado)/
catc>(!uando%7nofP e);
5ystem.err.println(68&&?&: los tres lados no forman un triangulo6)/
catc>(nputAismatc>8@ception inputAismatc>8@ception);
5ystem.err.printf(6Fn 8@cepcion: EsFn6,inputAismatc>8@ception)/
5ystem.out.println(6Debe ingresar numeros enteros. ntente de nuevoFn6)/
33
%4
-
7/21/2019 Practicas Progra2 2015 1 IngSW
31/34
E%e#cicios:
1. +rograma que permita el ingreso de una cadena mediante un campo de te@to,
representando una fec>a de la forma AA0DD0JJ (8j. @@0yy0##). [sar la clase
5tringPoYeni#er para dividirla y producir un mensaje de error si un elemento no es
numrico, si no se encuentra o si se especifica una fec>a no correcta. gnorar losa$os bisiestos.
. [sar >erencia para crear una superclase de e@cepcin (lamada 8@cepcionJ) y las
subclases de e@cepcin 8@cepcion= y 8@cepcion!, en donde 8@cepcion= >ereda de
8@cepcionJ y 8@cepcion! >ereda de 8@cepcion=. +rograma para demostrar que el
bloque matc> para el tipo 8@cepcionJ atrapa e@cepciones de los tipos 8@cepcion= y
8@cepcion!.
5555555555555555555555555555555555555555555555555555555555555555555555
%1
-
7/21/2019 Practicas Progra2 2015 1 IngSW
32/34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
FACULTAD DE INGENIERIA DE SISTEMAS E
INFORMATICAE.A.P INGENIERIA DE SOFTWARE
Gua Prctica de Programacin II
Programas en Java
Circulo
double radio
double area()
Rectangulo
double largo
double ancho
double area()
iFigura
main()
Figura
int x
int y
abstract double area()
figuraMayor()
uis !uerra !rados
ima" Mar#o $%&'
%
-
7/21/2019 Practicas Progra2 2015 1 IngSW
33/34
INDICE
P.
1. 8jemplos. +seudo cdigo RRR...................................................................... 1
. 7ectura de datos RRR...RRR.RRRRRRRRRRRRRRRR..
%. ?bjetos, clases, mtodos RR... .RRRRRRRRRRRRRRRRR
'. Jrreglo de objetos RRRRRRRR.RRRRRRRRRRRRRRR.
. Jgregacin RRRR...RRRRRRRRRRRRRRRRRRRR. 11
*. Henerali#acin y 8speciali#acin RR.RRRRRRRRRRR.RRR. 1'
. !lase abstracta ] +olimorfismo(+arte ) ..RRRRRRRRRRR.RRR 1W
T. H[ RRRRRRRRRRR.RRRRRRRRRRRRRR.RRR
W. !lases Henricas RRRRRRRRRRRRRRRRRRRRRR.R.
14. 8@cepciones RR..RRRRRRRRRRRRRRRRRRRR..RR.. W
%%
-
7/21/2019 Practicas Progra2 2015 1 IngSW
34/34
REFERENCIAS
1. Goyanes, 7uis/ ^a>onero, 7uis. +rogramacin en !, !99, Gava y [A7. 414.
8dit. Ac Hra< Qill. A@ico.
. Deitel S Deitel. Gava como programar. 44T. 8dit. +earson +rentice Qall.
A@ico.
%. Nrancisco, Gavier !eballos. Gava . !urso de +rogramacin. 444 . 8dit. Jlfa
?mega &aUma. 8spa$a.
'. Douglas =ell, AiYe +arr. Gava para estudiantes. 44%. 8dit. +earson.
. G>on uYottp:00