SHOW:
|
|
- or go back to the newest paste.
1 | #include <cstdlib> | |
2 | #include <iostream> | |
3 | using namespace std; | |
4 | ||
5 | class Figura | |
6 | { | |
7 | public: | |
8 | Figura(){} | |
9 | virtual char * nazwa() = 0; | |
10 | virtual double pole() = 0; | |
11 | }; | |
12 | ||
13 | class Kwadrat : public Figura | |
14 | { | |
15 | public: | |
16 | Kwadrat( int b ) : bok( b ) {} | |
17 | char * nazwa() { return "Kwadrat"; } | |
18 | double pole() { return bok * bok; } | |
19 | double bok; | |
20 | }; | |
21 | ||
22 | class Kolo : public Figura | |
23 | { | |
24 | public: | |
25 | Kolo( int p ) : promien( p ) {} | |
26 | char * nazwa() { return "Kolo"; } | |
27 | double pole() { return 3.14 * promien * promien; } | |
28 | double promien; | |
29 | }; | |
30 | ||
31 | class Barbapapa : public Figura | |
32 | { | |
33 | public: | |
34 | Barbapapa() {} | |
35 | char * nazwa() { return "Barbapapa"; } | |
36 | double pole() { return 1000; } | |
37 | }; | |
38 | ||
39 | ||
40 | int oldMain() | |
41 | { | |
42 | Figura * f; | |
43 | int opcja; | |
44 | ||
45 | cout << "\n1. Kwadrat\n2. Kolo\n3. Barbapapa\n>> "; | |
46 | cin >> opcja; | |
47 | switch( opcja ) | |
48 | { | |
49 | case 1: f = new Kwadrat( 10 ); | |
50 | break; | |
51 | case 2: f = new Kolo( 5 ); | |
52 | break; | |
53 | case 3: f = new Barbapapa(); | |
54 | break; | |
55 | } | |
56 | ||
57 | cout << endl << "Figura: " << f->nazwa(); // (*f).nazwa() | |
58 | cout << endl << "Pole: " << f->pole(); | |
59 | ||
60 | cin.ignore(); | |
61 | cin.get(); | |
62 | return EXIT_SUCCESS; | |
63 | } | |
64 | ||
65 | ||
66 | int main() | |
67 | { | |
68 | const int MAKS = 10; | |
69 | Figura * f[ MAKS ]; | |
70 | ||
71 | int ileFigur = 0; | |
72 | int opcja; | |
73 | ||
74 | do | |
75 | { | |
76 | if( ileFigur >= MAKS ) | |
77 | break; | |
78 | ||
79 | cout << "\n1. Kwadrat\n2. Kolo\n3. Barbapapa\n4. Koniec\n>> "; | |
80 | cin >> opcja; | |
81 | switch( opcja ) | |
82 | { | |
83 | case 1: f[ ileFigur++ ] = new Kwadrat( 10 ); | |
84 | break; | |
85 | case 2: f[ ileFigur++ ] = new Kolo( 5 ); | |
86 | break; | |
87 | case 3: f[ ileFigur++ ] = new Barbapapa(); | |
88 | break; | |
89 | } | |
90 | } | |
91 | while( opcja != 4 ); | |
92 | ||
93 | cout << endl << "Liczba figur w kolekcji: " << ileFigur; | |
94 | ||
95 | for( int i = 0; i < ileFigur; ++i ) | |
96 | cout << endl << "Figura: " << f[ i ]->nazwa(); // (*f).nazwa() | |
97 | ||
98 | double suma = 0; | |
99 | for( int i = 0; i < ileFigur; ++i ) | |
100 | suma += f[ i ]->pole(); | |
101 | cout << endl << "sumaryczne pole: " << suma; | |
102 | ||
103 | cin.ignore(); | |
104 | cin.get(); | |
105 | return EXIT_SUCCESS; | |
106 | } |