/* kerho.cpp */ /****************************************************************************/ /* ** K E R H O . C P P ** ** 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 ** Mitä muutettu: + Laitettu tiedoston lukeminen ja kirjoittaminen ** toimivaksi (ks. metodit lue_tiedostosta ja talleta) ** + Jäsenen lisäys kasvattaa taulukon kokoa, mikäli ** tila loppuu (ks. lisaa) ** Muutettu: 20.01.1996 ** Mitä muutettu: + Jäsenistö siirretty omaksi luokakseen ** ** Public-metodeja: ** ================ ** ** Metodit palauttavat yleensä virheen merkkijonona, joka voidaan ** suoraan tulostaa. Jos virhettä ei tapahdu, palautetaan NULL. ** ** cKerho(int koko=0) ** - kerhon luominen, jos koko = 0, ei luoda jäsentaulukkoa ** ** ~cKerho() ** - kerhon hävittäminen, jos kerhoa ei ole talletettu, talletetaan ** viimeistään nyt (mahd. virheilmoitus harakoille) ** ** const char *cKerho::lue_tiedostosta(const string &tied) ** - luetaan uusi jäsenistö, mahd. vanha talletetaan ** ** const char *cKerho::talleta(const string &tied) ** - talletetaan jäsenistö. Jos tied=="", käytetään luettaessa ** annettua nimiä. ** ** const string &Kerhon_nimi() const ** - palauttaa kerhon koko nimen. ** ** int Jasenia() const ** - palauttaa kerhon jäsenmäärän ** ** int poista(int nro) ** - poistaa koko kerhosta jäsenen, jolla on tunnus_nro nro ja ** poistaa myös hänelle mahd. kuuluvat harrasteet ** ** cJasenet &Jasenet() ** - palauttaa viitteen varsinaiseen jäsenistöön ** ** int Muutettu() const ** - onko kerhoa muutettu tallettamisen jälkeen ** ** int TeeBak(const string &bak_tark) ** - tekee kerhon tiedostoista varmuuskopiot ** ** --------------------------------------------------------------------------- ** ** Tietorakenne on seuraava: ** ========================= ** ** ** cKerho ** ------------ ** | jasenet | jasenet ks. jasenet.cpp ** | | ** ------------ ** ** ** Kerho ei tiedä jäseniensä ominaisuuksia. */ #include using namespace std; #include "kerho.h" //============================================================================ // Makrot: //============================================================================ //---------------------------------------------------------------------------- string cKerho::lue_tiedostosta(const string &tied) { return jasenet.lue_tiedostosta(tied); } //---------------------------------------------------------------------------- string cKerho::talleta(const string &tied) { return jasenet.talleta(tied); }