/* harsteet.cpp */ /* Kerho-ohjelman harrastukset-luokan käsittely. ** ** Tekijät: Vesa Lappalainen ** Tehty: 20.1.1997 ** Muutettu ** Mitä muutettu: ** */ #ifndef __HARSTEET_H #define __HARSTEET_H #include using namespace std; #include "harrastu.h" //---------------------------------------------------------------------------- // Vakiota //---------------------------------------------------------------------------- #define MAX_HARRASTUKSIA 20 //---------------------------------------------------------------------------- // Harrastusten määrittely: //---------------------------------------------------------------------------- class cHarrastukset { int max_lkm; int lkm; int muutettu; string tiedoston_nimi; string bak_nimi; string koko_nimi; int kohdalla; cHarrastus apualkio; cHarrastus **alkiot; void poista_kaikki() { poista_alkiot(); poista_taulukko(); } void poista_alkiot(); void poista_taulukko(); string luo_taulukko(int koko=MAX_HARRASTUKSIA); void alusta() { tiedoston_nimi = ""; max_lkm = 0; lkm = 0; muutettu = 0; } cHarrastukset(const cHarrastukset &) {} void operator=(const cHarrastukset &) {} public: cHarrastukset(int koko=0) { alusta(); luo_taulukko(koko); } ~cHarrastukset() { if ( muutettu ) talleta(); poista_kaikki(); } string lisaa(const cHarrastus &harrastus); const cHarrastus &anna(int i) const { if ( i < 0 || lkm <= i ) return apualkio; return *alkiot[i]; } string lue_tiedostosta(const string &tied); string talleta(); int Lkm() const { return lkm; } const string &Tiedoston_nimi() const { return tiedoston_nimi; } const cHarrastus *eka(int nro); const cHarrastus *seuraava(int nro); const string &Bak_nimi() const { return bak_nimi; } int TeeBak(const string &bak_tark) { bak_nimi = bak_tark; return 0; } }; #endif