/* harsteet.cpp */ /* Kerho-ohjelman harrastukset-luokan käsittely. ** ** Tekijät: Vesa Lappalainen ** Tehty: 20.1.1997 ** Muutettu ** Mitä muutettu: ** */ #include #include #include using namespace std; #include "harsteet.h" //---------------------------------------------------------------------------- // Harrastusten toteutus: //---------------------------------------------------------------------------- static const char *EI_VOI_LUODA = "Taulukolle ei saada varattua tilaa muistista!"; static const char *LIIKAA_ALKIOITA = "Liikaa alkioita, ei voi lisätä!"; static const char *EI_SAA_ALKIOTA = "Ei saada tilaa uudelle alkiolle!"; int cHarrastus::seuraava_nro = 1; const cHarrastus *cHarrastukset::seuraava(int nro) { int i; for (i=kohdalla+1; iViite_nro() == nro ) { kohdalla = i; return alkiot[i]; } } return NULL; } const cHarrastus *cHarrastukset::eka(int nro) { kohdalla = -1; return seuraava(nro); } int cHarrastukset::etsi(int nro,cLuvut &indeksit) const { for (int i=0; iViite_nro() == nro ) { indeksit.push_back(i); } } return indeksit.size(); } void cHarrastukset::poista_alkiot() { for (int i=0; i= max_lkm ) return LIIKAA_ALKIOITA; uusi = new(nothrow) cHarrastus(harrastus); if ( uusi == NULL ) return EI_SAA_ALKIOTA; alkiot[lkm] = uusi; lkm++; return ""; } string cHarrastukset::luo_taulukko(int koko) { poista_kaikki(); if ( koko <= 0 ) return ""; alkiot = new(nothrow) cHarrastus*[koko]; lkm = 0; max_lkm = 0; if ( alkiot == NULL ) return EI_VOI_LUODA; max_lkm = koko; return ""; } void cHarrastukset::poista_taulukko() { if ( max_lkm > 0 ) delete [] alkiot; max_lkm = 0; } string cHarrastukset::lue_tiedostosta(const string &tied) { // Pahasti kesken tiedoston_nimi = tied; koko_nimi = tied; return luo_taulukko(); } string cHarrastukset::talleta() { // Pahasti kesken return ""; }