EJERCICIOS POO

1. Modifica la clase Cfecha del ejemplo Eje10_09.cpp,definiendo un método llamado DiaSig (día siguiente), para incrementar el día en uno. El objeto de la clase Cfecha al que se le aplique este método deberá quedar siempre en un estado consistente. Escribe un programa para probar el método DiaSig en un bucle, imprimiendo la fecha durante cada iteración del bucle, y demostrando así que el método funciona correctamente. Asegúrate de probar los siguientes casos: Incrementar pasando al siguiente mes Incrementar pasando al siguiente año

2. Crea una clase CRectángulo. La clase tiene dos datos miembro, largo y ancho. La clase cuenta con métodos que calculan el perímetro (obtenPerímetro) y el área (obtenÁrea) del rectángulo, así como métodos para obtener y poner los valores correspondientes a los atributos largo y ancho. Los métodos poner deben comprobar que tanto largo como ancho sean mayores que 0 y menores que 20. 3. Definir una clase cPersona con los datos miembro: nombre, dNacimiento (día de nacimiento), mNacimiento (mes de nacimiento), aNacimiento (año de nacimiento), dirección, códigoPostal y ciudad. Las funciones miembro serán obtenNombre, obtenDomicilio, obtenFechaNacimiento, ponerNombre, ponerFechaNacimiento, ponerDirección, ponerCPostal y ponerCiudad. Las cadenas de caracteres son arrays de longitud fija. 4. Crea un constructor y un destructor para la clase CRectángulo. El valor por defecto de los atributos será 1. 5. Crea un constructor y un destructor para la clase cPersona del ejercicio 3. 6. Declara tres objetos de la clase cPersona y determina en un programa: a. b. c. d. e. Quién es el de mayor edad Si alguno vive en Elche Si alguno es mayor de edad Cuántos son mayores de edad Cualquier otra consulta utilizando las funciones miembro de la clase

7. Escribe constructores alternativos para la clase cPersona y un constructor copia. 8. Modifica la clase cPersona y los programas en los que la has utilizado (¿?) de forma que las cadenas de caracteres sean de longitud variable. 9. Modifica la clase cPersona añadiéndole un dato miembro estático llamado MayoriaDeEdad, que indicará la edad a la que las personas son consideradas mayores de edad (aunque ya sabemos que hay algunos que no madurarán nunca ...). Inicializa este atributo con el valor 18 y crea una función miembro de la clase para actualizar este atributo estático. Modifica los programas basados en la clase cPersona para que hagan uso de este atributo a la hora de calcular si una persona es o no mayor de edad. 10. Realiza un programa en el que pidas datos de personas con un máximo de 25. Debes definir, para mayor comodidad, un array para almacenar los datos de los objetos de la clase cPersona (debes decidir entre crear un array de objetos, un array de punteros a objetos o un array dinámico de objetos). Después debes realizar los apartados del ejercicio 6 teniendo en cuenta todos los objetos creados y las modificaciones realizadas a la clase cPersona. 11. Modifica la clase cPersona para almacenar la fecha de nacimiento como un objeto de la clase cFecha vista en los apuntes. Quizás deberás modificar también algunos métodos de la clase cPersona y los programas que utilizan esta clase. 12. Como versión final del programa que lee datos de personas y las almacena en un array de objetos, realizando después las operaciones detalladas en el ejercicio 6, y teniendo en cuenta todas las

Realiza un programa de ejemplo para utilizarlo o modifica los ejercicios anteriores para que lo 14. siguiendo las indicaciones del apartado correspondiente de los apuntes. 15. crea dos ficheros con la implementación de la clase cPersona: cpersona. 13. la salida que se muestre sea de la forma: Datos personales: ---------------Nombre: Pepito Pérez Ruipérez Fecha Nacimiento: 12/7/1977 Dirección: C/ La Isla. . ¿Podemos utilizar las funciones miembro de cPersona? ¿Cómo? • Las funciones miembro serán: • Varios constructores (entre ellos un constructor copia) y un destructor Una función para actualizar el nuevo atributo estático obtenNota(int i). de forma que al utilizarlo con un objeto de esta clase.: 03030 Ciudad: Elche utilicen. bla. …). Además. Debe contener además como datos miembro las calificaciones de un alumno (array de 5 enteros llamado notas). nº 19 C. Realiza un programa de ejemplo para utilizarlo.P. Sobrecarga el operador de extracción >> para la clase cPersona de los ejercicios. para añadirle una falta leve al alumno quitaFalta. que indica el número de faltas leves que constituyen una falta grave.cpp donde implementarás las operaciones que hacen uso de la clase cPersona.modificaciones indicadas hasta el ejercicio anterior. imágenes pornográficas. que devuelve las observaciones obtenNFaltas. ¡ah!. …. y un campo entero llamado nfaltas que indicará el número de faltas leves del alumno (ya sabes: fondos de pantalla. Define el operador de asignación para la clase cPersona de los ejercicios. un campo observaciones (cadena de caracteres llamada obser).h. para modificar las notas ponerObs. Define una clase llamada cAlumno. y llamar al profesor cada vez que éste hace ademán de sentarse tras pasar horas y horas impasiblemente erguido mientras innumerables hordas de alumnos bla.cpp y cpersona. para modificar las observaciones ponFalta. que devuelve la nota i del alumno obtenObs. de forma que al utilizarlo con un objeto de esta clase. que devuelve el número de faltas del alumno ponerNotas. la clase cAlumno tiene un dato miembro estático llamado FaltaGrave. llamarse Ramón.: Ciudad: Realiza un programa de ejemplo para utilizarlo o modifica los ejercicios anteriores para que lo utilicen. bla. 16. para quitarle una falta leve al alumno estaFotut. juegos. Sobrecarga el operador de inserción << para la clase cPersona de los ejercicios. que indica si el número de faltas del alumno es >= que FaltaGrave Cualquier otra función que creas conveniente Escribe una función externa llamada CalculaMedia para calcular y mostrar la nota media de un alumno.P. la entrada se pida de la forma: Introducción de datos personales: --------------------------------Nombre: Fecha Nacimiento: Dirección: C. que será una clase derivada de la clase cPersona. Después crea otro fichero llamado ejr12poo.

Realiza un menú y las funciones necesarias para llevar a cabo las siguientes opciones: ¾ Introducir datos de alumnos ¾ Eliminar alumnos ¾ Modificar alumnos ¾ Buscar alumnos ¾ Calcular la media de todos los alumnos ¾ Mostrar alumnos con faltas graves ¾ Cualquier otra opción que te parezca interesante - - 18. Salir Y en cada submenú contará conopciones para altas. que ya está implementada). bueno. un destructor y una función miembro para visualizar los datos de cada objeto con un formato apropiado. • 17. Debéis definir para cada clase como mínimo un constructor. utilizando las clases vistas en los apuntes (cFicha.). . . o array de punteros a objetos) para trabajar como máximo con datos de 50 alumnos. Pensad en la pantalla en modo texto (25x80). MENÚ INICIAL Alumnos.cpp y cAlumno. . modificaciones y consultas. personal de limpieza.De 17 a 19 años: aumenta en 0. profesores y personal administrativo y de servicios (secretaría. y Ser.h. 3. . Debéis implementar una clase cMenu que permita crear objetos de menú para la presentación de los diferentes menús del programa. dinámico. cantina. Severo Ochoa nos han confiado la gestión del instituto.E. Realiza un programa en el que deberás utilizar un array de objetos de la clase cAlumno (normal. cFichaLibro. en principio de los datos de alumnos. Personal de Ad. Quizás necesitéis otra clase para representar las líneas del menú. Se deben crear arrays dinámicos (o arrays de punteros a objetos) para almacenar los datos de alumnos. 0. conserjes. profesores y PAS. un constructor copia. bajas. . Los atributos a añadir a las distintas clases se dejan a vuestro libre albedrío (salvo la clase cAlumno.). Vamos a implementar una pequeña base de datos de alumnos. Realiza un pequeño programa para probarlo todo.S. revistas. Opcionalmente se puede añadir al primer menú otra opción para la gestión de la biblioteca. tal y como se explicó en clase.75 puntos.• Modifica la función para que aumente la media de un alumno dependiendo de su edad: . Tomando como clase base cPersona.. etc. en la que se mantengan los datos de libros.De 14 a 16 años: aumenta en 1 punto. 2. Para ello sigue los siguientes pasos: Divide la clase cAlumno en dos ficheros cAlumno. El programa contará con un primer menú: 1. Profesores. En el I.De 20 en adelante: aumenta en 0.... cProfesor y cPAS.5 puntos. vamos a crear tres clases derivadas cAlumno.

Sign up to vote on this title
UsefulNot useful