Practicas Progra2 2015 1 IngSW

download Practicas Progra2 2015 1 IngSW

of 34

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