/**************/ /* laskuri2.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, gotoxy ** ** N„yt”n k„ytt” muutettu j„rkev„mm„ksi. ** ** Vesa Lappalainen ** 31.7.1992 ** ** Teht„vi„: 1) Lis„„ ohjelmaan polkupy”rien laskeminen. ** Moneenko kohtaan tulee muutos? ** 2) Lis„„ ohjelmaan lis„n„pp„imet + ja - joiden painamisen ** j„lkeen vastaavasti K:lla ja H:lla joko lis„t„„n tai ** v„hennet„„n. ** Tulosta jonnekin kohti n„ytt”„ se, kumpiko tila (+ vai -) on ** menossa! ** 3) ** ** */ /****************************************************************************/ #include #include #include /****************************************************************************/ /* Globaalit laskurit: */ int henkiloautoja = 0; int kuorma_autoja = 0; int laskuri_rivi = 0; /****************************************************************************/ char lue_komento(void) /* N„pp„imist”lt„ luettu merkki. */ { /* Seuraava toimii mm. Turbo C:ss„: */ return toupper(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"); laskuri_rivi=wherey(); } /****************************************************************************/ void nayta_autot(void) { gotoxy(1,laskuri_rivi); printf("%20d%20d",henkiloautoja,kuorma_autoja); } /****************************************************************************/ void nollaa_laskurit(void) { henkiloautoja = 0; kuorma_autoja = 0; nayta_autot(); } /****************************************************************************/ void lisaa_laskuria(int *laskuri) { (*laskuri)++; nayta_autot(); } /****************************************************************************/ int laske(void) { char c; while (1) { c = lue_komento(); switch (c) { case 'H': lisaa_laskuria(&henkiloautoja); break; case 'K': lisaa_laskuria(&kuorma_autoja); break; case 'N': nollaa_laskurit(); break; case 'X': return 0; } } } /****************************************************************************/ int main(void) { piirra_naytto(); nollaa_laskurit(); laske(); return 0; }