Está en la página 1de 4

UNIVERSIDAD NACIONAL DE INGENIERIA Facultad de Ingeniera Industrial y de Sistemas Escuela de Ingeniera de Sistemas Curso: ST232U Lenguaje de Programacin Orientado

a Objetos Prof. G. A. Salinas A. LABORATORIO DE HERENCIA


TEMA: Herencia Implementacin de una aplicacin en Java Construcciones en mltiples clases Java Mejorar soluciones planteadas DURACIN ESTIMADA : 01:40 horas. I. OBJETIVOS El presente laboratorio tiene por objetivos: Construir una Aplicacin OO aplicando herencia Implementar mltiples clases o Aplicar y reconocer Herencia y otras relaciones ya vistas. o Construir objetos de la sper clase: (Se hereda atributos y mtodos). o Sobre escritura de atributos y mtodos Aplicacin a problemas concretos. II. RESUMEN En esta prctica usted implementa una Aplicacin OO aplicando herencia utilizando mltiples clases utilizando en lenguaje Java en el IDE NetBeans las operaciones bsicas de un arreglo unidimensional utilizando subprogramas. Persona III.CONSTRUCCION DE LA APLICACIN 1. Se requiere una aplicacin OO mediante herencia y otras relaciones para tener informacin 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, adems los alumnos son personas | egresados de educacin secundaria registrados con los datos de nombre direccin y telfono. Un curso tiene atributos cdigo y numero de crditos. Las operaciones solicitadas son informacin de la persona, de los alumnos con los cursos y crditos total. Se pide implementar una aplicacin de consola en Java y el diagrama de clases de la aplicacin.

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; } }

class AlumnoPos extends AlumnoPre{ private String carreraPregrado; public AlumnoPos(String nom, String dir, String f, String carrera){ //Llama al contructorde la Super Clase super(nom, dir, f); carreraPregrado = carrera; } //Se redefine el metodo mostrarInfo de la clase AlumnoPre public void mostrarInfo(){ super.mostrarInfo(); System.out.println("graduado en : " + carreraPregrado); } } class AlumnoPre extends Persona{ private Curso[] cursos; private int cantidadCursos; private int maximaCantidadCursos; public AlumnoPre(String nom, String dir, String f){ //Debemos construir los objetos de persona y de alumno super(nom, dir, f); //Llama al constructor de la Super clase cantidadCursos = 0; maximaCantidadCursos = 6; cursos = new Curso[maximaCantidadCursos]; } //Se redefine el metodo mostrarInfo de la clase Persona public void mostrarInfo(){ super.mostrarInfo(); System.out.println("Num cursos : " + cantidadCursos); System.out.println("Num creditos : " + cantidadTotalCreditos()); } public void asignaCurso(Curso c){ if (!tieneCurso(c)){ if ( cantidadCursos == maximaCantidadCursos ){ System.out.println("alumno " + nombre + " NO PUEDE tener mas cursos ..."); } else{ cursos[cantidadCursos] = c; cantidadCursos++; } } } public boolean tieneCurso(Curso c){ boolean tiene = false; int i; for( i = 0; i < cantidadCursos; i++){ if ( cursos[i] == c ){ tiene = true; } } return tiene; } public int cantidadTotalCreditos(){ int c = 0, i; for( i = 0; i < cantidadCursos; i++){ c = c + cursos[i].getCreditos(); } return c; } }

class Persona{ String nombre; private String direccion; private String fono; public Persona(String nom, String dir, String f){ nombre = nom; direccion = dir; fono = f; } public String getNombre(){ return nombre; } //Se define el metodo mostrarInfo public void mostrarInfo(){ System.out.println("nombre : " + nombre); System.out.println("direccion : " + direccion); System.out.println("telefono : " + fono); } } class THerencia{ public static void main(String[] args){ Curso c1 = new Curso("202021", 6); Curso c2 = new Curso("202023", 5); Curso c3 = new Curso("202026", 4); Curso c4 = new Curso("207127", 12); Persona p1=new Persona("Adan", "Av. Wilson 1800", "019939123"); AlumnoPre a1=new AlumnoPre("Edith", "Paseo Colon 234", "019922124"); AlumnoPos ap1=new AlumnoPos("Juan","Av Arequipa 2323", "019931125", "Ing Sistemas"); a1.asignaCurso(c1); a1.asignaCurso(c2); a1.asignaCurso(c3); ap1.asignaCurso(c1); ap1.asignaCurso(c4); p1.mostrarInfo(); System.out.println(); a1.mostrarInfo(); System.out.println(); ap1.mostrarInfo(); //Que pasa si: System.out.println("\n...!\n"); Persona p2=p1; Persona p3=a1; Persona p4=ap1; //Que se muestra y porque? p2.mostrarInfo(); System.out.println(); p3.mostrarInfo(); System.out.println(); p4.mostrarInfo(); } }

3.

Diagrama de clases Alumno, vase implementacin y complete el diagrama

Persona

TPersona

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

Persona p1 = new Persona("Adan", "Av. Wilson 1800", "019939123"); AlumnoPre a1 = new AlumnoPre("Edith", "Paseo Colon 234", "019922124", "2011340"); System.out.println("Direc Persona :"+p1.getDireccion()); System.out.println("Direc Alumno :"+a1.getDireccion()); p1.mostrarInfo(); System.out.println(); a1.mostrarInfo(); System.out.println(); //Que pasa si: System.out.println("\n...!\n"); Persona p2=p1; Persona p3=a1; //Que se muestra y porque? p2.mostrarInfo(); System.out.println(); p3.mostrarInfo(); } }

4.

Implemente un aplicacin orientada a objetos a partir de las que se muestra y al menos dos subclases para cada una agregando atributos y mtodos adecuadamente. Herbvoro Carnvoro Omnvoro

5.

Implemente una aplicacin que permita gestionar a la escuela la lista de alumnos matriculados en un determinado curso, el nmero de alumnos que se pueden matricular es variable pero debido a la capacidad de las aulas de laboratorio es 20 alumnos por curso ( Persona, alumno, curso, aula, matricula); cada alumno tiene los datos de cdigo, nombre , escuela y direccin. Cuando un alumno se matricule se debe comprobar que no se pretende matricular un alumno con el mismo cdigo. La interaccin del administrador o user del curso ser a travs de una interfaz consola basada en men. Funcionalidades y requisitos Matricular 5.1 El user selecciona la opcin matricular alumno 5.2 Se comprueba si hay vacantes, si no hay muestra mensaje apropiado y finaliza 5.3 La aplicacin permite ingresar el cdigo del alumno 5.4 Se ingresa los datos de cursos a matricular 5.5 La aplicacin consistencia el cdigo de matrcula, si existe termina y finaliza dando un mensaje apropiado 5.6 La aplicacin agrega al alumno al curso Buscar alumno 5.7 El user selecciona la opcin buscar alumno 5.8 La aplicacin permite ingresar el cdigo de alumno 5.9 La aplicacin busca entre los alumnos matriculados : 5.9.1 Si lo encuentra muestra datos del alumno 5.9.2 Si no encuentra muestra no encontrado 5.10 El user termina la opcin Ver datos de curso 5.11 El user selecciona la opcin ver datos del curso 5.12 La aplicacin muestra la relacin de alumnos matriculados 5.13 El user termina la opcin Se pide realizar el diseo de diagramas de clase de la aplicacin e implementar el diseo realizado.

También podría gustarte