// asunto3.cpp // Kasitellaan asunnon tietoja /vl-99 #include #include #include using namespace std; void tulosta_rivi(const string &teksti,double ala, double tilavuus, int kaappeja) { long oldf = cout.setf(ios::left); cout << setw(20) << teksti << " "; cout.flags(oldf); cout << setw(2) << ala << " m2 " << setw(2) << tilavuus << " m3 " << kaappeja << " kaappia" << endl; } class cHuone { string nimi; double pit,lev,kork; int kaappeja; public: cHuone(const char *n="Huone", double p=2, double l=2, double k=2, int kaap=0): nimi(n), pit(p), lev(l), kork(k), kaappeja(kaap) { } double ala() const { return pit*lev; } double tilavuus() const { return ala()*kork; } int Kaappeja() const { return kaappeja; } void lisaa_kaappeja(void) { kaappeja++; } void tulosta() const { tulosta_rivi(nimi,ala(),tilavuus(),Kaappeja());} }; const MAX_HUONEITA = 6; class cAsunto { cHuone huoneet[MAX_HUONEITA]; int huoneita; public: cAsunto() {huoneita=0;} void lisaa(const cHuone &huone) { if ( huoneita >= MAX_HUONEITA ) return; huoneet[huoneita] = huone; huoneita++; } void lisaa_kaappeja(); double ala() const; double tilavuus() const; int Kaappeja() const; void tulosta() const; }; void cAsunto::lisaa_kaappeja() { if ( huoneita == 0 ) return; cHuone *huone = &huoneet[0]; for (int i=0; iKaappeja() ) huone = &huoneet[i]; } huone->lisaa_kaappeja(); } double cAsunto::ala() const { double summa = 0; for (int i=0; i