/**************/ /* laskuri.c */ /****************************************************************************/ /* ** Ohjelma, jolla voidaan laskea autojen lukumääriä. ** ** Käyttöohje: ks. aliohjelma alusta_naytto ** ** Toimii sellaisenaan vain mikäli kirjastosta löytyy ** funktiot: getch, clrscr ** ** Ohjelma on hyvin yksinkertainen versio, jossa jokaisen näppäimen ** painalluksen jälkeen näyttöön tulostuu uusi rivi. ** ** Vesa Lappalainen ** 31.7.1992 ** ** Tehtäviä: 1) Lisää ohjelmaan polkupyörien laskeminen. ** Moneenko kohtaan tulee muutos? ** 2) Muuta 'lisaa_ka' ja 'lisaa_ha' yhdeksi aliohjelmaksi ** käyttäen parametrin välitystä. ** 3) Muuta lue_merkki aliohjelmaa siten, ettei 'laske'- ** aliohjelmassa tarvitse enää tutkia on iso vai pieni ** kirjain. Muuta myös 'laske'-aliohjelmaa vastaavasti. */ /****************************************************************************/ #include #include /****************************************************************************/ /* Globaalit laskurit: */ int henkiloautoja = 0; int kuorma_autoja = 0; /****************************************************************************/ char lue_merkki(void) /* Näppäimistöltä luettu merkki. */ { /* Seuraava toimii mm. Turbo C:ssä: */ return getch(); } /****************************************************************************/ void piirra_naytto(void) { clrscr(); printf("\n" " Ohjelmalla lasketaan kuorma- ja henkilöautojen lukumääriä\n" " sitä mukaa kun ne ajavat ohi.\n" "\n" " Käyttöohje: K - lisää kuorma-autojen lukumäärää\n" " H - lisää henkilöautojen lukumäärää\n" " N - nollaa molemmat laskurit\n" " X - lopettaa ohjelman\n" "\n\n" ); printf(" %20s %20s\n","Henkilöautoja","Kuorma-autoja"); } /****************************************************************************/ void nayta_autot(void) { printf("%20d%20d\n",henkiloautoja,kuorma_autoja); } /****************************************************************************/ void nollaa_laskurit(void) { henkiloautoja = 0; kuorma_autoja = 0; nayta_autot(); } /****************************************************************************/ void lisaa_ha(void) { henkiloautoja++; nayta_autot(); } /****************************************************************************/ void lisaa_ka(void) { kuorma_autoja++; nayta_autot(); } /****************************************************************************/ int laske(void) { char c; while (1) { c = lue_merkki(); switch (c) { case 'h': case 'H': lisaa_ha(); break; case 'k': case 'K': lisaa_ka(); break; case 'n': case 'N': nollaa_laskurit(); break; case 'x': case 'X': return 0; } } } /****************************************************************************/ int main(void) { piirra_naytto(); nollaa_laskurit(); laske(); return 0; }