/* matka_o.cpp */ // Ohjelmalla lasketaan mittakaavamuunnoksia 1:200000 kartalta // Vesa Lappalainen 29.1.1996 // C++ toteutus, olio-versio, ei erillist„ k„ytt”liittym„luokkaa. #include const double MITTAKAAVA = 200000.0; const double MM_KM = 1000.0*1000.0; //---------------------------------------------------------------------------- // Apualiohjelmia: //---------------------------------------------------------------------------- inline double mittakaava_muunnos(double matka_mm,double mkaava) { return matka_mm*mkaava/MM_KM; } void ohjeet(double mkaava=MITTAKAAVA) { cout << "Lasken 1:" << mkaava << " kartalta millimetrein„ mitatun matkan\n"; cout << "kilometrein„ luonnossa." << endl; } //---------------------------------------------------------------------------- // Matka-luokka, joka osaa itse pit„„ huolta luonnossa ja kartalla suhteesta //---------------------------------------------------------------------------- class cMatka { int mm; double mkaava; public: cMatka(int imm=0, double imkaava=MITTAKAAVA) { mm = imm; mittakaava(imkaava); } void mittakaava(double imkaava) { mkaava = imkaava; } double mittakaava() { return mkaava; } double kartalla() { return mm; } double luonnossa() { return mittakaava_muunnos(mm,mkaava); } void tulosta() { cout.precision(1); cout.setf(ios::showpoint); cout << "Matka on luonnossa " << luonnossa() << " km." << endl; } void kysy() { cout << "Anna matka millimetrein„>"; cin >> mm; } }; // cMatka //---------------------------------------------------------------------------- int main(void) { cMatka matka; ohjeet(); matka.kysy(); matka.tulosta(); return 0; }