Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class PLN
- {
- protected:
- private:
- public:
- int bok1, bok2, srednica;
- PLN(int my_bok1, int my_bok2): bok1(my_bok1), bok2(my_bok2) {}
- PLN(float my_srednica) : srednica(my_srednica){}
- virtual float oblicz_powierzchnie() = 0;
- bool za_duza_powierzchnia(float ograniczenie)
- {
- if ( oblicz_powierzchnie() > ograniczenie )
- {
- cout << "Za duze pole powierzchni!\n";
- return true;
- }
- else
- {
- cout << "Akceptowalne pole powierzchni!\n";
- return false;
- }
- }
- };
- class Moneta : public PLN
- {
- protected:
- private:
- public:
- Moneta(float my_srednica) : PLN(my_srednica) {}
- float oblicz_powierzchnie()
- {
- return 3.14 * (srednica/2) * (srednica/2);
- }
- int pokrycie_powierzchni (float ograniczenie)
- {
- float i = 1, suma = oblicz_powierzchnie();
- if ( za_duza_powierzchnia(ograniczenie) == true )
- {
- cout << "Nie mozna wykonac zadanie, pole powierzchni przekracza ograniczenie.\n";
- }
- else
- {
- while ( suma <= ograniczenie)
- {
- suma = suma + oblicz_powierzchnie();
- i = i + 1;
- if ( suma == ograniczenie)
- {
- cout << "By pokryc jeden metr kwadratowy potrzeba " << i << " monet o tym nominale.\n";
- return 1;
- }
- if ( suma > ograniczenie )
- {
- cout << "Nie mozna pokryc dokladnie jednego metra.\nIle wykorzystano monet: " << i << endl;
- printf("Suma wynosi: %.2fmm\n", suma);
- cout << "Jesli sie odejmie jedna monete to suma bedzie wynosic: ";
- printf("%.2fmm\n", suma - oblicz_powierzchnie());
- return -1;
- }
- }
- }
- return 0;
- }
- friend ostream & operator << (ostream & dane, Moneta &m)
- {
- return ( dane << "Moneta" << endl
- << "Srednica: " << m.srednica << "mm" << endl);
- }
- };
- class Banknot : public PLN
- {
- protected:
- private:
- public:
- Banknot(int my_bok1, int my_bok2) : PLN(my_bok1, my_bok2) {}
- float oblicz_powierzchnie()
- {
- return (bok1 * bok2);
- }
- int pokrycie_powierzchni (float ograniczenie)
- {
- double i = 1, suma = oblicz_powierzchnie();
- if ( za_duza_powierzchnia(ograniczenie) == true )
- {
- cout << "Nie mozna wykonac zadanie, pole powierzchni przekracza ograniczenie.\n";
- }
- else
- {
- while ( suma <= ograniczenie)
- {
- suma = suma + oblicz_powierzchnie();
- i = i + 1;
- if ( suma == ograniczenie)
- {
- cout << "By pokryc jeden metr kwadratowy potrzeba " << i << " banknotow o tym nominale.\n";
- return 1;
- }
- if ( suma > ograniczenie )
- {
- cout << "Nie mozna pokryc dokladnie jednego metra.\nIle wykorzystano banknotow: " << i << endl;
- printf("Suma wynosi: %.2fmm\n", suma);
- cout << "Jesli sie odejmie jeden banknot to suma bedzie wynosic: ";
- printf("%.2fmm\n", suma - oblicz_powierzchnie());
- return -1;
- }
- }
- }
- return 0;
- }
- friend ostream & operator << (ostream & dane, Banknot &b)
- {
- return (dane << "Banknot" << endl
- << "Bok 1: " << b.bok1 << "mm" << endl
- << "Bok 2: " << b.bok2 << "mm" << endl);
- }
- };
- int main()
- {
- float ograniczenie = 1000000;
- Banknot zl10(120, 60);
- Banknot zl20(126, 63);
- Banknot zl50(132, 66);
- Banknot zl100(138, 69);
- Banknot zl200(144, 72);
- Moneta gr500(24);
- Moneta gr200(21.5);
- Moneta gr100(23);
- Moneta gr50(20.5);
- Moneta gr20(18.5);
- Moneta gr10(16.5);
- cout << zl10.oblicz_powierzchnie() << endl;
- cout << zl10.pokrycie_powierzchni(ograniczenie);
- cout << gr500.oblicz_powierzchnie() << endl;
- cout << gr500.pokrycie_powierzchni(ograniczenie);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement