Está en la página 1de 4

UNIVERSIDAD NACIONAL DE INGENIERIA Facultad de Ingeniería Industrial y de Sistemas Escuela de Ingeniería de Sistemas Curso: ST232U Lenguaje de Programación Orientado

a Objetos Prof. G. A. Salinas A. LABORATORIO DE HERENCIA
TEMA: Herencia Implementación de una aplicación en Java Construcciones en múltiples clases Java Mejorar soluciones planteadas DURACIÓN ESTIMADA : 01:40 horas. I. OBJETIVOS El presente laboratorio tiene por objetivos: Construir una Aplicación OO aplicando herencia Implementar múltiples clases o Aplicar y reconocer Herencia y otras relaciones ya vistas. o Construir objetos de la súper clase: (Se hereda atributos y métodos). o Sobre escritura de atributos y métodos Aplicación a problemas concretos. II. RESUMEN En esta práctica usted implementa una Aplicación OO aplicando herencia utilizando múltiples clases utilizando en lenguaje Java en el IDE NetBeans las operaciones básicas de un arreglo unidimensional utilizando subprogramas. Persona III.CONSTRUCCION DE LA APLICACIÓN 1. Se requiere una aplicación OO mediante herencia y otras relaciones para tener información de los alumnos de la FISI de pre y pos grado. Los alumnos de pre grado pueden llevar de 1 hasta 5 cursos de igual manera los alumnos de post grado, además los alumnos son personas | egresados de educación secundaria registrados con los datos de nombre dirección y teléfono. Un curso tiene atributos código y numero de créditos. Las operaciones solicitadas son información de la persona, de los alumnos con los cursos y créditos total. Se pide implementar una aplicación de consola en Java y el diagrama de clases de la aplicación.

AlumnoPre 1 THerencia <<create>> 1, 5 Curso AlumnoPos

class Curso{ private String codigo; private int creditos; public Curso(String sig, int cred){ codigo = sig; creditos = cred; } public int getCreditos(){ return creditos; } public String getCodigo(){ return codigo; } }

1

System. System. String f){ //Debemos construir los objetos de persona y de alumno super(nom. //¿Que se muestra y porque? p2.mostrarInfo(). } } 2 . "Paseo Colon 234". p1.out.out.mostrarInfo().mostrarInfo(). } } } public boolean tieneCurso(Curso c){ boolean tiene = false. } //Se define el metodo mostrarInfo public void mostrarInfo(){ System. dir. public Persona(String nom. } } class THerencia{ public static void main(String[] args){ Curso c1 = new Curso("202021". public AlumnoPos(String nom..asignaCurso(c3).println("graduado en : " + carreraPregrado). System. a1.println("Num creditos : " + cantidadTotalCreditos()).mostrarInfo(). "Av.println(). f). } } class Persona{ String nombre.out. a1.out. 12). "019922124"). String f. System. } //Se redefine el metodo mostrarInfo de la clase AlumnoPre public void mostrarInfo(){ super. AlumnoPre a1=new AlumnoPre("Edith".asignaCurso(c1). 4). private String fono..mostrarInfo(). String dir. System. //Que pasa si: System. } public int cantidadTotalCreditos(){ int c = 0. p4.println("alumno " + nombre + " NO PUEDE tener mas cursos .. } //Se redefine el metodo mostrarInfo de la clase Persona public void mostrarInfo(){ super. System. AlumnoPos ap1=new AlumnoPos("Juan".asignaCurso(c2). 6). String f){ nombre = nom. private int maximaCantidadCursos.out.println("\n. Curso c2 = new Curso("202023". i < cantidadCursos. "019931125".println("Num cursos : " + cantidadCursos).class AlumnoPos extends AlumnoPre{ private String carreraPregrado.!\n"). } return c.asignaCurso(c4). a1. cursos = new Curso[maximaCantidadCursos]. i.out.out. public AlumnoPre(String nom. a1. for( i = 0.out. f).out.println(). carreraPregrado = carrera. private String direccion. "019939123").println("telefono : " + fono).getCreditos(). i++){ c = c + cursos[i]. } public void asignaCurso(Curso c){ if (!tieneCurso(c)){ if ( cantidadCursos == maximaCantidadCursos ){ System.out. 5).println(). for( i = 0. Curso c3 = new Curso("202026".mostrarInfo(). Persona p4=ap1. Persona p1=new Persona("Adan". System.asignaCurso(c1). String carrera){ //Llama al contructorde la Super Clase super(nom. "Ing Sistemas"). System. //Llama al constructor de la Super clase cantidadCursos = 0. String dir.out. ap1.mostrarInfo(). p3.").mostrarInfo().. } } class AlumnoPre extends Persona{ private Curso[] cursos. direccion = dir.println(). i++){ if ( cursos[i] == c ){ tiene = true.out. String dir. Curso c4 = new Curso("207127". ap1. } else{ cursos[cantidadCursos] = c. } public String getNombre(){ return nombre.println("nombre : " + nombre). cantidadCursos++. Persona p2=p1. private int cantidadCursos. Persona p3=a1. dir.println("direccion : " + direccion). maximaCantidadCursos = 6. i < cantidadCursos. } } return tiene. int i."Av Arequipa 2323". System. fono = f. ap1. Wilson 1800".

mostrarInfo().out. System.out. String codigo){ //Debemos construir los objetos de persona y de alumno super(nom. private String direccion. véase implementación y complete el diagrama Persona TPersona AlumnoPre class Persona{ String nombre. } public String getDireccion(){ return direccion. fono = f. f). String dir.println("Codigo : " + cod). dir.3.out. } } class TPersona{ public static void main(String[] args){ 3 . Diagrama de clases Alumno. private String fono.println("nombre : " + nombre). } //Se define el metodo mostrarInfo public void mostrarInfo(){ System.out. System.println("direccion : " + direccion). //Llama al constructor de la Super clase cod=codigo.println("telefono : " + fono). public Persona(String nom. public AlumnoPre(String nom. String dir. System. direccion = dir. } } class AlumnoPre extends Persona{ private String cod. String f){ nombre = nom. String f. } //Se redefine el metodo mostrarInfo de la clase Persona public void mostrarInfo(){ super. } public String getNombre(){ return nombre.

p3.!\n").getDireccion()).out. System.println("Direc Persona :"+p1.13 El user termina la opción Se pide realizar el diseño de diagramas de clase de la aplicación e implementar el diseño realizado..out. Cuando un alumno se matricule se debe comprobar que no se pretende matricular un alumno con el mismo código.println("Direc Alumno :"+a1. Persona p2=p1. aula. matricula).6 La aplicación agrega al alumno al curso Buscar alumno 5.3 La aplicación permite ingresar el código del alumno 5.out.9 La aplicación busca entre los alumnos matriculados : 5. System.Persona p1 = new Persona("Adan". //Que pasa si: System. p1. "019922124". Funcionalidades y requisitos Matricular 5.mostrarInfo(). System. alumno.println("\n.out.println().2 Si no encuentra muestra “no encontrado” 5. nombre . Wilson 1800". Persona p3=a1. si no hay muestra mensaje apropiado y finaliza 5. "Av.5 La aplicación consistencia el código de matrícula.mostrarInfo(). "019939123"). a1. "Paseo Colon 234". Implemente una aplicación que permita gestionar a la escuela la lista de alumnos matriculados en un determinado curso.9.1 El user selecciona la opción matricular alumno 5. La interacción del administrador o user del curso será a través de una interfaz consola basada en menú. "2011340").mostrarInfo(). si existe termina y finaliza dando un mensaje apropiado 5.mostrarInfo(). 4 .getDireccion()). curso. } } 4.12 La aplicación muestra la relación de alumnos matriculados 5.out. System. Implemente un aplicación orientada a objetos a partir de las que se muestra y al menos dos subclases para cada una agregando atributos y métodos adecuadamente. //¿Que se muestra y porque? p2.10 El user termina la opción Ver datos de curso 5.. AlumnoPre a1 = new AlumnoPre("Edith".7 El user selecciona la opción buscar alumno 5.4 Se ingresa los datos de cursos a matricular 5.out.11 El user selecciona la opción ver datos del curso 5. el número de alumnos que se pueden matricular es variable pero debido a la capacidad de las aulas de laboratorio es 20 alumnos por curso ( Persona.8 La aplicación permite ingresar el código de alumno 5.2 Se comprueba si hay vacantes.println().9. System. cada alumno tiene los datos de código. Herbívoro Carnívoro Omnívoro 5. escuela y dirección.1 Si lo encuentra muestra datos del alumno 5.println().