Universidad de Costa Rica
|
|
Acumulador
uncrustify.exe -c ADHcrusti.cfg --no-backup Acumulador.h |
#ifndef Acumulador_h #define Acumulador_h ///< Evita la inclusión múltiple class Acumulador{private:long m_total;long m_cantidad;long m_menor;long m_mayor;public:Acumulador():m_total(0),m_cantidad(0),m_menor(0) ,m_mayor(0){/*borre();*/}~Acumulador(){}Acumulador(const Acumulador&o){*this=o;}const Acumulador& operator=(const Acumulador&o){ m_total=o.m_total;m_cantidad=o.m_cantidad;m_menor =o.m_menor;m_mayor=o.m_mayor;return*this;}void borre() {m_total = m_cantidad = m_menor = m_mayor = 0;}long total() const{ return((m_cantidad <= 2) ? 0 : m_total-m_menor-m_mayor);}long cantidad() const{return m_cantidad;}void acumule(long val){m_total += val;m_cantidad++;if(m_cantidad > 1){ m_menor =( val < m_menor ? val : m_menor);m_mayor =( val > m_mayor ? val : m_mayor);}else{m_menor = m_mayor = val;}}void acumule( unsigned n, const long * val){for(unsigned i=0; i<n; ++i){acumule(val[i]); }}friend bool operator==(const Acumulador&A,const Acumulador&B){return( A.m_total==B.m_total&&A.m_cantidad==B.m_cantidad&&A.m_menor==B.m_menor &&A.m_mayor==B.m_mayor);}friend bool operator!=(const Acumulador&A,const Acumulador&B){return!(A==B);}friend bool check_ok( const Acumulador& A);friend class test_Acumulador;}; /* bool */ #endif |
bool check_ok( const Acumulador& A){if( // Acumulador.cpp !(&A!=0)){return false;}if(!(A.m_menor <= A.m_mayor)){return false;}if(! (A.m_cantidad >= 0)){return false;}if((A.m_cantidad==0)&&((A.m_total !=0) ||(A.m_menor!=0)||(A.m_mayor != 0))){return false;}if((A.m_cantidad==1) &&((A.m_total != A.m_mayor)||(A.m_menor != A.m_mayor))){return false;} return true;} |
Acumulador
El objetivo de esta tarea programada es darle la oportunidad de
tomar un programa C++ completo para que usted le agregue la
documentación y aprenda a compilarlo. Tome esta
implementación de la clase Acumulador
y
dele formato de acuerdo a las convenciones de programación
definidas en el curso. Haga tanto la documentación
interna
como la documentación
externa, y construya un sitio Internet en donde instale tanto el código fuente como su documentación. Use
Doxygen. Ejecute
el programa paso a paso, usando el depurador simbólico.
Entregue un reporte en el que relate su experiencia.
Su reporte debe permitirle a una persona ajena al tema entender qué hizo y cómo lo hizo. Además, también debe servir para que esa persona pueda repetir el ejercicio desarrollado. Usted sabrá que su documentación es deficiente si solo le sirve a quien haya asistido a las lecciones del curso.
http://www.di-mare.com/adolfo/p/Indentacion.htm
Fuentes para
Doxygen |
/** Calcula el Máximo Común Divisor de los números \c "x" y \c "y". - Se usa el algoritmo de Euclides para hacer el cálculo. - <code> mcd(x,y) >= 1 </code> siempre. - MCD <==> GCD: <em> Greatest Common Divisor </em>. \pre <code> (y != 0) </code> */ long mcd(long x, long y); |
Documentación generada por
|
long mcd ( long x, long y )
Calcula el Máximo Común Divisor de los números "x" y "y".
|
Luego de escribir la documentación de su programa
envíe su trabajo por
correo electrónico. Para esto, haga un archivo empacado
.zip
cuyo nombre sea su número de carnet. Incluya en ese archivo
lo siguiente:
.zip
).*.c
, *.cpp
, *.h
, etc.)..url
que permita abrir la página Internet en que
está la documentación completa de su
programa.
Las cuentas de computador en la
ECCI se asignan de acuerdo
al número de carnet. Por ejemplo, si su carnet es el
número 95-28-09, para entregar su tarea usted debe crear el
archivo
952809.zip
para enviarlo por
correo electrónico. Si varios alumnos participaron en
la confección de la tareas, sus carnets deben incluirse en
el nombre del archivo .zip
:
952809-952810-952811.zip
.
Luego use FTP para subir a la red todas sus páginas Internet. En la práctica, una forma simple de obtener la página es escribirla usando algún procesador de texto como OpenOffice writer y luego guardar el documento en formato HTML. Recuerde subir todos los archivos porque cada imagen usada en su documento está en un archivo aparte.
Inicio ==> Ejecutar ==> [ Notepad.exe ] ... ==> Guardar como ==> [ 952809.url ] |
[InternetShortcut] URL=http://www.di-mare.com/adolfo/p/Matrix.htm |
952809.url
Recuerde incluir en su archivo
CARNET.zip
un acceso directo para abrir su página.
Para crearlo, puede jalarlo del hojeador cuando abra la
página, o también puede usar un editor de texto como
Notepad.exe
para crear el archivo de texto como se
muestra en el archivo 952809.url
en esta figura.
Después de la fecha de entrega del programa, puede usted instalar en su cuenta personal su solución (no instale antes su solución en Internet, pues en ese caso sería usted culpable de facilitar la copia de su trabajo, y en consecuencia se haría acreedor a la sanción respectiva).
Por ejemplo, para entregar su tarea programada, el estudiante
952809
crea su archivo 952809.zip
en el que aparece estos
archivos:
Acumulador.h
Acumulador
" para sumar secuencias de
números enteros
Acumulador.cpp
Acumulador.h
"
test_Acumulador.cpp
Acumulador
BUnit.h
952809.doc
952809.htm
952809.dxg
952809.url
test_Acumulador.cbp
test_Acumulador.dsp
test_Acumulador.vcproj
test_Acumulador.dev
Tiempo de entrega: | 7 días | |
Modalidad: | Individual |
http://www.di-mare.com/adolfo/p/convpas.htm
http://java.sun.com/docs/codeconv/CodeConventions.pdf
|
Adolfo Di Mare <adolfo@di-mare.com>.
|