Este documento. - Escuela Politécnica Nacional

Anuncio
Programación Orientada a Objetos
1
Proyecto de Laboratorio de POO
Se debe definir e implementar una nueva clase para manipular cadenas de caracteres. La
nueva clase se llamará str (del término en Inglés: string).
La definición de este nuevo tipo de datos es simple, pero a la vez es una buena
herramienta para aclarar los conceptos presentados en clase. En la práctica se debería
utilizar la clase string de C++ estándar, que se ha utilizado en ejemplos y pruebas.
Se incluyen como ayuda, en archivos adjuntos:
 El interfaz mínimo necesario para la clase str, en el archivo string1.h.
 Las operaciones que se desea de esta clase con ejemplos de su uso, en el archivo
string1.h.
 La implementación de los operadores de inserción y extracción, en el archivo
string1.cpp.
 Una función main que permitirá probar las nueva clase, en el archivo
proyecto.cpp.
Tareas a realizarse:
Como parte de las tareas a realizarse, se deberá:




Implementar lo definido en el interfaz de la clase str.
Incluir comentarios de forma adecuada y siguiendo los lineamientos indicados en
el material de lectura para cada función.
Comprobar los resultados con ayuda de la función main proporcionada.
Documentar adecuadamente la idea general del diseño en el archivo string1.h
Los archivos de la clase str y el archivo proyecto.cpp pueden requerir algún ajuste,
debido a errores de sintaxis y/o ortografía. En el caso de proyecto.cpp, puede ser
necesario ajustar el formato de los mensajes de salida para obtener mejores resultados en
pantalla, en lo referente a formato, como el alineamiento de los mensajes.
Indicaciones generales:
 El proyecto es por grupo (de dos personas, de acuerdo a los grupos formados en el
laboratorio).
 La fecha de entrega es el Miércoles, 12 de junio de 2002, personalmente en el
Laboratorio y a la hora de clases. Si por alguna razón no hay clases, de cualquier
forma se deberá entregar el deber.
Ayuda:
En el interfaz de la clase puede notarse las variables:
char *arreglo;
int longitud;
int maximo;
Preparado por Iván Bernal, Ph.D.
14/11/2015
Escuela Politécnica Nacional
Programación Orientada a Objetos
2
El arreglo de char será en donde se almacenarán los caracteres de la cadena. Este es el
arreglo a manipularse de forma dinámica usando los operadores new y delete.
No es aceptable definir un valor gigantesco para asumir luego que cualquier cadena de
entrada puede ser contenida en el espacio reservado para el arreglo. Lo que si es
aceptable es definir un valor como 10, en el instante de la creación para el constructor sin
parámetros. Luego cuando se asigne algunos caracteres, se deberá decidir si este valor es
suficiente o no.
Para aclarar la idea del párrafo anterior, supongamos que se tiene un objeto que contenga
en su arreglo unos 15 caracteres; si ahora se agrega otro objeto con 20 caracteres al de 15,
el resultante debería almacenar los 35 caracteres, sus 15 originales y los nuevos 20. Una
posible solución sería:
1. Crear un nuevo arreglo de 50 elementos, asumiendo que se deja un espacio para
crecimiento.
2. Copiar el arreglo de 15 elementos en el de 50.
3. Copiar el arreglo de 20 elementos en el de 50, luego de los 15 del paso anterior.
4. Destruir el arreglo original de 15.
En este caso entonces quedan (50-35=15) para agregar mas caracteres individuales o un
objeto conteniendo hasta 15 caracteres. Si se sobrepasa el límite de 50 se debería repetir
el proceso descrito anteriormente. Aquí entonces no es aceptable en lugar de 50 usar
1000 ó cualquier número grande. Siempre se puede asignar una cadena de caracteres más
grande que cualquier máximo que se asuma.
Dado que se tiene opción de crecimiento, se debe entender que se debe tener variables
que controlen cuánto del arreglo está usado, y cuál es el máximo de caracteres que se
puede aceptar. Para esto servirían las variables longitud y maximo.
Preparado por Iván Bernal, Ph.D.
14/11/2015
Escuela Politécnica Nacional
Descargar