Вы находитесь на странице: 1из 3

EJERCICIOS POO

1. Modifica la clase Cfecha del ejemplo Eje10_09.cpp,definiendo un mtodo llamado DiaSig (da siguiente), para incrementar el da en uno. El objeto de la clase Cfecha al que se le aplique este mtodo deber quedar siempre en un estado consistente. Escribe un programa para probar el mtodo DiaSig en un bucle, imprimiendo la fecha durante cada iteracin del bucle, y demostrando as que el mtodo funciona correctamente. Asegrate de probar los siguientes casos: Incrementar pasando al siguiente mes Incrementar pasando al siguiente ao

2. Crea una clase CRectngulo. La clase tiene dos datos miembro, largo y ancho. La clase cuenta con mtodos que calculan el permetro (obtenPermetro) y el rea (obtenrea) del rectngulo, as como mtodos para obtener y poner los valores correspondientes a los atributos largo y ancho. Los mtodos 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 (da de nacimiento), mNacimiento (mes de nacimiento), aNacimiento (ao de nacimiento), direccin, cdigoPostal y ciudad. Las funciones miembro sern obtenNombre, obtenDomicilio, obtenFechaNacimiento, ponerNombre, ponerFechaNacimiento, ponerDireccin, ponerCPostal y ponerCiudad. Las cadenas de caracteres son arrays de longitud fija. 4. Crea un constructor y un destructor para la clase CRectngulo. 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. Quin es el de mayor edad Si alguno vive en Elche Si alguno es mayor de edad Cuntos 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 aadindole un dato miembro esttico llamado MayoriaDeEdad, que indicar la edad a la que las personas son consideradas mayores de edad (aunque ya sabemos que hay algunos que no madurarn nunca ...). Inicializa este atributo con el valor 18 y crea una funcin miembro de la clase para actualizar este atributo esttico. 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 mximo 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 dinmico de objetos). Despus 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. Quizs debers modificar tambin algunos mtodos de la clase cPersona y los programas que utilizan esta clase. 12. Como versin final del programa que lee datos de personas y las almacena en un array de objetos, realizando despus las operaciones detalladas en el ejercicio 6, y teniendo en cuenta todas las

modificaciones indicadas hasta el ejercicio anterior, crea dos ficheros con la implementacin de la clase cPersona: cpersona.cpp y cpersona.h, siguiendo las indicaciones del apartado correspondiente de los apuntes. Despus crea otro fichero llamado ejr12poo.cpp donde implementars las operaciones que hacen uso de la clase cPersona. 13. Sobrecarga el operador de insercin << para la clase cPersona de los ejercicios, de forma que al utilizarlo con un objeto de esta clase, la salida que se muestre sea de la forma: Datos personales: ---------------Nombre: Pepito Prez Ruiprez Fecha Nacimiento: 12/7/1977 Direccin: C/ La Isla, n 19 C.P.: 03030 Ciudad: Elche utilicen. Realiza un programa de ejemplo para utilizarlo o modifica los ejercicios anteriores para que lo

14. Sobrecarga el operador de extraccin >> para la clase cPersona de los ejercicios, de forma que al utilizarlo con un objeto de esta clase, la entrada se pida de la forma: Introduccin de datos personales: --------------------------------Nombre: Fecha Nacimiento: Direccin: C.P.: Ciudad: Realiza un programa de ejemplo para utilizarlo o modifica los ejercicios anteriores para que lo utilicen. 15. Define el operador de asignacin para la clase cPersona de los ejercicios. Realiza un programa de ejemplo para utilizarlo. 16. Define una clase llamada cAlumno, que ser una clase derivada de la clase cPersona. Debe contener adems como datos miembro las calificaciones de un alumno (array de 5 enteros llamado notas), un campo observaciones (cadena de caracteres llamada obser), y un campo entero llamado nfaltas que indicar el nmero de faltas leves del alumno (ya sabes: fondos de pantalla, juegos, imgenes pornogrficas, llamarse Ramn, , ah!, y llamar al profesor cada vez que ste hace ademn de sentarse tras pasar horas y horas impasiblemente erguido mientras innumerables hordas de alumnos bla, bla, bla, ). Adems, la clase cAlumno tiene un dato miembro esttico llamado FaltaGrave, que indica el nmero de faltas leves que constituyen una falta grave. Podemos utilizar las funciones miembro de cPersona? Cmo? Las funciones miembro sern: Varios constructores (entre ellos un constructor copia) y un destructor Una funcin para actualizar el nuevo atributo esttico obtenNota(int i), que devuelve la nota i del alumno obtenObs, que devuelve las observaciones obtenNFaltas, que devuelve el nmero de faltas del alumno ponerNotas, para modificar las notas ponerObs, para modificar las observaciones ponFalta, para aadirle una falta leve al alumno quitaFalta, para quitarle una falta leve al alumno estaFotut, que indica si el nmero de faltas del alumno es >= que FaltaGrave Cualquier otra funcin que creas conveniente

Escribe una funcin externa llamada CalculaMedia para calcular y mostrar la nota media de un alumno.

Modifica la funcin para que aumente la media de un alumno dependiendo de su edad: - De 14 a 16 aos: aumenta en 1 punto. - De 17 a 19 aos: aumenta en 0,75 puntos. - De 20 en adelante: aumenta en 0,5 puntos. Realiza un pequeo programa para probarlo todo.

17. Vamos a implementar una pequea base de datos de alumnos. Para ello sigue los siguientes pasos: Divide la clase cAlumno en dos ficheros cAlumno.cpp y cAlumno.h, tal y como se explic en clase. Realiza un programa en el que debers utilizar un array de objetos de la clase cAlumno (normal, dinmico, o array de punteros a objetos) para trabajar como mximo con datos de 50 alumnos. 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 opcin que te parezca interesante

18. En el I.E.S. Severo Ochoa nos han confiado la gestin del instituto, bueno, en principio de los datos de alumnos, profesores y personal administrativo y de servicios (secretara, cantina, conserjes, personal de limpieza, ...). Tomando como clase base cPersona, vamos a crear tres clases derivadas cAlumno, cProfesor y cPAS. Los atributos a aadir a las distintas clases se dejan a vuestro libre albedro (salvo la clase cAlumno, que ya est implementada). Se deben crear arrays dinmicos (o arrays de punteros a objetos) para almacenar los datos de alumnos, profesores y PAS. Debis definir para cada clase como mnimo un constructor, un constructor copia, un destructor y una funcin miembro para visualizar los datos de cada objeto con un formato apropiado. El programa contar con un primer men: 1. 2. 3. 0. MEN INICIAL Alumnos. Profesores. Personal de Ad. y Ser. Salir

Y en cada submen contar conopciones para altas, bajas, modificaciones y consultas. Debis implementar una clase cMenu que permita crear objetos de men para la presentacin de los diferentes mens del programa. Pensad en la pantalla en modo texto (25x80). Quizs necesitis otra clase para representar las lneas del men. Opcionalmente se puede aadir al primer men otra opcin para la gestin de la biblioteca, en la que se mantengan los datos de libros, revistas, etc. utilizando las clases vistas en los apuntes (cFicha, cFichaLibro, ...).

Вам также может понравиться