UNIVERSIDAD
DE COSTA RICA

ESCUELA
DE LAS CIENCIAS DE LA COMPUMTACIÓN E INFORMÁTICA
(ECCI)
PROGRAMACIÓN
II (CI-1201)
CENTRO UNIVERSITARIO:
CALCULADORA
DE NÚMEROS RACIONALES
PROFESOR:
ADOLFO
DI MARE
16/08/2005
Tabla de contenidos
Descripción
del problema a resolver
Este
trabajo le brinda una ayuda al estudiante para que aprenda a compilar en C++ y
a hacer la documentación externa del programa, consiste en una calculadora de
números racionales que hace el cálculo de quebrados y de enteros.
También
se pretende que se aprenda a usar el oxygen.
Los
documentos de este trabajo, se pueden encontrar en: www.angelfire.com/rock4/A43354
Se
debe aprender a usar el compilador en C++ para poder programar otras tareas.
La solución para esto sería darle una
lectura a los manuales para aprender a usarlos con seguridad.
- Lograr
una documentación que sea entendible para cualquier persona.
-
Familiarizarse con el
lenguaje C++.
-
Aprender a usar el
programa doxygen
El programa requiere tener una plataforma
de win32 valida con cualquier sistema operativo de Microsoft Windows; además de
que requiere la existencia de los sub-directorios que
se deseen ordenar.
Esta tarea contiene 2 clases de
implementación:
Esta clase contiene los métodos y atributos
necesarios para manejar una calculadora capaz de manipular números racionales.
Contiene funciones ya sea de la biblioteca de C++ o creados por el usuario. La
invariante de la clase (check_ok.cpp) se encarga de
revisar que el denominador nunca sea 0.
rational() : m_num(0), m_den(1)
Constructor de un vector.
rational(long num) : m_num(num), m_den(1)
Constructor a partir de un
valor entero.
rational(long num, long den) : m_num(num),
m_den(den)
Constructor a partir de un
valor quebrado.
rational(const rational& o)
Constructor de copia.
~rational()
Destructor.
void asigne(long num=0, long
den=1)
Le cambia el valor a \c
"*this".
long num() const
Copia del numerador.
long den() const
Copia del denominador.
rational&
operator = (const rational&);
rational&
operator = (long);
rational& Swap ( rational& );
Asignación (copia)
rational&
operator += (const rational&);
rational&
operator -= (const rational&);
rational&
operator *= (const rational&);
rational&
operator /= (const rational&);
rational
operator - ();
menos unario
friend rational
operator + (const rational&, const rational&);
friend rational
operator - (const rational&, const rational&);
friend rational
operator * (const rational&, const rational&);
friend rational
operator / (const rational&, const rational&);
friend bool operator == (const rational&, const
rational&);
friend bool operator <
(const rational&, const rational&);
friend bool operator != (const rational&, const
rational&);
friend bool operator <= (const rational&, const
rational&);
friend bool operator >= (const rational&, const
rational&);
friend bool operator >
(const rational&, const rational&);
friend ostream& operator << (ostream
&, const rational& );
friend istream& operator >> (istream
&, rational& );
friend double
real (const rational& );
Conversión a real
friend long integer(const rational& );
Conversión a long
friend bool check_ok( const
rational& r );
Invariante
de la clase
El main() se encuentra dentro de el archivo p2-ta-1.cpp,
este se encarga de llamar los métodos de la clase racional para poder correr el
programa.
Este
programa es capaz de realizar las cuatro operaciones básicas (suma, resta,
multiplicación y división) con números racionales.
En la
clase racional se sobrecargaron operadores para poder realizar operaciones
entre objetos de la clase racional.
La
invariante de la clase se encarga de asegurarse que los números racionales son
racionales válidos.
Este programa tiene un alto grado de
eficiencia debido al uso de referencias para la manipulación de los datos.


El compilador utilizado fue Microsoft Visual C++ 6.0
El
programa se compila de la siguiente manera:
1) Copia los
archivos a un nuevo directorio
- Z:\DIR\SubDir\Pogramas\A43354
2) Abra
Visual C++
- Proyecto en Blanco ==> A43354
3) Agregue
archivos .cpp y .h
- VC++ no lo hace
automáticamente
4) Recompile
- Pueder borrar
los archivos "A43354.ncb" "A43354.sln" y "A43354.suo"
- El proyecto son los archivo "A43354.dsw" y “A43354.dsp”
Abra Visual C++
==================
Start
==> New Project
==> C++
Project
==>
Win32 Console Project
==> Name: A43354
==> Location:
Z:\DIR\SubDir\Pogramas
==> El proyecto quedará en el
subdirectorio "Location\Name"
- Z:\DIR\SubDir\Pogramas\A43354
==> [OK]
==>
Win32 Application Wizard
==> [X] Empty Project
==> [Finish]
==>
Ctrl-Alt-L o Alt-View Solution Explorer
==>
[Click-Derecho] Source files
==> Add
==> Add Existing Item
==> Agruege archivos
*.cpp
==>
[Click-Derecho] Header files
==> Add
==> Add Existing Item
==> Agruege archivos *.h
Dentro del directorio del
proyecto, el usuario deberá buscar la carpeta Debug,
luego el archivo *.exe, una vez hecho eso podrá usar
el programa.
-
Deitel Harvey M., Deitel Paul J. Como
programar en C++. Cuarta Edición. Pearson
Educación, México, 2003. 1376 pgs.