PROGRAMACIÓN ORIENTADA A OBJETOS

Documentos relacionados
PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS

Tema: Plantillas en C++.

Introducción a C++ Índice

Introducción a la Programación orientada a objetos con C++

Taller #1 (versión del 18 de septiembre de 2009) Programación básica y aproximación al paradigma orientado a objetos

Tema: Funciones Virtuales y Polimorfismo.

Tema: Funciones Virtuales y Polimorfismo.

LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++

Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones.

UNTELS Estructuras Selectivas (Sin anidar) Estructuras condicionales

Programación C++ (5 Parte) Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad Nacional

Cátedra I Informática Autor I Carlos Bartó

Programación orientada a objetos I

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1

Funciones: Pasos por Referencia Recursividad

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Fundamentos de la programación

PUBLICACIÓN DEL ENUNCIADO: Semana del 10 de noviembre de ENTREGA: Clase de laboratorio de la semana del 8 de diciembre de 2003.

DII. 1. (5 Puntos) Dada la clase Punto con la siguiente interfaz ya implementada

Programación 1 Problemas del Composición condicional

Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas

Programación 1 Tema 3. Información, datos, operaciones y expresiones

INTRODUCCIÓN A LA POO EN C++

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

ALMACENAMIENTO PERSISTENTE DE DATOS

PROGRAMACIÓN EN JAVA

Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara.

APUNTES PROII 2º PARCIAL.

Ejercicio del Mecánico

Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO

Plantillas (Templates)

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

Hoja de ejercicios del Tema 3

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa

Impresión por pantalla. 3. Indicar la salida por pantalla (2 puntos-20 minutos)

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA

Tema 6: Memoria dinámica

Tema: Punteros a Objetos. Puntero this.

Programación 1 Tema 15. Trabajo con ficheros binarios

Tema 6: Clases. Índice

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

PROCESADORES DE LENGUAJE. Hoja de ejercicios de FLEX

Apunte de clase C++ C++ introduce la posibilidad de realizar comentarios de una sola línea a partir de una doble barra de división "//"

Programación Orientada a Objetos

Tema: Clases y Objetos en C++.

CURSO 2º GRUPO Junio 2011

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez

Tema 2: La clase string. Índice. Notas. Programación 2. Curso Notas. Definición Declaración Entrada / salida Métodos Operaciones

Escuela Politécnica Superior de Elche

Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1

La Herencia. La primera línea de cada declaración debe incluir la sintaxis siguiente:

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

LISTAS ENLAZADAS DOBLES C++

En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:

Prof. Dr. Paul Bustamante

Sobrecarga de Operadores II

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso Notas. Ejemplo. La herramienta make. 1 Diseño modular.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos

Programa-Me 2011 Cómo resolver los problemas de Programa-Me

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

Programación de Computadores 7 Objetos y Clases. Prof. Javier Cañas R. Universidad Técnica Federico Santa María Departamento de Informática.

E s c u e l a P o l i t é c n i c a S u p e r i o r d e E l c h e

Programación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional

Fundamentos de la programación

Escuela Politécnica Superior de Elche

Examen Teórico (1/3 de la nota final)

Programación en C++ L.I Gerardo Benavides Pérez

Tema 2: Clase y objetos en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema: Sobrecarga de Operadores.

Tema: Arreglos de Objetos en C++.

Prof. Dr. Paul Bustamante

Cadenas (strings) y Estructuras

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329

Creación de clases en C++ (I)

Desarrollo de Programas. Prof. Lisbeth C. Pérez Rivas

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida

Funciones. Parámetros por valor

Laboratorio de Informática GRADO EN FÍSICA

FUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 2ª Convocatoria. 21 de junio de 2001

Guía de estilo y buenas prácticas de programación en C/C++

Estructura de datos y de la información Boletín de problemas - Tema 9

Templates. template <class T> T max(const T &t1, const T &t2) { return ((t2 > t1)? t2 : t1); }

PROGRAMACIÓN ORIENTADA POR OBJETOS EN JAVA

Temario. Tema 2. Tecnología de Desarrollo Software. 2.1 Excepciones en C Prueba y Depuración. 2.3 Documentación

Cadenas y Estructuras

TEMA 4. ESTRUCTURAS DE CONTROL

7.3. Estructura de un programa

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

Guía del Entorno de Programación en GNU/Linux

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Fundamentos Programación Orientada a Objetos ( POO ) - Parte I Desarrollo de Software

Transcripción:

PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011 2012 Examen de prácticas: 23 de enero de 2012 Objetivo Definir y utlizas siguientes clases Persona: Socio: Hereda de forma pública de Persona Representa a una persona que es socia de una ONG Ong: Clase que representa el TAD organización no gubernamental y está compuesta por socios Definición de la clase Persona Posee los atributos _nombre _apellidos _edad Funciones o métodos públicos Constructor: Versión 1 Constructor parametrizado Todos los argumentos deberán tener un valor por defecto Versión 2 Constructor de copia Funciones de acceso getnombre getedad getsexo 1

Funciones de modificación setnombre setedad setsexo Funciones de lectura y escritura leerpersona Lee desde el teclado los valores de los atributos de la Persona escribirpersona Escribe por pantalla los valores de los atributos de la Persona Definición de la clase Socio Socio hereda de forma pública de la clase Persona Atributo propio _donativo, que representa el dinero que dona mensualmente a la ONG Funciones o métodos públicos Constructor: Versión 1 Constructor parametrizado Todos los argumentos deberán tener un valor por defecto Versión 2 Constructor de copia Funciones de acceso getdonativo Funciones de modificación setdonativo Sobrecarga del operador de asignación = Funciones de lectura y escritura leersocio Lee desde el teclado los valores de los atributos del Socio escribirsocio Escribe por pantalla los valores de los atributos del Socio Sobrecarga de los operadores << y >> Sobrecargar el operador >> para leer desde el teclado los 2

valores de los atributos del Socio Sobrecargar el operador << para escribir por pantalla los valores de los atributos del Socio Definición de la clase Ong Descripción Clase que representa a las organizaciones no gubernamentales. Atributos _nombreong _vectorsocios Cada alumno deberá decidir cómo implementar el vector de socios: mediante memoria dinámica o usando el contenedor STL vector Funciones o métodos públicos Constructor: Ong Versión 1: constructor sin argumentos Destructor de la clase Ong Libera la memoria ocupada por la Ong actual Métodos de acceso para los atributos propios getnombreong getvectorsocios getnumerosocios Otra función de consulta getsocio: Recibe como parámetro un indice de tipo entero Devuelve una referencia al Socio que ocupa el lugar señalado por indice. Sobrecarga del operador []: Recibe como parámetro un indice de tipo entero Devuelve una referencia al Socio que ocupa el lugar señalado por indice. Métodos de modificación para los atributos propios setnombreong setvectorsocios Sobrecarga del operador = Funciones de lectura o escritura 3

escribirong Escribe por pantalla el nombre y numero de socios de la Ong y los datos de sus socios. leerong Lee del teclado el nombre y numero de socios de la Ong y los datos de sus socios grabarongenfichero: Recibe como parámetro el nombre de un fichero Escribe en el fichero los datos de la Ong: La primera línea del fichero debe contener el nombre de la Ong La segunda línea debe contener el número de Socios Las demás líneas deben contener los datos de cada Socio Observaciones Las clases definidas deberán permitir la ejecución de los tres programas de prueba: test1.cpp: comprobación de la clase Persona test2.cpp: comprobación de la clase Socio test3.cpp: comprobación de la clase Ong Todos los ficheros del examen se crearán en un único directorio. Puede añadir los atributos y métodos privados que considere necesarios, además de los indicados en la especificación de cada ejercicio. Nota de ayuda: Si no sabe hacer alguna de las funciones, al menos, declárela y déjela sin código para que el programa pueda compilar. Se evaluará la parte del programa que funcione. Se valorará La utilización de un espacio de nombres La claridad del código La documentación utilizando doxygen 4

// Fichero: test1.cpp // Ficheros de cabecera #include <iostream> #include <string> #include "persona.hpp" // Espacio de nombres para la entrada y salida de datos using namespace std; using namespace poo; int main(void) Persona p; cout << "Lectura de los datos de una persona" << endl; p.leerpersona(); cout << "Escritura de los datos de una persona" << endl; p.escribirpersona(); cout << "El test 1 ha finalizado correctamente" << endl << endl; // Fin del programa return 0; // Fichero: test2.cpp // Ficheros de cabecera #include <iostream> #include <string> #include "socio.hpp" // Espacio de nombres para la entrada y salida de datos using namespace std; using namespace poo; int main(void) Socio s1; cout << "Lectura de los datos de un socio" << endl; s1.leersocio(); cout << "Escritura de los datos de un socio" << endl; s1.escribirsocio(); cout << endl << endl; // Uso del constructor de copia Socio s2(s1); // Uso del extractor e insertador cout << " Datos del socio nº 2" << endl; cout << s2; cout << endl << endl; cout << "Modificación de los datos del socio nº 2" << endl; cin >> s2; cout << " Datos modificados del socio nº 2" << endl; cout << s2; cout << endl << endl;

cout << "El test 2 ha finalizado correctamente" << endl << endl; // Fin del programa return 0; // Fichero: test3.cpp // Ficheros de cabecera #include <iostream> #include <string> #include "ong.hpp" // Espacio de nombres para la entrada y salida de datos using namespace std; using namespace poo; int main(void) int n; Ong o1; cout << "Número de socios --> "; cin >> n; o1.setvectorsocios(n); cout << "Lectura de los datos de una Ong" << endl; o1.leerong(); cout << "Escritura de los datos de una Ong" << endl; o1.escribirong(); cout << "Comprobación del operador []" << endl; n = o1.getnumerosocios(); if (n > 0) cout << "El último socio es --> " << endl; o1[n-1].escribirsocio(); ////////////////// Ong o2; // Uso del operador de asignación = o2 = o1; cout << "Escritura de los datos de la nueva Ong 2" << endl; o2.escribirong(); string nombrefichero; cout << "Introduzca en nombre del fichero para grabar los datos de la ONG --> "; cin >> nombrefichero; o2.grabarenfichero(nombrefichero); cout << "El test 3 ha finalizado correctamente" << endl << endl; // Fin del programa return 0;