/* kerho.cpp */ /* Kerho-ohjelman menut ja toimintojen rungot. ** Tekij„t: Vesa Lappalainen ** Ohjelmointikurssi 1996 ** Tehty: 6.12.1995 ** ** Teht„vi„: 1) "P„„aliohjelmien" avustus, tulosta jne. alussa toistuu ** samat lauseet. Tee aliohjelma otsikko, jonka avulla ko. ** aliohjelmat saadaan 2 rivin mittaisiksi. ** ** 2) Miksi aliohjelmiin avustus, tulosta jne vied„„n painettu ** n„pp„in parametrina. Miksei tulosteta suoraan: ** "?. Avustus" ** */ #include #include #include using namespace std; //---------------------------------------------------------------------------- #define MERKKI_ISOKSI 1 #define KAIKKI_KELPAA NULL #define EI_OLETUSTA 0 #define RIVINVAIHTO "\r\n" //---------------------------------------------------------------------------- #include /* Toimii vain Turbo C:ss„ */ char lue_merkki(void) { return getch(); /* Toimii vain Turbo C:ss„ */ } char isoksi(char c) { if ( c<'a' ) return c; if ( c>'z' ) return c; return c-(char)('a'-'A'); } char odota_nappain(const char *kelpaavat, char oletus, int merkki_isoksi) { char painettu; do { painettu = lue_merkki(); if ( merkki_isoksi ) painettu = isoksi(painettu); if ( oletus != EI_OLETUSTA && strchr(RIVINVAIHTO,painettu) ) return oletus; } while ( kelpaavat != NULL && strchr(kelpaavat,painettu) == NULL ); return painettu; } void odota_jotakin(void) { cout << "Paina jotakin!" << endl; odota_nappain(KAIKKI_KELPAA,EI_OLETUSTA,MERKKI_ISOKSI); } int kylla_vastaus(void) { return (odota_nappain("KE",'K',MERKKI_ISOKSI)=='K'); } void ei_toimi(void) { cout << "Ei toimi viel„!" << endl; odota_jotakin(); } //---------------------------------------------------------------------------- class cKerho { // Kerholuokka, jota viel„ paljon korjataan public: string kerhon_nimi; int jasenia; }; //---------------------------------------------------------------------------- void avustus(char valinta) { cout << "\n\n\n" << endl; cout << valinta << ". Avustus" << endl; cout << "===========" << endl; ei_toimi(); } void lisaa_uusi_jasen(char valinta) { cout << "\n\n\n" << endl; cout << valinta << ". Uuden j„senen lis„ys" << endl; cout << "========================" << endl; cout << endl; ei_toimi(); } void etsi_jasenen_tiedot(char valinta) { cout << "\n\n\n" << endl; cout << valinta << ". Etsi j„senen tiedot" << endl; cout << "=======================" << endl; ei_toimi(); } void tulosteet(char valinta) { cout << "\n\n\n" << endl; cout << valinta << ". Tulosteet" << endl; cout << "=============" << endl; ei_toimi(); } void tietojen_korjailu(char valinta) { cout << "\n\n\n" << endl; cout << valinta << ". Tietojen korjailu" << endl; cout << "=====================" << endl; ei_toimi(); } void paivita_jasenmaksuja(char valinta) { cout << "\n\n\n" << endl; cout << valinta << ". P„ivit„ j„senmaksuja" << endl; cout << "========================" << endl; ei_toimi(); } void paamenu(const cKerho &kerho) { 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 paavalinta(cKerho &kerho) { char nappain; while (1) { paamenu(kerho); nappain = odota_nappain("?012345",0,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; } } } void 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 ohjeet(void) { logo(); cout << endl; cout << "T„ll„ ohjelmalla yll„pidet„„n kerhon j„senrekisteri„." << endl; } void kiitokset(void) { cout << endl; cout << "KIITOS KŽYT™STŽ JA TERVETULOA UUDELLEEN" << endl; cout << "\n\n" << endl; } string lue_kerho(cKerho &kerho) { cout << "Anna kerhon nimi>" << endl; ei_toimi(); kerho.kerhon_nimi = "KELMIT"; kerho.jasenia = 5; return ""; } string talleta_kerho(cKerho & /* kerho */ ) { logo(); cout << endl; cout << "Talletus..."; ei_toimi(); return ""; } int main(void) { cKerho kerho; ohjeet(); lue_kerho(kerho); paavalinta(kerho); talleta_kerho(kerho); kiitokset(); return 0; }