/* naytto.cpp */ /* Kerho-ohjelman käyttöliittymä. ** ** Tekijät: Vesa Lappalainen ** Tehty: 09.12.1995 ** */ #include #include using namespace std; #include "dosout.h" #include "naytto.h" #include "ioali.h" //---------------------------------------------------------------------------- // Vakiota //---------------------------------------------------------------------------- #define TARKENNIN ".dat" #define VANHATARK ".bak" //---------------------------------------------------------------------------- // Näytön käsittely: //---------------------------------------------------------------------------- void cNaytto::logo(void) { cout << endl; cout << " ###################################" << endl; cout << " # J Ä S E N R E K I S T E R I #" << endl; cout << " # versio 9.95 #" << endl; cout << " # Hannu Hanhi #" << endl; cout << " ###################################" << endl; } void cNaytto::ohjeet(void) { logo(); cout << endl; cout << "Tällä ohjelmalla ylläpidetään kerhon jäsenrekisteriä." << endl; } void cNaytto::kiitokset(void) { cout << endl; cout << "KIITOS KÄYTÖSTÄ JA TERVETULOA UUDELLEEN" << endl; cout << "\n\n" << endl; } int cNaytto::lue_tiedosto() { cout << "Anna kerhon nimi>" << endl; ei_toimi(); return ilmoitus(kerho->lue_tiedostosta("KELMIT")); } int cNaytto::talleta() { logo(); kerho->TeeBak(VANHATARK); if ( ilmoitus(kerho->talleta()) ) return 1; cout << endl; cout << "Tiedot talletettu tiedostoon " << kerho->Tiedoston_nimi() << endl; cout << "Vanhat tiedot tiedostossa " << kerho->Bak_nimi() << endl; cout << "\n\nTosin talletus ei vielä toimi!" << endl; return 0; } void cNaytto::tulosta(ostream &os,const cJasen &jasen) { int nro = jasen.Tunnus_nro(); cLuvut indeksit; jasen.tulosta(os); kerho->etsi_harrastukset(nro,indeksit); for (int i=0; ianna_harrastus(indeksit[i]); har.tulosta(os); } } void cNaytto::kysy_tiedot(cJasen &jasen) { cHarrastus har; int nro = jasen.Tunnus_nro(); cout << "Toistaiseksi osaan lisätä vain Aku Ankan" << endl; jasen.vastaa_aku_ankka(); int lkm = rand()%5; for (int i=0; ilisaa(har)) ) break; } } void cNaytto::lisaa_uusi_jasen(char valinta) { cJasen jasen; otsikko(valinta,"Uuden jäsenen lisäys"); jasen.rekisteroi(); kysy_tiedot(jasen); cout << "Lisätäänkö" << endl; tulosta(cout,jasen); cout << ":"; int pois = 1; if ( kylla_vastaus() ) pois = ilmoitus(kerho->lisaa(jasen)); if ( pois ) kerho->poista(jasen.Tunnus_nro()); } #ifdef ILMANHARRASTUSTA void cNaytto::lisaa_uusi_jasen(char valinta) { cJasen jasen; otsikko(valinta,"Uuden jäsenen lisäys"); cout << "Toistaiseksi osaan lisätä vain Aku Ankan" << endl; jasen.rekisteroi(); jasen.vastaa_aku_ankka(); cout << "Lisätäänkö" << endl; jasen.tulosta(cout); cout << ":"; if ( kylla_vastaus() ) ilmoitus(kerho->lisaa(jasen)); } #endif void cNaytto::etsi_jasenen_tiedot(char valinta) { otsikko(valinta,"Etsi jäsenen tiedot"); ei_toimi(); } void cNaytto::tulosteet(char valinta) { otsikko(valinta,"Tulosteet"); cout << "Toimii toistaiseksi vain näytölle\n" << endl; cout << "---------------------------------------------------------" << endl; for (int i=0; iJasenia(); i++) { const cJasen &jasen = kerho->anna_jasen(i); tulosta(cout,jasen); cout << endl; } cout << "---------------------------------------------------------" << endl; odota_jotakin(); } void cNaytto::tietojen_korjailu(char valinta) { otsikko(valinta,"Tietojen korjailu"); ei_toimi(); } void cNaytto::paivita_jasenmaksuja(char valinta) { otsikko(valinta,"Päivitä jäsenmaksuja"); ei_toimi(); } void cNaytto::avustus(char valinta) { otsikko(valinta,"Avustus"); ei_toimi(); } void cNaytto::paamenu() { cout << "\n\n\n\n" << endl; cout << "Jäsenrekisteri" << endl; cout << "==============" << endl; cout << endl; cout << "Kerhossa " << kerho->Kerhon_nimi() << " on " << kerho->Jasenia() << " jäsentä." << endl; cout << endl; cout << "Valitse:" << endl; cout << " ? = avustus" << endl; cout << " 0 = lopetus" << endl; cout << " 1 = lisää uusi jäsen" << endl; cout << " 2 = etsi jäsenen tiedot" << endl; cout << " 3 = tulosteet" << endl; cout << " 4 = tietojen korjailu" << endl; cout << " 5 = päivitä jäsenmaksuja" << endl; cout << " :"; } int cNaytto::paavalinta() { char nappain; while (1) { paamenu(); nappain = odota_nappain("?012345",EI_OLETUSTA,MERKKI_ISOKSI); switch (nappain) { case '?': avustus(nappain); break; case '0': return 0; case '1': lisaa_uusi_jasen(nappain); break; case '2': etsi_jasenen_tiedot(nappain); break; case '3': tulosteet(nappain); break; case '4': tietojen_korjailu(nappain); break; case '5': paivita_jasenmaksuja(nappain); break; default : cout << "Näin ei voi käydä!" << endl; return 1; } } }