Guia D de Laboratorio
-
Upload
christian-r-leon -
Category
Documents
-
view
217 -
download
0
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