// Koripallo.cpp /* Pit„„ kirjaa koripallon heittoprosenteista! vl-96 EI dokument/view! Suunnitelma: ============ Terve ...... Anna pelaajan nimi>Petteri Anna pelaaja nro >10 -------------------------------- Anna pelin tapahtumat: Petteri 10: 1p sis/heitot >89/90 2p sis/heitot >25/30 3p sis/heitot >1/7 Petteri 10 tilanne: 1p 89/90 98 2p 25/30 83 3p 1/7 14 Haluatko jatka(K/e):k Petteri 10: 1p sis/heitot >19/20 2p sis/heitot >3/12 3p sis/heitot > K„„nnett„ess„ projektiin: CALI\mjonot.c CALI\mjonotpp.cpp CALI\ioali.c (CALI\string.cpp jollei ole jo k„„nt„j„ss„ mukana) */ #include #include #include #include #include #include "ioali.h" #include "mjonotpp.h" //--------------------------------------------------------------------------- // Heitto-luokka // - osaa tulostaa itsens„ // - osaa laskea prosentit // - osaa kysy„ itsens„ //--------------------------------------------------------------------------- class cHeitto { int sisaan; int heittoja; public: cHeitto() { sisaan = 0; heittoja = 0; } void lisaa(int sis,int heit) { if ( 0<= sis && sis <= heit ) { sisaan += sis; heittoja += heit; } } int prosentit() { if ( heittoja == 0 ) return 0; return int(100*(1.0*sisaan/heittoja)); } void tulosta(ostream &os=cout) { os << setw(3) << sisaan << "/" << setw(3) << heittoja << " " << setw(3) << prosentit() << "%"; } void lue() { char c; int sis=0,heit=0; string st; lue_rivi(cin,st); sscanf(st.c_str(),"%d/%d",&sis,&heit); lisaa(sis,heit); } }; //--------------------------------------------------------------------------- // Pelaaja-luokka: // - osaa tulostaa kokonaistilanteen // - osaa kysy„ pelitapahtuman //--------------------------------------------------------------------------- class cPelaaja { string nimi; int nro; cHeitto pisteet[3]; public: cPelaaja(const char *animi="", int anro=0) { nimi = animi; nro = anro; } void tulosta_nimi_ja_nro(ostream &os=cout) { os << nimi << " " << nro; } void lue_pelitapahtumat(); void tulosta_tilanne(ostream &os=cout); }; void cPelaaja::lue_pelitapahtumat() { cout << "Anna pelin tapahtumat:" << endl; cout << " "; tulosta_nimi_ja_nro(cout); cout << ":" << endl; for (int i=0; i < 3; i++) { cout << " " << (i+1) << "p heitot sis/heitot >"; pisteet[i].lue(); } } void cPelaaja::tulosta_tilanne(ostream &os) { cout << endl; tulosta_nimi_ja_nro(os); os << " tilanne:" << endl; for (int i=0; i<3; i++) { os << " " << (i+1) << "p "; pisteet[i].tulosta(os); os << endl; } } //--------------------------------------------------------------------------- // Testip„„ohjelma, jossa testataan yht„ oliota //--------------------------------------------------------------------------- int main(void) { cPelaaja petteri("Petteri",10); cout << "Terve...." << endl; do { cout << "\n\n\n" << endl; petteri.lue_pelitapahtumat(); petteri.tulosta_tilanne(); } while ( kylla_kysymys("\n\nHaluatko jatkaa") ); cout << endl; cout << "Kiitti..." << endl; return 0; }