Guia D de Laboratorio

download Guia D de Laboratorio

of 22

Transcript of Guia D de Laboratorio

  • 8/18/2019 Guia D de Laboratorio

    1/22

    Universidad Nacional Mayor de San MarcosFacultad de Ingeniería de Sistemas e Informática

    E.A.P. de Ingeniería de Sistemas

    Algorítmica II

    GUIA !" !E #A$%&A'%&I%&E#A(I%NES EN'&E (#ASES

    (%MP%SI(I%N ) AG&EGA(I%N * AS%(IA(I%N

    %+,etivo-Aplicar los conceptos de la Programación Orientada a Objetos.Aplicar las definiciones de Relaciones entre clases.

    !escrici/n-A continuación se presentan varias clases. Cada clase contiene métodos de tipo SET

    !ET" métodos operacionales. #os métodos operacionales son métodos $ueimplementan las operaciones ó %&'(C)O(A#)*A*ES+ del objeto.

    En esta gu,a de #aboratorio se va a trabajar con las clases Alumno" Profesor"Arreglo*eAlumno" Arreglo*eProfesor" -atricula. El objetivo es comprender como serelacionan estas clases. El alumno debe encontrar el mecanismo $ue utilian lasclases para el envió de datos/ as, como las referencias entre objetos. Al finaliaresta gu,a" cada alumno comprender0 cuando" donde" como  or 0ue  seinstancian objetos.

    Recordar $ue nos encontramos en un entorno Orientado a Objetos. Eso $uiere decir$ue cada clase tiene atributos métodos %PROP)OS+ de su correspondiente objeto

    real. Se pide analiar el código desarrollado" e implementar todas lasfuncionalidades.

    (lase Alumno"A continuación se presenta la clase Alumno" $ue define los atributos métodos m0simportantes de un objeto real Alumno" obtenidos mediante el proceso de laA1STRACC)2(.

    Por ejemplo3 el Alumno 4uan Pere Pere

    (/digo A#'566Nom+re 4'A( PERE7 PERE7

    #a clase Alumno implementa un método constructor por defecto" un métodoconstructor COP)A" varios métodos de tipo SET !ET" un método llamado

     8devolver*atosAlumno9:; al método 8toString9:;. Es importante recalcar $ue laclase Alumno declara un arreglo de objetos de tipo Profesor 8Profesor POS PRO&ESORES. Por ello" se ?a implementado @ métodosrelacionados a este propósito3 95: setProfesor9Profesor prof: 9@: getProfesor9intindice:

    Pasos a seguir 1-

  • 8/18/2019 Guia D de Laboratorio

    2/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    5. Escribir el siguiente código 4ava" utiliando un Entorno de *esarrollo)ntegrado.

    @. !enerar el arc?ivo %Alumno.class+ 9Proceso de Compilación:

    Nota-#as clases utilian los métodos de la clase 1ase.java" $ue se encuentra en elpa$uete (lases$ase"

    La clase Alumno

    package Matricula;

    import java!s"ing!#$ption%ane;

    public class Alumno &private 'tring codigo;private 'tring nombre;private %ro(esor %)*;private int indice%ro(esor;

    public Alumno+, &t-is!codigo . /A0123/;t-is!nombre . /%ere4 Lope45 #uan/;t-is!% . ne" %ro(esor)6*;t-is!indice%ro(esor . 7;

    8

    public Alumno+Alumno ot-er, &i(+t-is 9. ot-er, &

    t-is!codigo . ot-er!codigo;t-is!nombre . ot-er!nombre;t-is!% . ot-er!%;t-is!indice%ro(esor . ot-er!indice%ro(esor;

    88

    public void set:odigo+'tring codigo, &t-is!codigo . codigo;

    8

    public void setombre+'tring nombre, &t-is!nombre . nombre;

    8

    public void set%ro(esores+%ro(esor)* %, &t-is!% . %;

    8

    public void setIndice%ro(esor+int indice%ro(esor, &t-is!indice%ro(esor . indice%ro(esor;

    8

    public 'tring get:odigo+, &

    return +t-is!codigo,;8

    %ro(! Arerrera %onte %?g! 1

  • 8/18/2019 Guia D de Laboratorio

    3/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    public 'tring getombre+, &return +t-is!nombre,;

    8

    public %ro(esor)* get%ro(esores+, &return +t-is!%,;

    8

    public int getIndice%ro(esor+, &return +t-is!indice%ro(esor,;

    8

    public 'tring to'tring+, &

    'tring sep . '@stem!get%ropert@+/line!separator/,;

    'tringu((er bu((er . ne" 'tringu((er+,;bu((er!append+sep,;

    bu((er!append+/codigo . /,;bu((er!append+codigo,;bu((er!append+sep,;bu((er!append+/nombre . /,;bu((er!append+nombre,;bu((er!append+sep,;

    return bu((er!to'tring+,;8

    public 'tring devolverDatosAlumno+,&return codigo B / C / B nombre;

    8

    public void set%ro(esor+%ro(esor pro(,&i(+indice%ro(esor %!lengt-,&

    t-is!%)indice%ro(esor* . pro(;indice%ro(esorBB;#$ption%ane!s-o"MessageDialog+null5/Ingreso del %ro(esor con Eito/5

    /Asociando al Alumno con un pro(esor/5#$ption%ane!IF$RMAI$HM=''AG=,;

    8else&#$ption%ane!s-o"MessageDialog+null5/o se puede ingresar mas %ro(esoresn/B

    /'e -a alcan4ado el límite m?imo de pro(esores por alumno/5/ítulo/5#$ption%ane!IF$RMAI$HM=''AG=,;

    88

    public %ro(esor get%ro(esor+int indice,&return %)indice*;

    88

    (lase Profesor"A continuación se presenta la clase Profesor" $ue define los atributos métodosm0s importantes de un objeto real Profesor" obtenidos mediante el proceso de laA1STRACC)2(.

    Por ejemplo3 el Profesor 4o?nn Rees Rees

    %ro(! Arerrera %onte %?g! 2

  • 8/18/2019 Guia D de Laboratorio

    4/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    (/digo PRO56Nom+re 4O>((B REBES REBES

    #a clase Profesor implementa un método constructor por defecto" un métodoconstructor COP)A" varios métodos de tipo SET !ET" un método llamado

     8devolver*atosProfesor9:; al método 8toString9:;. Es importante recalcar $ue laclase Profesor declara un arreglo de objetos de tipo Alumno 8Alumno A

  • 8/18/2019 Guia D de Laboratorio

    5/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    t-is!A . A;8

    public void setIndiceAlumno+int indiceAlumno, &t-is!indiceAlumno . indiceAlumno;

    8

    public 'tring get:odigo+, &return +t-is!codigo,;

    8

    public 'tring getombre+, &return +t-is!nombre,;

    8

    public Alumno)* getAlumnos+, &return +t-is!A,;

    8

    public int getIndiceAlumno+, &return +t-is!indiceAlumno,;8

    public 'tring to'tring+, &

    'tring sep . '@stem!get%ropert@+/line!separator/,;

    'tringu((er bu((er . ne" 'tringu((er+,;bu((er!append+sep,;bu((er!append+/codigo . /,;bu((er!append+codigo,;bu((er!append+sep,;

    bu((er!append+/nombre . /,;bu((er!append+nombre,;bu((er!append+sep,;

    return bu((er!to'tring+,;8

    public 'tring devolverDatos%ro(esor+,&return codigo B / C / B nombre;

    8

    public void setAlumno+Alumno alu,&i(+indiceAlumno A!lengt-,&

    t-is!A)indiceAlumno* . alu;indiceAlumnoBB;#$ption%ane!s-o"MessageDialog+null5/Ingreso del Alumno con Eito/5

    /Asociando al %ro(esor con un Alumno/5#$ption%ane!IF$RMAI$HM=''AG=,;

    8else&#$ption%ane!s-o"MessageDialog+null5/o se puede ingresar mas Alumnosn/B

    /'e -a alcan4ado el límite m?imo de alumnos por pro(esor/5/ítulo/5#$ption%ane!IF$RMAI$HM=''AG=,;

    88

    public Alumno getAlumno+int indice,&return A)indice*;

    8

    %ro(! Arerrera %onte %?g! 6

  • 8/18/2019 Guia D de Laboratorio

    6/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    8

    (lase Arreglo!eAlumno"A continuación se presenta la clase Arreglo*eAlumno" $ue define los atributos métodos m0s importantes de un arreglo de objetos real Alumno" obtenidos

    mediante el proceso de la A1STRACC)2(. #os métodos del auto son3public Arreglo!eAlumno 9Arreglo*eProfesor profesores: F GEste es un método Constructor por par0metros. Recibe por par0metro a unareferencia de la clase Arreglo*eProfesor.

    public int get(antidad!eAlumnos9: F GEste método devuelve la cantidad de objetos de tipo Alumno $ue se ?analmacenado en el Arra#ist.

    public boolean verificarSi3aE4isteEl(odigo9String codigo: F GPA&A IMP#EMEN'A&Este método verifica si a eHiste un Alumno con dic?o codigo.Este método es )-PORTA(T)S)-O.Siempre se deber0 usar este método para IER)&)CAR la eHistencia de un Alumno.

    public Alumno registrar!atos!elNuevoAlumno9String codigo: F GEste método instancia a un objeto de tipo Alumno" luego se van ingresan porteclado el valor de sus atributos" para finalmente RETOR(AR la referencia a dic?oobjeto.

    public void a5adirNuevoAlumno9: .. GEste método aJade un nuevo objeto de tipo Alumno al Arra#ist llamado

     8arregloAlumno;.

    public int devolverIndice!elAlumnoEnElArreglo9String codigo: .. GEste método recibe por par0metro una variable de tipo String recorre el Arra#istpara verificar si eHiste el valor de dic?a variable. Si lo encuentra" entoncesRETOR(AR el indice 9posicion: de dic?o objeto. Si (O lo encuentra" entoncesRETOR(A el valor de K5.

    public Alumno getAlumnoPorIndice9int indice: .. GEste método devuelve un objeto de tipo Alumno.RETOR(A una copia del objeto $ue se encuentra en el Arra#ist llamado

     8arregloAlumno;. Antes de devolver se ?ace un CAST)(! de tipo Alumno.

    public void mostrar!atos!elAlumno9int indice: F G

    Este método muestra el valor de los atributos de un objeto de tipo Alumno.Obtenemos un objeto de tipo Alumno $ue se encuentra en LindiceL del Arra#istLarregloAlumnoL. #uego verificamos si dic?o Alumno esta ASOC)A*O a algunProfesor" si la respuesta es positiva entonces mostramos los datos de susProfesores 9Siempre cuando TE(!A PRO&ESORES:.

    public void mostrar!atos!e#osAlumnos9: ... GEste método se recorre el Arra#ist llamado LarregloAlumnoL para mostrar los datosde cada objeto de tipo Alumno.

    public void mostrar#istado!eProfesores9: F GEste método recorre el arreglo de Profesores. Se muestra en una l,nea los datos de

    cada objeto de tipo Profesor.

    public int edirSeleccionarAUnProfesor9: F G

    %ro(! Arerrera %onte %?g! J

  • 8/18/2019 Guia D de Laboratorio

    7/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    Este método devuelve la posición del Profesor SE#ECC)O(A*O. Al final del métodose tiene $ue RESTAR 5" por$ue el ,ndice del arreglo empiea en CERO.

    public void asociarAlumno(onSuProfesor9: F GEste método permite ASOC)AR 9asignar: '( Alumno '(O o Iarios profesores.

    Para ello ingresamos el código del Alumno.Ialidamos S) eHiste el código del Alumno. Si el código S) EM)STE" obtenemos el,ndice del Profesor $ue ?a sido seleccionado para la asociación.Obtenemos el ,ndice del Alumno $ue se encuentra en el Arra#ist.Obtenemos una COP)A del objeto de tipo Alumno $ue se encuentra en el Arra#ist.ASOC)A-OS un nuevo PRO&ESOR con el Alumno" es decir" ?acemos guardar laRE&ERE(C)A del objeto dentro del arreglo de objetos de tipo Profesor $ue seencuentra dentro de la clase Alumno.REE-P#A7A-OS 9C>A(CA-OS: en el mismo ,ndice con el objeto de tipo Alumnollamado LauHiliarL BA -O*)&)CA*O

    public void menu 9: F G

    Este método muestra un -E(' de opciones relacionadas a la clase.Permite interactuar con el 'S'AR)O.

    Pasos a seguir 6-. Escribir el siguiente código 4ava" utiliando un Entorno de *esarrollo

    )ntegrado.N. !enerar el arc?ivo %Arreglo*eAlumno.class+ 9Proceso de Compilación:

    La clase ArregloDeAlumno

    package Matricula;

    import java!s"ing!#$ption%ane;import java!util!Arra@List;import :lasesase!ase;

    public class ArregloDeAlumno &KKDeclaracion de Atributosprivate Arra@List arregloAlumno;private ArregloDe%ro(esor arreglo%ro(esor;

    KKDeclaracion de MEtodos

    KKMEtodo :onstructor por par?metrospublic ArregloDeAlumno+ArregloDe%ro(esor pro(esores,&

    KKInstanciamos un objeto de tipo Arra@List paraKKalmacenar a objetos de tipo AlumnoarregloAlumno . ne" Arra@List+,;KK>acemos re(erencia al Arreglo de %ro(esoresKKue se encuentra en la clase Matriculaarreglo%ro(esor . pro(esores;

    8

    KK=ste mEtodo devuelve la cantidad de objetos de tipo AlumnoKKue se -an almacenado en el Arra@Listpublic int get:antidadDeAlumnos+,&

    return arregloAlumno!si4e+,;8

    %ro(! Arerrera %onte %?g!

  • 8/18/2019 Guia D de Laboratorio

    8/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    KK=ste mEtodo veri(ica si @a eiste un Alumno con dic-o codigopublic boolean veri(icar'iNa=iste=l:odigo+'tring codigo,&

    KK%ara implementar!!!return true;

    8

    KK=ste mEtodo instancia a un objeto de tipo AlumnoKKluego se van ingresan por teclado el valor de sus atributosKKpara R=$RAR la re(erencia a dic-o objetopublic Alumno registrarDatosDeluevoAlumno+'tring codigo,&

    'tring dato;

     Alumno alu . ne" Alumno+,;alu!set:odigo+ codigo ,;

    dato . ase!ingresarDato+/Ingrese el nombre del AlumnoO/,;alu!setombre+ dato ,;

    return alu;8

    KK=ste mEtodo aPade un nuevo objeto de tipo Alumnopublic void aPadiruevoAlumno+,&

    'tring dato;

    dato . ase!ingresarDato+/Ingrese el codigo del AlumnoO/,;

    i(+veri(icar'iNa=iste=l:odigo+ dato ,,&arregloAlumno!add+ registrarDatosDeluevoAlumno+dato, ,;#$ption%ane!s-o"MessageDialog+null5/Registro de datos reali4ado con Eito!/5

    /uevo Alumno/5

    #$ption%ane!IF$RMAI$HM=''AG=,;8else&#$ption%ane!s-o"MessageDialog+null5/=l c

  • 8/18/2019 Guia D de Laboratorio

    9/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    return +Alumno,arregloAlumno!get+indice,;8

    KK=ste mEtodo muestra el valor de los atributos de un objeto de tipo Alumnopublic void mostrarDatosDelAlumno+int indice,&

    KK$btenemos un objeto de tipo AlumnoKKue se encuentra en indice del Arra@List arregloAlumno Alumno au . getAlumno%orIndice+indice,;int cantidad%ro(esores . au!getIndice%ro(esor+,;

    '@stem!out!println+/SSSSSSSSSSSSSSSSSSSS/,;'@stem!out!println+/S DA$' D=L ALTM$ S/,;'@stem!out!println+/SSSSSSSSSSSSSSSSSSSS/,;

    '@stem!out!println+au!to'tring+,,;

    KKMostramos los datos de sus %ro(esoresKKsiempre @ cuando =GA %R$F='$R='i(+cantidad%ro(esores U 7,&

    '@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSSSSSS/,;'@stem!out!println+/S DA$' D= 'T' %R$F='$R=' S/,;'@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSSSSSS/,;

    (or+int i.7; icantidad%ro(esores; iBB,&'@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSSSS/,;'@stem!out!println+/S DA$' D=L %R$F='$R /B+iB0,B/ S/,;'@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSSSS/,;

    %ro(esor pro( . au!get%ro(esor+i,;'@stem!out!println+pro(!to'tring+,,;

    8'@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSSSSn/,;

    88

    KK=ste mEtodo se recorre el Arra@List llamado arregloAlumnoKKpara mostrar los datos de cada objeto de tipo Alumnopublic void mostrarDatosDeLosAlumnos+,&

    i(+arregloAlumno!si4e+, U 7,&(or +int i . 7; iarregloAlumno!si4e+,; iBB,&

    mostrarDatosDelAlumno+i,;8

    8else&#$ption%ane!s-o"MessageDialog+null5/o eisten Alumnos regsitrados!/5

    /ítulo/5

    #$ption%ane!IF$RMAI$HM=''AG=,;88

    KK=ste mEtodo recorre el arreglo de %ro(esoresKK'e muestra en una linea los datos de cada objeto de tipo %ro(esor public void mostrarListadoDe%ro(esores+,&

    %ro(esor pro( . null;(or+int i.7; iarreglo%ro(esor!get:antidadDe%ro(esores+,; iBB,&

    pro( . arreglo%ro(esor!get%ro(esor%orIndice+i,;'@stem!out!println++iB0, B /!C / B pro(!devolverDatos%ro(esor+,,;

    88

    KK=ste mEtodo devuelve la posicion del %ro(esor '=L=::I$AD$public int pedir'eleccionarATn%ro(esor+,&

    %ro(! Arerrera %onte %?g! V

  • 8/18/2019 Guia D de Laboratorio

    10/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    'tring dato;int opcion;do&

    '@stem!out!println+/Lista de %ro(esores Activos/,;mostrarListadoDe%ro(esores+,;dato . #$ption%ane!s-o"InputDialog+/Ingrese el nWmero del %ro(esorO/,;opcion . Integer!parseInt+dato,;

    8"-ile+opcion0XXopcionUarreglo%ro(esor!get:antidadDe%ro(esores+,,;KKA opcion le R='AM$' 05 porue el indice del arreglo empie4a en :=R$return +opcionC0,;

    8

    KK=ste mEtodo permite A'$:IAR +asignar, T Alumno @ T$ o Yarios pro(esorespublic void asociarAlumno:on'u%ro(esor+,&

    KKIngresamos el cA:AM$', en el mismo indiceKKcon el objeto de tipo Alumno llamado auiliar NA M$DIFI:AD$arregloAlumno!set+indice5auiliar,;

    #$ption%ane!s-o"MessageDialog+null5/'e -a A'$:IAD$ Tn Alumno @ Tn %ro(esor/5/Asociar/5#$ption%ane!IF$RMAI$HM=''AG=,;

    8else&#$ption%ane!s-o"MessageDialog+null5/o eiste el c

  • 8/18/2019 Guia D de Laboratorio

    11/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    8

    8"-ile+opcion9.arreglo$pciones!lengt-,;

    88

    (lase Arreglo!eProfesor"A continuación se presenta la clase Arreglo*eProfesor" $ue define los atributos métodos m0s importantes de un arreglo de objetos real Profesor" obtenidosmediante el proceso de la A1STRACC)2(. #os métodos del auto son3

    public Arreglo!eProfesor9: F GEste es un método Constructor por defecto. )nstanciamos un objeto de tipoArra#ist para almacenar a objetos de tipo Profesor.

    public void ?acerReferenciaAlArreglo*eAlumnos9Arreglo*eAlumno alumnos: F G>acemos referencia al Arreglo de Alumnos $ue se encuentra en la clase -atricula.

    public int get(antidad!eProfesores9: F GEste método devuelve la cantidad de objetos de tipo Profesor $ue se ?analmacenado en el Arra#ist.

    public boolean verificarSi3aE4isteEl(odigo9String codigo: F GPA&A IMP#EMEN'A&Este método verifica si a eHiste un Profesor con dic?o código.Este método es )-PORTA(T)S)-O.Siempre se deber0 usar este método para IER)&)CAR la eHistencia de un Profesor.

    public Profesor registrar!atos!elNuevoProfesor9String codigo: F G

    Este método instancia a un objeto de tipo Profesor" luego se van ingresan porteclado el valor de sus atributos" para finalmente RETOR(AR la referencia a dic?oobjeto.

    public void a5adirNuevoProfesor9: .. GEste método aJade un nuevo objeto de tipo Profesor al Arra#ist llamado

     8arregloProfesor;.

    public int devolverIndice!elProfesorEnElArreglo9String codigo: .. GEste método recibe por par0metro una variable de tipo String recorre el Arra#istpara verificar si eHiste el valor de dic?a variable. Si lo encuentra" entoncesRETOR(AR el indice 9posicion: de dic?o objeto. Si (O lo encuentra" entonces

    RETOR(A el valor de K5.

    public Profesor getProfesorPorIndice9int indice: .. GEste método devuelve un objeto de tipo Profesor.RETOR(A una copia del objeto $ue se encuentra en el Arra#ist llamado

     8arregloProfesor;. Antes de devolver se ?ace un CAST)(! de tipo Profesor.

    public void mostrar!atos!elProfesor9int indice: F GEste método muestra el valor de los atributos de un objeto de tipo Profesor.Obtenemos un objeto de tipo Profesor $ue se encuentra en LindiceL del Arra#istLarregloProfesorL. #uego verificamos si dic?o Profesor esta ASOC)A*O a algnAlumno" si la respuesta es positiva entonces mostramos los datos de sus Alumnos

    9Siempre cuando TE(!A A#'-(OS:.public void mostrar!atos!e#osProfesores9: ... G

    %ro(! Arerrera %onte %?g! 00

  • 8/18/2019 Guia D de Laboratorio

    12/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    Este método se recorre el Arra#ist llamado LarregloProfesorL para mostrar los datosde cada objeto de tipo Profesor.

    public void asociarProfesor(onSuAlumno9: F GPA&A IMP#EMEN'A& Este método debe permitir asociar un Profesor con CERO o -'C>OS Alumnos. Para

    ello es importante contar con Alumnos registrados.

    public void menu 9: F GEste método muestra un -E(' de opciones relacionadas a la clase.Permite interactuar con el 'S'AR)O.

    Pasos a seguir 7-. Escribir el siguiente código 4ava" utiliando un Entorno de *esarrollo

    )ntegrado.Q. !enerar el arc?ivo %Arreglo*eProfesor.class+ 9Proceso de Compilación:

    La clase ArregloDeProfesor 

    package Matricula;

    import java!s"ing!#$ption%ane;import java!util!Arra@List;import :lasesase!ase;

    public class ArregloDe%ro(esor &KKDeclaracion de Atributos

    private Arra@List arreglo%ro(esor;private ArregloDeAlumno arregloAlumno;

    KKDeclaracion de MEtodosKKMEtodo :onstructor por de(ectopublic ArregloDe%ro(esor+,&

    KKInstanciamos un objeto de tipo Arra@List paraKKalmacenar a objetos de tipo %ro(esor arreglo%ro(esor . ne" Arra@List+,;

    8

    public void -acerRe(erenciaAlArregloDeAlumnos+ArregloDeAlumno alumnos,&KK>acemos re(erencia al Arreglo de Alumnos

    KKue se encuentra en la clase MatriculaarregloAlumno . alumnos;8

    KK=ste mEtodo devuelve la cantidad de objetos de tipo %ro(esor KKue se -an almacenado en el Arra@Listpublic int get:antidadDe%ro(esores+,&

    return arreglo%ro(esor!si4e+,;8

    KK=ste mEtodo veri(ica si @a eiste un %ro(esor con dic-o codigopublic boolean veri(icar'iNa=iste=l:odigo+'tring codigo,&

    KK%ara implementar!!!

    return true;8

    %ro(! Arerrera %onte %?g! 01

  • 8/18/2019 Guia D de Laboratorio

    13/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    KK=ste mEtodo instancia a un objeto de tipo %ro(esor KKluego se van ingresan por teclado el valor de sus atributosKKpara R=$RAR la re(erencia a dic-o objetopublic %ro(esor registrarDatosDeluevo%ro(esor+'tring codigo,&

    'tring dato;

    %ro(esor pro( . ne" %ro(esor+,;pro(!set:odigo+ codigo ,;

    dato . ase!ingresarDato+/Ingrese el nombre del %ro(esorO/,;pro(!setombre+ dato ,;

    return pro(;8

    KK=ste mEtodo aPade un nuevo objeto de tipo %ro(esor public void aPadiruevo%ro(esor+,&

    'tring dato;

    dato . ase!ingresarDato+/Ingrese el codigo del %ro(esorO/,;

    i(+veri(icar'iNa=iste=l:odigo+ dato ,,&arreglo%ro(esor!add+ registrarDatosDeluevo%ro(esor+dato, ,;#$ption%ane!s-o"MessageDialog+null5/Registro de datos reali4ado con Eito!/5

    /uevo %ro(esor/5#$ption%ane!IF$RMAI$HM=''AG=,;

    8else&#$ption%ane!s-o"MessageDialog+null5/=l c

  • 8/18/2019 Guia D de Laboratorio

    14/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    %ro(esor au . +%ro(esor,arreglo%ro(esor!get+indice,;int cantidadAlumnos . au!getIndiceAlumno+,;;

    '@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSS/,;'@stem!out!println+/S DA$' D=L %R$F='$R S/,;'@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSS/,;

    '@stem!out!println+au!to'tring+,,;

    KKMostramos los datos de sus %ro(esoresKKsiempre @ cuando =GA %R$F='$R='i(+cantidadAlumnos U 7,&

    '@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSSS/,;'@stem!out!println+/S DA$' D= 'T' ALTM$' S/,;'@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSSS/,;

    (or+int i.7; icantidadAlumnos; iBB,&'@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSS/,;'@stem!out!println+/S DA$' D=L ALTM$ /B+iB0,B/ S/,;

    '@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSS/,;

     Alumno alu . au!getAlumno+i,;'@stem!out!println+alu!to'tring+,,;

    8'@stem!out!println+/SSSSSSSSSSSSSSSSSSSSSSSSSn/,;

    88

    KK=ste mEtodo se recorre el Arra@List llamado arreglo%ro(esorKKpara mostrar los datos de cada objeto de tipo %ro(esor public void mostrarDatosDeLos%ro(esores+,&

    i(+arreglo%ro(esor!si4e+, U 7,&

    (or +int i . 7; iarreglo%ro(esor!si4e+,; iBB,&mostrarDatosDel%ro(esor+i,;8

    8else&#$ption%ane!s-o"MessageDialog+null5/o eisten %ro(esores regsitrados!/5

    /ítulo/5#$ption%ane!IF$RMAI$HM=''AG=,;

    88

    KK=ste mEtodo permite A'$:IAR +asignar, T %ro(esor @ T$ o Yarios Alumnospublic void asociar%ro(esor:on'uAlumno+,&

    KK%ara implementar!!!

    8

    KK=ste mEtodo muestra un M=T de opciones relacionadas a la claseKK%ermite interactuar con el T'TARI$public void menu+,&

    int opcion;'tring arreglo$pciones)* . &/0!C APadir uevo %ro(esor/5

    /1!C Mostrar Datos de los %ro(esores/5/2!C 'alir/8;

    do&opcion . ase!pintarMenu+arreglo$pciones,;

    s"itc-+opcion,&case 0O aPadiruevo%ro(esor+,;

    break;

    %ro(! Arerrera %onte %?g! 03

  • 8/18/2019 Guia D de Laboratorio

    15/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    case 1O mostrarDatosDeLos%ro(esores+,;break;

    8

    8"-ile+opcion9.arreglo$pciones!lengt-,;

    88

    (lase Matricula"Esta clase declara dos atributos3 95: Arreglo*eProfesor profesores 9@:Arreglo*eAlumno alumnos. #os cuales almacenar0n los datos del programa. Estaclase implementa los siguientes métodos.

    public -atricula9: F GEsté es el método constructor por defecto.)nstancia los objetos profesores alumnos" cada uno de los cuales almacenaran unconjunto de objetos Profesor Alumno respectivamente.

    public void menu 9: F GPA&A IMP#EMEN'A& Este método muestra un -E(' de opciones relacionadas a la clase.Permite interactuar con el 'S'AR)O.

    Pasos a seguir 8-. Escribir el siguiente código 4ava" utiliando un Entorno de *esarrollo

    )ntegrado.56.!enerar el arc?ivo %-atricula.class+ 9Proceso de Compilación:

    La clase Matricula

    package Matricula;

    import java!s"ing!#$ption%ane;import :lasesase!ase;

    public class Matricula &private ArregloDe%ro(esor pro(esores;

    private ArregloDeAlumno alumnos;

    public Matricula+,&pro(esores . ne" ArregloDe%ro(esor+,;alumnos . ne" ArregloDeAlumno+pro(esores,;pro(esores!-acerRe(erenciaAlArregloDeAlumnos+alumnos,;

    8

    public void menu+,&int opcion;'tring arreglo$pciones)* . &/0!C Mantenimiento del %ro(esor/5

    /1!C Mantenimiento del Alumno/5/2!C Asociar Alumno con su %ro(esor/5

    /3!C Asociar %ro(esor con su Alumno/5/6!C 'alir/8;

    %ro(! Arerrera %onte %?g! 06

  • 8/18/2019 Guia D de Laboratorio

    16/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    do&opcion . ase!pintarMenu+arreglo$pciones,;

    s"itc-+opcion,&case 0O

    pro(esores!menu+,;break;

    case 1Oalumnos!menu+,;break;

    case 2Oalumnos!asociarAlumno:on'u%ro(esor+,;break;

    case 3O //PARA IMPLEMENTARbreak;

    8

    8"-ile+opcion 9. arreglo$pciones!lengt-,;

    8

    8

    %ro(! Arerrera %onte %?g! 0J

  • 8/18/2019 Guia D de Laboratorio

    17/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    E9E(U(I:N del Programa

    Se muestra el menú de opciones

    0!C Mantenimiento del %ro(esor 1!C Mantenimiento del Alumno2!C Asociar Alumno con su %ro(esor 3!C Asociar %ro(esor con su Alumno6!C 'alir Ingrese su opcionO

    Se ingresa la opción

    0

    Se muestra un nueo menú de opciones

    0!C APadir uevo %ro(esor 1!C Mostrar Datos de los %ro(esores2!C 'alir 

    Ingrese su opcionO

    Se ingresa la opción

    0

    Se ingresan los datos del PR!"ES!R

    Ingrese el codigo del %ro(esorO%R$607Ingrese el nombre del %ro(esorO#$>N R=N=' R=N='

    Se muestra de nueo el menú de opciones

    0!C APadir uevo %ro(esor 1!C Mostrar Datos de los %ro(esores2!C 'alir Ingrese su opcionO

    Se ingresa la opción

    0Se ingresan los datos del PR!"ES!R

    Ingrese el codigo del %ro(esorO%R$600Ingrese el nombre del %ro(esorOMARIA FL$R=' FL$R='

    %ro(! Arerrera %onte %?g! 0

  • 8/18/2019 Guia D de Laboratorio

    18/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    Se muestra de nueo el menú de opciones

    0!C APadir uevo %ro(esor 1!C Mostrar Datos de los %ro(esores2!C 'alir Ingrese su opcionO

    Se ingresa la opción

    1

    SSSSSSSSSSSSSSSSSSSSSSS DA$' D=L %R$F='$R SSSSSSSSSSSSSSSSSSSSSSS

    codigo . %R$607nombre . #$>N R=N=' R=N='

    SSSSSSSSSSSSSSSSSSSSSSS DA$' D=L %R$F='$R S

    SSSSSSSSSSSSSSSSSSSSSS

    codigo . %R$600nombre . MARIA FL$R=' FL$R='

    Se ingresa la opción

    0!C APadir uevo %ro(esor 1!C Mostrar Datos de los %ro(esores2!C 'alir Ingrese su opcionO

    Se ingresa la opción

    2Se muestra el menú de opciones INI#IAL

    0!C Mantenimiento del %ro(esor 1!C Mantenimiento del Alumno2!C Asociar Alumno con su %ro(esor 3!C Asociar %ro(esor con su Alumno6!C 'alir Ingrese su opcionO

    Se ingresa la opción

    1

    Se muestra un nueo menú de opciones

    0!C APadir uevo Alumno1!C Mostrar Datos de los Alumnos2!C 'alir Ingrese su opcionO

    Se ingresa la opción

    0

    Se ingresan los datos del AL$MN!

    Ingrese el codigo del AlumnoOALT770Ingrese el nombre del AlumnoOLTZ AL=GR= AL=GRIA

    %ro(! Arerrera %onte %?g! 0Q

  • 8/18/2019 Guia D de Laboratorio

    19/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    Se muestra de nueo menú de opciones

    0!C APadir uevo Alumno1!C Mostrar Datos de los Alumnos2!C 'alir Ingrese su opcionO

    Se ingresa la opción

    1

    SSSSSSSSSSSSSSSSSSSSS DA$' D=L ALTM$ SSSSSSSSSSSSSSSSSSSSS

    codigo . ALT770nombre . LTZ AL=GR= AL=GRIA

    Se muestra de nueo menú de opciones

    0!C APadir uevo Alumno1!C Mostrar Datos de los Alumnos2!C 'alir Ingrese su opcionO

    Se ingresa la opción

    2

    Se muestra el menú de opciones INI#IAL

    0!C Mantenimiento del %ro(esor 1!C Mantenimiento del Alumno2!C Asociar Alumno con su %ro(esor 3!C Asociar %ro(esor con su Alumno6!C 'alir Ingrese su opcionO

    Se ingresa la opción

    2Se ingresa el código del Alumno al cual se a a AS!#IAR un Profesor 

    Ingrese el codigo del AlumnoOALT770

    Lista de %ro(esores Activos0!C %R$607 C #$>N R=N=' R=N='1!C %R$600 C MARIA FL$R=' FL$R='

    %ro(! Arerrera %onte %?g! 0V

  • 8/18/2019 Guia D de Laboratorio

    20/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    Se muestra el menú de opciones INI#IAL

    0!C Mantenimiento del %ro(esor 1!C Mantenimiento del Alumno2!C Asociar Alumno con su %ro(esor 

    3!C Asociar %ro(esor con su Alumno6!C 'alir Ingrese su opcionO

    Se ingresa la opción

    2

    Se ingresa el código del Alumno al cual se a a AS!#IAR un Profesor 

    Ingrese el codigo del AlumnoOALT770

    Lista de %ro(esores Activos0!C %R$607 C #$>N R=N=' R=N='1!C %R$600 C MARIA FL$R=' FL$R='

    %ro(! Arerrera %onte %?g! 17

  • 8/18/2019 Guia D de Laboratorio

    21/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    Se muestra el menú de opciones INI#IAL

    0!C Mantenimiento del %ro(esor 1!C Mantenimiento del Alumno2!C Asociar Alumno con su %ro(esor 3!C Asociar %ro(esor con su Alumno6!C 'alir Ingrese su opcionO

    Se ingresa la opción

    1

    Se muestra de nueo menú de opciones

    0!C APadir uevo Alumno

    1!C Mostrar Datos de los Alumnos2!C 'alir Ingrese su opcionO

    Se ingresa la opción

    1

    SSSSSSSSSSSSSSSSSSSSS DA$' D=L ALTM$ SSSSSSSSSSSSSSSSSSSSS

    codigo . ALT770nombre . LTZ AL=GR= AL=GRIA

    SSSSSSSSSSSSSSSSSSSSSSSSSSSS DA$' D= 'T' %R$F='$R=' SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS DA$' D=L %R$F='$R 0 SSSSSSSSSSSSSSSSSSSSSSSSSS

    codigo . %R$607nombre . #$>N R=N=' R=N='

    SSSSSSSSSSSSSSSSSSSSSSSSSS DA$' D=L %R$F='$R 1 S

    SSSSSSSSSSSSSSSSSSSSSSSSS

    %ro(! Arerrera %onte %?g! 10

  • 8/18/2019 Guia D de Laboratorio

    22/22

     Algorítmica II Guía ”D” de Laboratorio – Relaciones entre clases

    codigo . %R$600nombre . MARIA FL$R=' FL$R='

    SSSSSSSSSSSSSSSSSSSSSSSSS

    Se muestra de nueo menú de opciones

    0!C APadir uevo Alumno1!C Mostrar Datos de los Alumnos2!C 'alir Ingrese su opcionO

    Se ingresa la opción

    2

    Se muestra el menú de opciones INI#IAL

    0!C Mantenimiento del %ro(esor 1!C Mantenimiento del Alumno2!C Asociar Alumno con su %ro(esor 

    3!C Asociar %ro(esor con su Alumno6!C 'alir Ingrese su opcionO

    Se ingresa la opción

    6

    %rocess completed!

    %ro( Arerrera %onte %?g 11