From 3f864f6a35a86b4d93dc851f6afc6e61eaf572b7 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 24 Sep 2003 04:58:14 +0000 Subject: [PATCH] Implementada en parte la clase Ascii. --- Makefile | 73 +++++++++++++++++++++++++++++++++++++++++++++ ascii.cpp | 38 ++++++++++++++++++++++++ ascii.h | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 200 insertions(+) create mode 100644 Makefile create mode 100644 ascii.cpp create mode 100644 ascii.h diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..636d4e2 --- /dev/null +++ b/Makefile @@ -0,0 +1,73 @@ +# +# Taller de Programación (75.42). +# +# Ejercicio Número 4: +# Ordena texto ASCII o Unicode. +# +# Copyleft 2003 - Leandro Lucarella +# Puede copiar, modificar y distribuir este programa bajo los términos de +# la licencia GPL (http://www.gnu.org/). +# +# Creado: vie sep 19 00:38:51 ART 2003 +# +# $Id$ +# + +# Opciones para el compilador. +#CXXFLAGS=-ansi -pedantic -Wall -O3 +CXXFLAGS=-ansi -pedantic -Wall -g3 -DDEBUG + +# Pruebas. +TESTS= + +# Programa a compilar. +TARGETS=$(TESTS) tp4 + +# Regla por defecto. +all: $(TARGETS) + +# Pruebas. +tests: $(TESTS) + ./dllist_test + +dllist_test: dllist.o + +tp3: dllist.o figura.o rectangulo.o cuadrado.o linea.o circulo.o dibujo.o + +dllist.o: dllist.cpp dllist.h + +figura.o: figura.cpp figura.h punto.h + +linea.o: figura.o linea.cpp linea.h + +circulo.o: figura.o circulo.cpp circulo.h + +rectangulo.o: figura.o rectangulo.cpp rectangulo.h + +cuadrado.o: rectangulo.o cuadrado.cpp cuadrado.h + +dibujo.o: dllist.o figura.o dibujo.cpp dibujo.h + + +# Preety-printing del código fuente. +corrida.txt: tp3 + @./tp3 > corrida.txt + +# Regla para borrar. +clean: + @echo "Limpiando..." + @rm -fR $(TARGETS) *.o core tp2 corrida_*.txt html latex* *.ps + +# Preety-printing del código fuente. +FUENTES=dllist.h dllist.cpp punto.h figura.h figura.cpp rectangulo.h \ + rectangulo.cpp cuadrado.h cuadrado.cpp linea.h linea.cpp circulo.h \ + circulo.cpp dibujo.h dibujo.cpp tp3.cpp +code.ps: $(FUENTES) + @enscript -j -Ecpp -U2 -C --fancy-header=squeeze --color -pcode.ps \ + $(FUENTES) + +# Informe. +informe: code.ps corrida.txt + @doxygen + @cd latex && make refman.pdf && cd .. + @doxygen Doxyfile.imprimible diff --git a/ascii.cpp b/ascii.cpp new file mode 100644 index 0000000..f2dee21 --- /dev/null +++ b/ascii.cpp @@ -0,0 +1,38 @@ +/* vim: set et sts=4 sw=4 fdm=indent fdn=1 fo+=t tw=80: + * + * Taller de Programación (75.42). + * + * Ejercicio Número 4: + * Ordena texto ASCII o Unicode. + * + * Copyleft 2003 - Leandro Lucarella + * Puede copiar, modificar y distribuir este programa bajo los términos de + * la licencia GPL (http://www.gnu.org/). + * + * Creado: Mon Sep 22 21:00:07 ART 2003 + * + * $Id$ + */ + +#include "ascii.h" + +#ifdef DEBUG +# include +#endif + +/// Volcado a un stream de salida. +std::ostream& operator<<(std::ostream& out, const Ascii& ascii) { +#ifdef DEBUG + std::cerr << "En operator<< de Ascii." << std::endl; +#endif + return out << ascii.caracter; +} + +/// Captura desde un stream de entrada. +std::istream& operator>>(std::istream& in, const Ascii& ascii) { +#ifdef DEBUG + std::cerr << "En operator>> de Ascii." << std::endl; +#endif + return in >> ascii.caracter; +} + diff --git a/ascii.h b/ascii.h new file mode 100644 index 0000000..78201b5 --- /dev/null +++ b/ascii.h @@ -0,0 +1,89 @@ +/* vim: set et sts=4 sw=4 fdm=marker fmr={,} fdn=1 fo+=t tw=80: + * + * Taller de Programación (75.42). + * + * Ejercicio Número 4: + * Ordena texto ASCII o Unicode. + * + * Copyleft 2003 - Leandro Lucarella + * Puede copiar, modificar y distribuir este programa bajo los términos de + * la licencia GPL (http://www.gnu.org/). + * + * Creado: Mon Sep 22 21:00:15 ART 2003 + * + * $Id$ + */ + +#ifndef ASCII_H +#define ASCII_H + +#include +#include + +#ifdef DEBUG +# include +#endif + +/// Caracter ASCII. +class Ascii { + + /// Caracter ASCII almacenado. + char caracter; + + public: + + /// Constructor. + Ascii(char c = '0'): caracter(c) { +#ifdef DEBUG + std::cerr << "En constructor de Ascii." << std::endl; +#endif + } + + /// Constructor de copia. + Ascii(const Ascii& ascii): caracter(ascii.caracter) { +#ifdef DEBUG + std::cerr << "En constructor de copia de Ascii." << std::endl; +#endif + } + + /// Destructor. + virtual ~Ascii(void) { +#ifdef DEBUG + std::cerr << "En destructor de Ascii." << std::endl; +#endif + } + + /// Asignación de una instancia a otra. + Ascii& operator=(const Ascii& ascii) { +#ifdef DEBUG + std::cerr << "En operator= de Ascii." << std::endl; +#endif + caracter = ascii.caracter; + return *this; + } + + /// Comparación por menor de dos instancias. + bool operator<(const Ascii& ascii) { +#ifdef DEBUG + std::cerr << "En operator< de Ascii." << std::endl; +#endif + return caracter < ascii.caracter; + } + + /// Comparación por igual de dos instancias. + bool operator==(const Ascii& ascii) { +#ifdef DEBUG + std::cerr << "En operator== de Ascii." << std::endl; +#endif + return caracter == ascii.caracter; + } + + /// Volcado a un stream de salida. + friend std::ostream& operator<<(std::ostream& out, const Ascii& ascii); + + /// Captura desde un stream de entrada. + friend std::istream& operator>>(std::istream& in, const Ascii& ascii); + +}; + +#endif // ASCII_H -- 2.43.0