Ejercicio Resuelto Herencia en Java

Codifica la siguiente jerarquía de clases java representada por este diagrama UML:


La clase base es la clase Empleado. Esta clase contiene:
Un atributo privado nombre de tipo String que heredan el resto de clases. 
Un constructor por defecto.
Un constructor con parámetros que inicializa el nombre con el String que recibe.
Método set y get para el atributo nombre.
Un método toString() que devuelve el String: "Empleado " + nombre.

El resto de clases solo deben sobrescribir el método toString() en cada una de ellas y declarar el constructor adecuado de forma que cuando la ejecución de las siguientes instrucciones:
Empleado E1 = new Empleado("Rafa");
Directivo D1 = new Directivo("Mario");
Operario OP1 = new Operario("Alfonso");                                                                           
Oficial OF1 = new Oficial("Luis");
Tecnico T1 = new Tecnico("Pablo");
System.out.println(E1);
System.out.println(D1);
System.out.println(OP1);
System.out.println(OF1);
System.out.println(T1);
Den como resultado:
Empleado Rafa
Empleado Mario -> Directivo
Empleado Alfonso -> Operario
Empleado Luis -> Operario -> Oficial
Empleado Pablo -> Operario -> Tecnico                                                                             
Solución:
Primero escribimos el código de la clase Empleado que es la Clase Base:
//Clase Empleado. Clase Base de la jerarquía
public class Empleado {
    private String nombre;

    //constructor por defecto
    public Empleado() {
    }

    //constructor con un parámetro
    public Empleado(String nombre) {
        this.nombre = nombre;
        System.out.println("Constructor de Empleado " + nombre);
    }
   
    //métodos get y set
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    //método toString()
    //devuelve un String formado por la palabra “Empleado” y el nombre de empleado                                
    @Override
    public String toString() {
        return "Empleado " + nombre;
    }
}
A continuación escribimos el código de las Clases Derivadas.
La primera que vamos a crear es la clase Operario que hereda de forma directa de la clase Empleado. Recuerda que en java la herencia se expresa mediante la palabra extends: Operario extends Empleado indica que la clase Operario deriva o hereda de la clase Empleado.
La clase Operario hereda de Empleado el atributo nombre, los métodos get/set y el método toString(). El constructor de la clase recibe el nombre del empleado y lo pasa al constructor de la clase Base mediante la instrucción super(nombre).
En esta clase se modifica (override) el método toString() heredado de la clase base para que muestre un mensaje como pide el ejercicio.
//Clase Operario. Clase derivada de la clase Empleado
public class Operario extends Empleado{

    //constructor con un parámetro
    public Operario(String nombre) {
        super(nombre);
        System.out.println("Constructor de Operario");
    }

    //constructor por defecto
    public Operario() {
    }

    //modificación del método toString() para mostrar el mensaje adecuado                                         
    @Override
    public String toString() {
        return super.toString() + " -> Operario";
    }
   
}

Ahora escribimos el código de la clase Oficial que hereda de la clase Operario.
La clase Oficial hereda de Operario el atributo nombre, los métodos get/set y el método toString().
El constructor de la clase recibe el nombre del empleado y lo pasa al constructor de su clase Base, en este clase la clase Operario, mediante la instrucción super(nombre).
En esta clase también se modifica el método toString() heredado de su clase base para que muestre un mensaje como pide el ejercicio.
//Clase Oficial. Clase derivada de la clase Operario
public class Oficial extends Operario{

    public Oficial() {
    }

    public Oficial(String nombre) {
        super(nombre);
        System.out.println("Constructor de Oficial");                                                             
    }
   
    @Override
    public String toString() {
        return super.toString() + " -> Oficial";
    }
}
El código Java del resto de las clases es similar a estos.
//Clase Directivo. Clase derivada de la clase Empleado
public class Directivo extends Empleado{

    public Directivo() {
    }
   
    public Directivo(String nombre) {
        super(nombre);
        System.out.println("Constructor de Directivo");                                                           
    }
   
    @Override
    public String toString() {
        return super.toString() + " -> Directivo";
    }
}

//Clase Tecnico. Clase derivada de la clase Operario
public class Tecnico extends Operario{

    public Tecnico() {
    }

    public Tecnico(String nombre) {
        super(nombre);
        System.out.println("Constructor de Tecnico");                                                             
    }
   
    @Override
    public String toString() {
        return super.toString() + " -> Tecnico";
    }
}

34 comentarios:

  1. alguien que me ayude con estos ejercicios:

    9.5 Dibuje una jerarquía de herencia para los estudiantes en una universidad, de manera similar a la jerarquía que se muestra en la figura 9.2. Use a Estudi ante como la superclase de la jerarquía, y después extienda Estudi ante con las clases Estudi anteNoCraduado y EstudianteCraduado. Siga extendiendo la jerarquía con el mayor número de niveles que sea posible. Por ejemplo, EstudiantePrimerAnio, EstudianteSegundoAnio, EstudianteTercerAnio y Estudiante- CuartoAnio podrían extender a EstudianteNoCraduado, y EstudianteDoctorado y EstudianteMaestria podrían ser subclases de EstudianteCraduado. Después de dibujar la jerarquía, hable sobre las relaciones que existen entre las clases. [Nota: no necesita escribir código para este ejercicio].

    9.8 Escriba una jerarquía de herencia para las clases Cuadrilátero, Trapezoide, Paral el ogramo, Rectángulo y Cuadrado. Use Cuadri latero como la superclase de la jerarquía. Cree y use una clase Punto para representar los puntos en cada figura. Agregue todos los niveles que sea posible a la jerarquía. Especifique las variables de instancia y los métodos para cada clase. Las variables de instancia private de Cuadri 1 atero deben ser los pares de coordenadas x-y para los cuatro puntos finales del Cuadri latero. Escriba un programa que cree instancias de objetos de sus clases, y que imprima el área de cada objeto (excepto Cuad ri 1 atero).

    ResponderEliminar
    Respuestas
    1. no mames bro, jajaja, me estan aplicando este ejercicio como examen xD

      Eliminar
  2. Crea en java el código de un ejemplo de herencia con una súper
    clase y dos sub clases. Ejemplo: Persona, Cliente, Vendedor
    Me podran ayudar por favor..!!

    ResponderEliminar
    Respuestas
    1. La próxima vez pon la duda o plantea la cuestión de otra forma, ejemplo:
      -Me pueden hacer la siguiente tarea?

      ***Clase Persona***
      public abstract class Persona {
      private String nombre;
      private int edad;

      public Persona(String nombre, int edad) {
      setNombre(nombre);
      setEdad(edad);
      }

      public String getNombre() {
      return nombre;
      }

      public void setNombre(String nombre) {
      this.nombre = nombre;
      }

      public int getEdad() {
      return edad;
      }

      public void setEdad(int edad) {
      this.edad = edad;
      }

      public abstract void mostrarNombre();
      public abstract void mostrarEdad();

      @Override
      public String toString() {
      return "NOMBRE: "+getNombre()+"\tEDAD: "+getEdad();
      }
      }

      ***Clase Cliente***

      public class Cliente extends Persona{

      public Cliente(String nombre, int edad) {
      super(nombre, edad);
      }

      @Override
      public void mostrarNombre() {
      System.out.println(getNombre());
      }

      @Override
      public void mostrarEdad() {
      System.out.println(getEdad());
      }

      }

      ***Clase Vendedor***

      public class Vendedor extends Persona{

      public Vendedor(String nombre, int edad) {
      super(nombre, edad);
      }

      @Override
      public void mostrarNombre() {
      System.out.println(getNombre());
      }

      @Override
      public void mostrarEdad() {
      System.out.println(getEdad());
      }

      }

      Eliminar
    2. Hola Alejandro, me haces esta tarea de java, no entiendo mucho de programación. Porfa
      Crear un programa en Java para una Clínica Nutricional que contenga una
      clase llamada Persona, sus atributos son: nombre, edad, RUT, sexo (H hombre, M mujer), peso
      y altura. No se quiere acceder directamente a ellos. Piense qué modificador de acceso es el
      más adecuado, también su tipo. Además crear las siguientes clases derivadas una llamada
      Paciente que tenga como atributos fechaPrimeraConsulta, medicoTratante (de tipo Médico);
      otra clase llamada Medico que herede de Persona y tenga como atributo adicional
      precioConsulta, especialidad.
      Cada una de las clases debe tener su respectivo constructor.
      Los métodos que se implementarán en la clase Paciente son:
      calcularIMC(): calculará si la persona está en su peso ideal (peso en kg/ (altura^2 en m)),
      devuelve un -1 si está por debajo de su peso ideal, un 0 si está en su peso ideal y un 1 si tiene
      sobrepeso. Puede usar constantes para devolver estos valores.
      esMayorDeEdad (): indica si es mayor de edad, devuelve un booleano.
      comprobarSexo(char sexo): comprueba que el sexo introducido es correcto. Si no es correcto,
      será H.
      toString(): devuelve toda la información del objeto.
      Luego, crear una clase ejecutable que haga lo siguiente:
      Pedir por teclado el nombre, Rut, la edad, sexo, peso, altura, fechaPrimeraConsulta,
      medicoTratante, precioConsulta, especialidad.
      Crear 1 objeto de la clase anterior que deberá comprobar si está en su peso ideal, tiene
      sobrepeso o por debajo de su peso ideal con un mensaje.
      Indicar si es mayor de edad.
      Por último, mostrar la información del objeto.

      Eliminar
  3. Crea en java el código de un ejemplo de herencia con una súper
    clase y dos sub clases. Ejemplo: Persona, Cliente, Vendedor
    Me podran ayudar por favor..!

    ResponderEliminar
    Respuestas
    1. https://www.youtube.com/channel/UC5L0gc3pQZcvmiuvSAhW9QQ
      únete , hago tributo a ats y tbn ayudo su trabajo graciasde antemano

      Eliminar
  4. Hola,me pueden hacer esta tarea:
    Crear un programa en Java para una Clínica Nutricional que contenga una
    clase llamada Persona, sus atributos son: nombre, edad, RUT, sexo (H hombre, M mujer), peso
    y altura. No se quiere acceder directamente a ellos. Piense qué modificador de acceso es el
    más adecuado, también su tipo. Además crear las siguientes clases derivadas una llamada
    Paciente que tenga como atributos fechaPrimeraConsulta, medicoTratante (de tipo Médico);
    otra clase llamada Medico que herede de Persona y tenga como atributo adicional
    precioConsulta, especialidad.
    Cada una de las clases debe tener su respectivo constructor.
    Los métodos que se implementarán en la clase Paciente son:
    calcularIMC(): calculará si la persona está en su peso ideal (peso en kg/ (altura^2 en m)),
    devuelve un -1 si está por debajo de su peso ideal, un 0 si está en su peso ideal y un 1 si tiene
    sobrepeso. Puede usar constantes para devolver estos valores.
    esMayorDeEdad (): indica si es mayor de edad, devuelve un booleano.
    comprobarSexo(char sexo): comprueba que el sexo introducido es correcto. Si no es correcto,
    será H.
    toString(): devuelve toda la información del objeto.
    Luego, crear una clase ejecutable que haga lo siguiente:
    Pedir por teclado el nombre, Rut, la edad, sexo, peso, altura, fechaPrimeraConsulta,
    medicoTratante, precioConsulta, especialidad.
    Crear 1 objeto de la clase anterior que deberá comprobar si está en su peso ideal, tiene
    sobrepeso o por debajo de su peso ideal con un mensaje.
    Indicar si es mayor de edad.
    Por último, mostrar la información del objeto.
    Se los agradecería, no entiendo java

    ResponderEliminar
  5. Hola

    No hagas ninguna tarea a la manga de flojos que te escriben >:( !

    ResponderEliminar
  6. Necesito ayuda con este trabajo por favor

    Descriptor de la actividad:

    1. REALIZAR UN PROGRAMA QUE CONTENGA LOS SIGUIENTES PARAMETROS

    · Clase Principal

    · Subclases Externas Por cada Función

    · Cada Subclase Debe Tener Métodos

    · La Clase Main Ejecutar Un Menú Con Swicth

    · Debe Contener Las Siguientes Funciones

    o While

    o If

    o For

    o Do While

    · Integración De Scanner Para El Ingreso De Variables O Letras O Palabras

    REQUERIMIENTOS

    1. Programa Java que lea un nombre y muestre por pantalla: “Buenos días nombre_introducido”

    2. Ingresar A Menú

    3. Hacer un programa que muestre el siguiente menú de opciones:

    a) ****** Gestión de vehículo ********

    b) Nuevo vehículo

    a. Ingreso de vehículo, marca, modelo, año

    c) Buscar vehículo y selecciona

    a. introduzca una cantidad de millas y calcula y muestra su equivalente en Kilómetros.

    d) Modificar vehículo

    a. Ingresa la capacidad de motor de cada vehículo (1500,1800,2000,2400 CC)

    b. Realiza el cálculo de consumo Total del vehículo del vehículo por estanque.

    c. Capacidad del estanque de combustible de

    i. La razón de combustible es :

    1. 1500cc 18 km x Lt

    2. 1800cc 16 km x Lt

    3. 2000cc 12 km x Lt

    4. 2400cc 10 km x Lt

    e) Ver todos los vehículos

    a. Muestra los vehículos y sus datos

    f) Salir

    ResponderEliminar
  7. hola, podrías enviarme el código por mail, al colocarlo en un compilador online me salta error (no se nada de programacion, por eso) te dejo mi mail martinrosi19@gmail.com

    ResponderEliminar
  8. Hacer dos clases que hereden de la clase Persona, debe contener al menos 3 atributos y 2 métodos nuevos, adicional al constructor y al toString. Debe subir solo los archivo .java de la Clase.
    Me podrás ayudar

    ResponderEliminar
  9. Crea un JavaProject con el nombre Herencia que tenga tres clases: Empleado, Jefe y
    PruebaHerencia. La clase Empleado debe tener como atributos privados: nombre,
    salario y añoAlta, un constructor con 3 parámetros, los métodos getters y setters
    necesarios, además el método incSalario(). La clase Jefe debe tener 1 atributo privado
    propio: float bonificacion, un constructor con 4 parámetros, los métodos getters y
    setters necesarios. El método heredado getSalario(), por la clase Jefe, debe ser
    redefinido, significa que el jefe tiene una bonificación adicional a su salario. En cada
    objeto creado por sus constructores debe ingresarse valores a los parámetros del
    constructor. La clase PruebaEmpleado donde está el main, debe tener el siguiente
    código:
    POR FAVOR

    ResponderEliminar
  10. Respuestas
    1. Puedes diseñar una super clase rascar con los metodos Rascado fuerte y rascado suave y rascado caliente. De forma que cada vez que lo requieras, solo debes llamar a esa clase y ejecutar su metodo. De nada!

      Eliminar
  11. Se plantea desarrollar un programa Java que permita la gestión comercial del Banco P&O,
    cuya superclase Sucursal debe llevar los atributos código, nombre, dirección, teléfono y
    los métodos crear () y eliminar (); así como las subclases Empleados, Cliente, Cuenta y
    Tarjeta con sus correspondientes encapsulamiento, atributos y métodos.
    Crear el código de las clases Java implementando una relación de herencia desde la
    superclase Sucursal hasta las subclases Empleados, Cliente y Cuenta y una relación de
    herencia desde Cuenta hacía Tarjeta.
    Crear una clase Ejecutora con el método main donde se cree un objeto de cada tipo y se
    muestren los datos de cada uno de los objetos creados.

    ResponderEliminar
  12. como usarias el codigo usanndo otra clase con el public static void main(String[] arg){
    }???

    ResponderEliminar
  13. HACER UN PROGRAMA QUE MUESTRE EL SIGUIENTE MENU DE OPCIONES:
    ****** GESTION DE PACIENTE ********
    1-NUEVO PACIENTE
    2-BUSCAR PACIENTE
    3-ELIMINAR PACIENTE
    4-MODIFICAR PACIENTE
    5-VER TODOS LOS PACIENTES
    6-SALIR
    EL SISTEMA SOLO VA A SALIR CUANDO SE DIGITE EL NUMERO 6, MIENTRAS SE DIGITE UNA
    DE LAS CINCO OPCIONES DEBE SEGUIR MOSTRADO EL MENU Y SI EL USUARIO DIGITA UN
    NUMERO QUE NO ESTA EN EL MENU SE DEBE ARROJAR UN MENSAJE " OPCION INCORRECTO".
    Y MOSTRAR EL MENU NUEVAMENTE.

    ResponderEliminar

  14. Hola necesito ayuda me dejaron realizar este pero no lo entiendo, dice que esta incompleto

    Principio Abierto-Cerrado (OCP).
    Dadas las siguientes clases (algunas clases están incompletas):






    public class Figura {
    public void dibujar(){};
    }
    public class Cuadrado extends Figura{}
    public class Circulo extends Figura{}
    public class Figuras {
    Vector cuadrados=new Vector();
    Vector circulos= new Vector();
    public void addCirculo(Circulo c){
    circulos.add(c);
    }
    public void addCuadrado(Cuadrado c){
    cuadrados.add(c);
    }
    public void dibujarFiguras(){
    Enumeration cuads=cuadrados.elements();
    Cuadrado c;
    while (cuads.hasMoreElements()){
    c=cuads.nextElement();
    c.dibujar();
    }
    Enumeration circs=circulos.elements();
    Circulo ci;
    while (cuads.hasMoreElements()){
    ci=circs.nextElement();
    ci.dibujar();
    }
    }
    }

    ResponderEliminar
  15. alguien que me ayude con este ejercicio por favor..
    Determinar el total de la planilla a pagar por una empresa a su n empleados, sabiendo que recibe un sueldo básico mensual según el área donde labore: Sistemas4000, Contabilidad3000, Administración3500 y Marketing2500. Todos los trabajadores están sujetos a un descuento del 13% para su jubilación (ONP) o del 10% (AFP). Asimismo, los de Sistemas y Marketing reciben una bonificación del 7%; mientras Administración y Contabilidad el 5%. El programa mostrará: Sueldo Básico, Descuento, Bonificación, Sueldo Neto y el Total de la Planilla

    ResponderEliminar
  16. alguien me puede ayudar con este trabajo : Una compañía editorial produce tanto libros impresos como audio-libros en discos compactos. Diseñe una clase denominada Publicación que almacene el título (cadena) y el precio (numérico real) de una publicación. A partir de esta clase, derive dos clases: Libro a la cual le agregue el número de páginas (entero) y CD, a la cual le agregue el tiempo de reproducción en minutos (numérico real). Cada una de las clases debe tener propiedades para acceder a sus respectivos datos

    ResponderEliminar
  17. • Se trabajará con 3 clases: una superclase Persona (con los atributos nombre, fecha de nacimiento, identificación; así como sus respectivos métodos); una clase hija Vendedor (hereda de Persona, y tiene como atributos adicionales LineaProducto y TotalVentas); y una clase hija Supervisor (hereda de Persona, y tiene como atributo adicional Departamento).
    • En una nueva clase de práctica se mostrará un menú en texto con 5 opciones: 1.)Ingresar nuevo Vendedor, 2.)Quitar Vendedor, 3.)Ingresar nuevo Supervisor, 4.)Quitar Supervisor, 5.)Salir. Cada opción realizará la opción indicada. Los Vendedores se guardarán en una estructura tipo Cola, y los Supervisores en una estructura tipo Pila.
    • Cuando se quite un Vendedor o Supervisor, se debe mostrar la información (con el método toString()), de la persona que se está sacando de la estructura

    ResponderEliminar
  18. Implemente una superclase Factura. A continuación, construya las clases FacturaCredito y FacturaContado heredadas de la clase Factura. Una Factura tiene un número consecutivo y una fecha de creación. Una FacturaCredito tiene un plazo máximo para realizar su pago, y una FacturaContado tiene dos medios de pago: efectivo o tarjeta débito.

    Construya las clases correspondientes, sus constructores y los métodos toString para cada una de las clases. Finalmente construya una nueva clase que permita hacer uso de las clases creadas inicialmente.

    Ademas construya el respectivo diagrama UML cumpliendo los siguientes objetivos

    ResponderEliminar






  19. hola me pueden ayudar creando un codigo de herencia multiple
    Implementar herencia simple de las siguientes clases en PYTHON



    Clase Persona
    Atributos:
    Cedula
    Nombre
    Apellido
    Sexo
    Rol
    Metodos:
    Hablar(Mensaje)
    getSexo()


    Clase Supervisor
    Atributo:
    tarea
    Metodos:
    getTareas()


    Clase Obrero
    Atributo:
    tarea
    Metodos:
    getTareas()

    ResponderEliminar
  20. Hola, si son muy amables me pueden ayudar con el siguiente ejercicio (tarea):

    Una compañía editorial produce tanto libros impresos como audio-libros en discos compactos. Diseñe una clase denominada Publicación que almacene el título (cadena) y el precio (numérico real) de una publicación. A partir de esta clase, derive dos clases: Libro a la cual le agregue el número de páginas (entero) y CD, a la cual le agregue el tiempo de reproducción en minutos (numérico real). Cada una de las clases debe tener propiedades para acceder a sus respectivos datos. Elabore un diagrama de clases UML indicando las relaciones de herencia y codifique un sistema mediante el cual se generen instancias de las clases Libro y CD, donde el usuario capture sus datos y se inserten en los respectivos objetos.

    Les agradecería infinitamente.

    ResponderEliminar
  21. Me ayudan con la siguiente tarea, porfa!!.
    1. Tema: Vehículos.
    2. Atributos de la clase padre 'Vehículo': Marca, Kilometraje, Combustible. Métodos de la clase padre: Constructor con parámetros, setters y getters. Método adicional que se hereda: Mostrar datos() muestra la información de los atributos.
    3. Atributos especializados de la clase hija 'Avion':NombrePiloto. Métodos de la clase hija 'Avion': constructor con parámetros, setters y getters. Método adicional: Mostrar datos() muestra la información de los atributos incluyendo NombrePiloto.
    4.
    1. Atributos especializados de la clase hija 'Camioneta': CargaMáxima. Métodos de la clase hija 'Camioneta': constructor con parámetros, setters y getters. Método adicional: Mostrar datos() muestra la información de los atributos incluyendo CargaMáxima.
    5. Método principal: Crear un objeto de cada tipo con su mismo constructor. Crear un método de la clase padre con los constructores de las clases hijas (Polimorfismo).
    6. Ejecutar para cada objeto el método mostrarDatos();
    también me pide arreglos en el codigo

    ResponderEliminar
  22. Implemente una superclase Factura. A continuación, construya las clases FacturaCredito y FacturaContado heredadas de la clase Factura. Una Factura tiene un número consecutivo y una fecha de creación. Una FacturaCredito tiene un plazo máximo para realizar su pago, y una FacturaContado tiene dos medios de pago: efectivo o tarjeta débito. Construya las clases correspondientes, sus constructores y los métodos toString para cada una de las clases. Finalmente construya una nueva clase que permita hacer uso de las clases creadas inicialmente.

    ResponderEliminar
  23. Hola, los métodos get y set realmente no son necesarios verdad? ya que no se están utilizando en ningún momento, e probado a borrarlos y funciona todo perfecta mente.

    ResponderEliminar
  24. hola, no quiero la tarea, pero si quiero que me ayuden a analizar el siguiente planteamiento, lo que necesito saber es como aplicar herencias aqui, por mas vueltas que le doy, no consigo llegar a algo coherente:
    La secretaria del área técnica encarga de los horarios clase, en este periodo solicita un software que permita automatizar la generación de dichos horarios a partir de la siguiente información:

    Las asignaturas por curso.
    Las asignaturas por docente.
    Las aulas disponibles para clases.
    De cada docente hay que guardar: cédula, nombre, sección departamental y departamento al que pertenece. Cada departamento tiene un nombre. Las asignaturas tienen un nombre y un número de créditos, que indica el número de horas de docencia a la semana (1 crédito equivale a 3 horas).

    Hay dos tipos de asignaturas: las que son teóricas, y las que son prácticas, estas últimas deben tener asociado el sistema operativo a emplear. Igualmente hay dos tipos de aulas: para clases de teoría y para clases de laboratorio (asignaturas prácticas). En general, las aulas tienen un nombre, una ubicación y una capacidad. De las aulas de teoría interesa conocer el tipo de pupitre (abatible o fijo), y de las de prácticas se quiere saber si disponen de altavoces y cámara de videoconferencia. Los posibles cursos son cinco, de primero a quinto, pero interesa que el sistema sea abierto para poder evolucionar a situaciones con un número de cursos mayor o menor. Hay que tener en cuenta que una asignatura sólo puede formar parte de un único curso. Los días de clase van de lunes a viernes, y las horas posibles son de 8:30 a 14:30 y de 15:30 a 21:30. Las asignaturas se imparten en bloques de 1 hora.

    Los docentes deben introducir en el sistema la información de las asignaturas que imparten. También deben elegir los tres días para dictar clase. Este dato es utilizado por la secretaria para generar automáticamente los horarios. No obstante, puede darse el caso de que la generación automática no obtenga una solución completa al problema de los horarios y sea preciso que se retoque manualmente la asignación de horas de clase a las asignaturas en las diferentes aulas. De esto, y de la introducción del resto de informaciones necesarias, también se encarga la secretaria.

    El sistema también debe permitir la consulta de horarios por parte de los alumnos.

    ResponderEliminar
  25. En la EPSG la información tanto de estudiantes como docentes se debe conocer: Cédula, nombres,
    edad y sexo; adicional de estudiantes, hay que registrar la calificación (entre 0 y 10) y del docente
    la materia asignada.
    Las asignaturas ofertadas son: Programación Orientada a Objetos, Estructura de datos, Estructuras
    discretas.
    Los estudiantes tendrán el 70% de posibles faltas máximas, por tanto, si faltan a clase, quedara
    registrado en el aula (como que cada uno tiene su sitio) pero con la salvedad de falta.
    El Docente tiene el 20% para no encontrarse disponible por reuniones, bajas, etc.
    Las dos operaciones anteriores deben llamarse igual en Estudiante y Docente (polimorfismo).
    El aula debe registrarse con: un identificador numérico, el número máximo de estudiantes y para
    que asignatura esta destinada. Agregue al menos dos atributos más que analice pertinentes.
    En un aula, para que se pueda dar clase se requiere de la disponibilidad del docente designado
    para dicha asignatura, y al menos de %60 de alumnos presentes.
    Cree un aula de alumnos y un docente y determine si puede darse clase, teniendo en cuenta las
    condiciones anteriores. Si se puede dar clase mostrar cuantos alumnos y alumnas (por separado)
    están aprobados de momento (utilice el mínimo establecido en UTPL). Cuantos están por encima y
    debajo de la media. Y el listado de los 3 estudiantes más puntuados.
    NOTA: La información de ingreso deben ser aleatoria (nombres, edad, calificaciones, etc.) no debe
    solicitar ningún ingreso de información al usuario (docente tutor).
    No olvide implementar la clase de prueba con el método main respectivo, que demuestre la
    funcionalidad de esta jerarquía de clases.

    ResponderEliminar
  26. Hola Alejandro, buen día, intente correr tu código pero no me dejo porque tienes uno en "private", me podría explicar por favor y gracias.

    ResponderEliminar
  27. Que risa que vine aqui buscando ejercicios para practicar y con los flojos que comentaron lo lograre.
    Solo aviso que a ninguno les respondere xd
    Pero gracias !

    ResponderEliminar