// bool.h (C) 2000 adolfo@di-mare.com
/* resultado
Define el tipo "bool" para hacer compatibles los programas C++
con compiladores estándar.
- De esta manera, se puede usar el tipo "bool" en compiladores
antiguos, como el Borland C++ v3.1
*/
#ifndef _bool_h
#define _bool_h
#ifdef __BORLANDC__ // Definida para Borland C++
#if (__BORLANDC__ <= 0x0410) // Definida para v3.1
typedef int bool;
const int false = 0;
const int true = ! false;
#endif
#endif
#endif // _bool_h
// EOF: bool.h
|
// lab04.cpp (c) 2000 adolfo@di-mare.com
/* resultado:
Este programa interactivo recibe un año A y responde si el año
es o no bisiesto. Escoja el año A=0 para detener el programa.
Cálculo del año bisiesto:
Dado un año "A", "A" es bisiesto si es múltiplo de 4, exceptuando
los múltiplos de 100, que no son bisiestos, a menos que sean
múltiplos de 400.
Por ejemplo:
1998 no es múltiplo de 4, por lo tanto, no es bisiesto.
1900 es múltiplo de 4 y de 100, pero no es múltiplo de 400,
entonces no es bisiesto.
2000 sí es bisiesto.
1988 sí es bisiesto.
*/
#include <iostream>
#include <bool.h>
class ano {
private:
int _ano;
int _dias; // cantidad de días del año
public:
// constructores
ano() : _ano(0), _dias(366) {}
ano(ano& o) : _ano(o._ano), _dias(o._dias) {}
ano(int a) : _ano(a) {_dias = (es_bisiesto() ? 366 : 365);}
ano& operator=(ano& o) { _ano = o._ano; _dias = o._dias; return *this; }
// métodos
bool es_bisiesto();
int dias_del_mes(int mes);
int dias() { return _dias; }
// convertidor
operator int() { return _ano; }
friend istream& operator>> (istream& s, ano& a);
}; // ano
bool ano::es_bisiesto() {
/* resultado:
Retorna "true" cuando el año sí es bisiesto */
} // ano::es_bisiesto()
int ano::dias_del_mes(int mes) {
/* resultado:
Retorna la cantidad de días que tiene el i-ésimo mes del año */
} // dias_del_mes()
istream& operator>> (istream& s, ano& ANO) {
s >> ANO._ano;
ANO._dias = (ANO.es_bisiesto() ? 366 : 365);
return s;
} // operator>> ()
int main() {
} // main()
// EOF: lab04.cpp
|