/* kerho.cpp */ /* Kerho-ohjelman tietorakenteen k„sittely ** ** Tekij„t: Vesa Lappalainen ** Tehty: 09.12.1995 ** */ #include #include "kerho.h" //---------------------------------------------------------------------------- // Kerhon toteutus: //---------------------------------------------------------------------------- const char *EI_VOI_LUODA = "J„senist”lle ei saada varattua tilaa muistista!"; const char *LIIKAA_JASENIA = "Liikaa j„seni„, ei voi lis„t„!"; const char *EI_SAA_JASENTA = "Ei saada tilaa uudelle j„senelle!"; void cKerho::poista_jasenet() { for (int i=0; i= max_jasenia ) return LIIKAA_JASENIA; uusi_jasen = new cJasen(jasen); if ( uusi_jasen == NULL ) return EI_SAA_JASENTA; jasenet[jasenia] = uusi_jasen; jasenia++; muutettu = 1; return NULL; } const char *cKerho::luo_jasentaulukko(int koko) { const char *virhe; if ( max_jasenia ) { // Jos j„seni„ ennest„„n, talletetaan vanhat if ( ( virhe = talleta() ) != NULL ) return virhe; poista_jasenisto(); } if ( koko <= 0 ) return NULL; jasenet = (cJasen **)malloc( koko * (sizeof(cJasen *)) ); jasenia = 0; max_jasenia = 0; if ( jasenet == NULL ) return EI_VOI_LUODA; max_jasenia = koko; return NULL; } void cKerho::poista_jasentaulukko() { if ( max_jasenia > 0 ) free(jasenet); max_jasenia = 0; } const char *cKerho::luo(const char *tied,const char *nimi,int max_jas) { const char *virhe; if ( ( virhe = luo_jasentaulukko(max_jas) ) != NULL ) return virhe; tiedoston_nimi = tied; kerhon_nimi = nimi; muutettu = 1; return NULL; } const char *cKerho::lue_tiedostosta(const char *tied) { // Pahasti kesken const char *virhe; if ( ( virhe = luo_jasentaulukko() ) != NULL ) return virhe; tiedoston_nimi = tied; kerhon_nimi = tied; muutettu = 0; return NULL; } const char *cKerho::talleta() { // Pahasti kesken if ( !muutettu ) return NULL; return NULL; }