Universidad de Costa Rica
|
|
Acumulador
#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 haga en su cuenta personal un subdirectorio llamado
public_html
, que es bajo el que se instalan todas sus
páginas Internet. Por ejemplo, si su solución
está en el archivo
HTML
llamado
"OLP/t3sol952809.htm
", entonces usted debe instalar esa
página en el archivo
public_html/OLP/t3sol952809.htm
de su cuenta. Luego, para acceder esa página Internet, debe
entrar a este sitio:
http://anubis.ecci.ucr.ac.cr/~e952809/OLP/t3sol952809.htm
[InternetShortcut] URL=http://anubis.ecci.ucr.ac.cr/~e952809/OLP/t3sol952809.htm |
952809.url
Como todas las cuentas de estudiante son la letra "e" seguida del
número de carnet, para el estudiante de carnet "952809" la
cuenta es
"e952809
".
Para indicarle al servidor Internet a cuál cuenta entrar se
usa el caracter "~" (Alt-126), seguido del nombre de
la cuenta:
"~e952809
".
En este caso, el archivo de acceso rápido a su página Internet se llamaría "952809.url
".
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 (este alumno no hizo los programas de prueba):
Acumulador.h
Acumulador
" para sumar secuencias de números enteros
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>.
|