/* kerho.c */ /* Kerho-ohjelman menut ja toimintojen rungot. ** Tekij„t: Vesa Lappalainen ** Ohjelmointikurssi 1991 ** Tehty: 4.12.1993 */ #include #include #include #define VAIN_ISOT 1 typedef struct { char kerhon_nimi[40]; int jasenia; } Kerho_tyyppi; char lue_merkki(void) { #include /* Toimii vain Turbo C:ss„ */ 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(char *kelpaavat, char oletus, int isot) { char painettu; do { painettu=lue_merkki(); if (isot) painettu = isoksi(painettu); if ( oletus && ((painettu=='\n') || (painettu=='\r')) ) return oletus; } while ( kelpaavat && !strchr(kelpaavat,painettu) ); return painettu; } void odota_jotakin(void) { printf("Paina jotakin!\n"); odota_nappain(NULL,0,VAIN_ISOT); } int kylla_vastaus(void) { return (odota_nappain("KE",'K',VAIN_ISOT)=='K'); } void ei_toimi(Kerho_tyyppi *kerho) { printf("\nEi toimi viel„! "); if (kerho->jasenia==0); odota_jotakin(); } void avustus(Kerho_tyyppi *kerho,char valinta) { if ( kerho ); printf("\n\n\n\n"); printf("%c. Avustus\n",valinta); printf( "===========\n"); ei_toimi(kerho); } void lisaa_uusi_jasen(Kerho_tyyppi *kerho,char valinta) { printf("\n\n\n\n"); printf("%c. Uuden j„senen lis„ys\n",valinta); printf( "==========================\n"); printf("\n"); ei_toimi(kerho); } void etsi_jasenen_tiedot(Kerho_tyyppi *kerho,char valinta) { printf("\n\n\n\n"); printf("%c. Etsi j„senen tiedot\n",valinta); printf( "=======================\n"); ei_toimi(kerho); } void tulosteet(Kerho_tyyppi *kerho,char valinta) { printf("\n\n\n\n"); printf("%c. Tulosteet\n",valinta); printf( "=============\n"); ei_toimi(kerho); } void tietojen_korjailu(Kerho_tyyppi *kerho,char valinta) { printf("\n\n\n\n"); printf("%c. Tietojen korjailu\n",valinta); printf( "=====================\n"); ei_toimi(kerho); } void paivita_jasenmaksuja(Kerho_tyyppi *kerho,char valinta) { printf("\n\n\n\n"); printf("%c. P„ivit„ j„senmaksuja\n",valinta); printf( "========================\n"); ei_toimi(kerho); } void paamenu(Kerho_tyyppi *kerho) { printf("\n\n\n\n\n"); printf("J„senrekisteri\n"); printf("==============\n"); printf("\n"); printf("Kerhossa %s on %d j„sent„.\n",kerho->kerhon_nimi,kerho->jasenia); printf("\n"); printf("Valitse:\n"); printf(" ? = avustus\n"); printf(" 0 = lopetus\n"); printf(" 1 = lis„„ uusi j„sen\n"); printf(" 2 = etsi j„senen tiedot\n"); printf(" 3 = tulosteet\n"); printf(" 4 = tietojen korjailu\n"); printf(" 5 = p„ivit„ j„senmaksuja\n"); printf(" :"); } int paavalinta(Kerho_tyyppi *kerho) { char nappain; while (1) { paamenu(kerho); nappain = odota_nappain("?012345",0,VAIN_ISOT); switch (nappain) { case '?': avustus(kerho,nappain); break; case '0': return 0; case '1': lisaa_uusi_jasen(kerho,nappain); break; case '2': etsi_jasenen_tiedot(kerho,nappain); break; case '3': tulosteet(kerho,nappain); break; case '4': tietojen_korjailu(kerho,nappain); break; case '5': paivita_jasenmaksuja(kerho,nappain); break; default : printf("N„in ei voi k„yd„!\n"); return 1; } } } void logo(void) { printf("\n"); printf(" ###################################\n"); printf(" # J Ž S E N R E K I S T E R I #\n"); printf(" # versio 9.95 #\n"); printf(" # Hannu Hanhi #\n"); printf(" ###################################\n"); } void ohjeet(void) { logo(); printf("\n"); printf("T„ll„ ohjelmalla yll„pidet„„n kerhon j„senrekisteri„.\n"); } void kiitokset(void) { printf("\n"); printf("KIITOS KŽYT™STŽ JA TERVETULOA UUDELLEEN\n"); printf("\n\n\n"); } char *lue_kerho(Kerho_tyyppi *kerho) { printf("Anna kerhon nimi>\n"); ei_toimi(kerho); strcpy(kerho->kerhon_nimi,"KELMIT"); kerho->jasenia = 5; return NULL; } char *talleta_kerho(Kerho_tyyppi *kerho) { logo(); printf("\n"); printf("Talletus..."); ei_toimi(kerho); return NULL; } int main(void) { Kerho_tyyppi kerho; ohjeet(); lue_kerho(&kerho); paavalinta(&kerho); talleta_kerho(&kerho); kiitokset(); return 0; }