/* jasen.h */ /* ** Tekijät: Vesa Lappalainen ** Ohjelmointikurssi 1991- ** Kommentit ks. jasen.cpp */ #ifndef __JASEN_H #define __JASEN_H #include using std::string; #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 char erotin; static string erottimet; static int seuraava_nro; const cKentta &rkentta(int k) const; public: cJasen() { alusta(); } cJasen(string &st) { setAsString(st); } int alusta(); int setAsString(string &st); string getAsString() const; void vastaa_aku_ankka(); const cKentta &operator[](int k) const; cKentta &operator[](int k); int operator==(const cJasen &jasen) const; const cJasen &sijoita(const cJasen &jasen); const cJasen &operator=(const cJasen &jasen) { return sijoita(jasen); } void tulosta(std::ostream &os) const; int Tunnus_nro() const { return tunnus_nro; } int rekisteroi() { tunnus_nro = seuraava_nro; seuraava_nro++; return tunnus_nro;} int kenttia() const { return 13; } int eka_kysymys() const { return 1; } string kysymys(int k) const; int tyhjenna_omat(); 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 sama_rekisteri(const cJasen &jasen) const { return tunnus_nro == jasen.tunnus_nro; } int tyhja() const { return (kentta_jonoksi(0) == ""); } string help_aihe(int k); }; std::ostream &operator<<(std::ostream &os,const cJasen &jasen); std::istream &operator>>(std::istream &is,cJasen &jasen); //---------------------------------------------------------------------------- inline const cKentta &cJasen::kentta(int k) const { return rkentta(k); } //---------------------------------------------------------------------------- inline cKentta &cJasen::kentta(int k) { return (cKentta &)rkentta(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 string cJasen::help_aihe(int k) { return kentta(k).help_aihe(); } #endif