/* jasen.h */ #ifndef __JASEN_H #define __JASEN_H #include using namespace std; #include "kentta.h" //---------------------------------------------------------------------------- // J„senen m„„rittely //---------------------------------------------------------------------------- class cJasen { // J„senluokka, jolle tulee viel„ paljon ominaisuuksia cIntKentta tunnus_nro; cNimi1Kentta nimi; cHetu1Kentta hetu; cJono1isoksiKentta katuosoite; cPostinumeroKentta postinumero; cJonoIsoksiKentta postiosoite; cPuhKentta kotipuhelin; cPuhKentta tyopuhelin; cPuhKentta autopuhelin; cIntKentta liittymisvuosi; cDoubleKentta jmaksu; cDoubleKentta maksu; cJonoKentta lisatietoja; static int seuraava_nro; static char erotin; static char erottimet[10]; const cKentta *pkentta(int k) const; public: cJasen() { alusta(); } cJasen(const cJasen &jasen) { sijoita(jasen); } cJasen(const char *rivi) { this->alusta(rivi); } cJasen(const string &st) { this->alusta(st); } const cJasen &operator=(const cJasen &jasen) { return sijoita(jasen); } const cJasen &sijoita(const cJasen &jasen); int alusta(); int alusta(const char *rivi); int alusta(const string &st) { return alusta(st.c_str()); } void vastaa_aku_ankka(); int operator==(const cJasen &jasen) const; const cKentta &operator[](int k) const; cKentta &operator[](int k); void tulosta(ostream &os) const; friend ostream &operator<<(ostream &os,const cJasen &jasen); friend istream &operator>>(istream &is,cJasen &jasen); int Tunnus_nro() const { return tunnus_nro; } int rekisteroi() { tunnus_nro = seuraava_nro; seuraava_nro++; return tunnus_nro;} inline const string kentta_jonoksi(int k) const; eKenttatyyppi kentan_tyyppi(int k) const; cKentta &kentta(int k); inline const cKentta *kentta(int k) const; muunnos_funktio kentta_muunnos(int k); cKenttavirhe sijoita(int k,const string &st); int kenttia() const { return 13; } int eka_kysymys() const { return 1; } const char *kysymys(int k) const; int tyhjenna_omat(); int sama_rekisteri(const cJasen &jasen) const { return tunnus_nro == jasen.tunnus_nro; } int tyhja() const { return (kentta_jonoksi(0) == ""); } const char *help_aihe(int k); }; //---------------------------------------------------------------------------- inline const cKentta *cJasen::kentta(int k) const { return pkentta(k); } //---------------------------------------------------------------------------- inline cKentta *cJasen::kentta(int k) { return (cKentta *)pkentta(k); } //---------------------------------------------------------------------------- inline const cKentta &cJasen::operator[](int k) const { return *kentta(k); } //---------------------------------------------------------------------------- inline cKentta &cJasen::operator[](int k) { return *kentta(k); } //---------------------------------------------------------------------------- inline const string cJasen::kentta_jonoksi(int k) const { return kentta(k)->jonoksi(); } //---------------------------------------------------------------------------- inline muunnos_funktio cJasen::kentta_muunnos(int k) { return kentta(k)->muunnos(); } inline eKenttatyyppi cJasen::kentan_tyyppi(int /*k*/) const { return KENTTA_NORMAALI; } //---------------------------------------------------------------------------- inline cKenttavirhe cJasen::sijoita(int k,const string &st) { return kentta(k)->sijoita(st); } //---------------------------------------------------------------------------- inline const char * cJasen::help_aihe(int k) { return kentta(k)->help_aihe(); } #endif