/* kerho.h */ /****************************************************************************/ /* ** K E R H O . H ** ** Kerho-luokan toteutus ** ** Tekij„t: Vesa Lappalainen ** Ohjelmointikurssi 1991 ** Tehty: 20.12.1991 ** Muutettu: 09.12.1995 ** Mit„ muutettu: Muutettu C++ luokaksi ** Muutettu: 10.12.1995 ** ** Muut kommnetit ks. kerho.cpp ** *****************************************************************************/ #ifndef __KERHO_H #define __KERHO_H #include #include "jasen.h" //---------------------------------------------------------------------------- // Vakiota //---------------------------------------------------------------------------- #define MAX_JASENIA 5 //---------------------------------------------------------------------------- // Kerhon m„„rittely ja k„sittely: //---------------------------------------------------------------------------- class cKerho { int max_jasenia; int jasenia; int muutettu; string tiedoston_nimi; string kerhon_nimi; cJasen virhejasen; cJasen **jasenet; void poista_jasenisto() { // if ( muutettu ) talleta(); // K„ytt”liittym„?? poista_jasenet(); poista_jasentaulukko(); } void poista_jasenet(); void poista_jasentaulukko(); const char *luo_jasentaulukko(int koko=MAX_JASENIA); const char *cKerho::kasvata_kokoa(); void alusta_jasenisto() { kerhon_nimi = ""; tiedoston_nimi = ""; max_jasenia = 0; jasenia = 0; muutettu = 0; } int rajoihin(int i) const { if ( i<0 || jasenia <= i ) i = 0; return i; } int ulkona(int i) const { return ( rajoihin(i) != i ); } public: cKerho(int koko=0) { alusta_jasenisto(); luo_jasentaulukko(koko); } ~cKerho() { poista_jasenisto(); } const char *lisaa(const cJasen &jasen); const char *korvaa(int i,const cJasen &jasen); inline const cJasen &anna(int i) const; const char *luo(const string &tied,const string &nimi, int max_jas=MAX_JASENIA); const char *lue_tiedostosta(const string &tied); const char *talleta(const string &tied=""); const string &Kerhon_nimi() const { return kerhon_nimi; } int Jasenia() const { return jasenia; } const string &Tiedoston_nimi() const { return tiedoston_nimi; } int Muutettu() const { return muutettu; } int laske_montako_muuta(const cJasen &jasen, int k, int &kuka); }; inline const cJasen &cKerho::anna(int i) const { if ( i < 0 || jasenia <= i ) i = jasenia-1; // V„„r„st„ viimeinen j„sen if ( i < 0 ) return virhejasen; // Paitsi jollei ole yht„„n return *jasenet[rajoihin(i)]; } #endif