/* Demo 7 teht„v„t 1.1 ja 1.2 tekij„: S.Mursu Oliot: _________________________________________ | cNaytto | | | | cLaskuri Henkiloautoja | | cLaskuri Kuorma_autoja | | cLaskuri Polkupyoria | | | | Metodit: | | | | piirra_naytto | | nollaa_laskurit | | laske | | lue_merkki | | nayta_laskettavat | |_______________________________________| *//*________________________________________ | cLaskuri | | | | int Laskettava | | | | Metodit: | | | konstruktori olisi hyv„ olla | nollaa | olemassa... :) | lisaa | | nayta_laskettava | |_______________________________________| */ #include #include #include //---------------------------------------------------------------------- class cLaskuri{ int laskettava; //n„yt”n piirron takia olisi hyv„ olla string laskettavan nimi; public: cLaskuri() { laskettava = 0; } void nollaa(void); void lisaa(int n=1); int nayta_laskettava(void) const; }; //---------------------------------------------------------------------- //Laskurin metodien toteutukset: void cLaskuri::nollaa(void) { laskettava = 0; } void cLaskuri::lisaa(int n) { laskettava += n; } int cLaskuri::nayta_laskettava(void) const { return laskettava; } //---------------------------------------------------------------------- class cNaytto{ cLaskuri Henkiloautoja; cLaskuri Kuorma_autoja; cLaskuri Polkupyoria; // cLaskuri *laskurit; char lue_merkki(void) const; void nayta_laskettavat(void) const; public: void piirra_naytto(void) const; void nollaa_laskurit(void); int laske(void); }; //---------------------------------------------------------------------- //cNayton metodien toteutukset: char cNaytto::lue_merkki(void) const { return toupper(getch()); } void cNaytto::nayta_laskettavat(void) const { printf("%20d%20d%20d\n",Henkiloautoja.nayta_laskettava(), Kuorma_autoja.nayta_laskettava(), Polkupyoria.nayta_laskettava()); } void cNaytto::piirra_naytto(void) const { 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" " P - lis„„ polkupy”rien lukum„„r„„\n" " N - nollaa molemmat laskurit\n" " X - lopettaa ohjelman\n" "\n\n" ); printf(" %20s %20s %20s\n","Henkil”autoja","Kuorma-autoja","Polkupy”ri„"); } void cNaytto::nollaa_laskurit(void) { Henkiloautoja.nollaa(); Kuorma_autoja.nollaa(); Polkupyoria.nollaa(); nayta_laskettavat(); } int cNaytto::laske(void) { char c; while (1) { c = lue_merkki(); switch (c) { case 'H': Henkiloautoja.lisaa(); break; case 'P': Polkupyoria.lisaa(); break; case 'K': Kuorma_autoja.lisaa(); break; case 'N': nollaa_laskurit(); break; case 'X': return 0; } nayta_laskettavat(); } } //---------------------------------------------------------------------- int main (void) { cNaytto n; // n.lisaa(cLaskuri("Henkil”autoja",'H'); n.piirra_naytto(); n.laske(); return 0; }