MeehoweCK

Untitled

May 19th, 2020
1,176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.92 KB | None | 0 0
  1. // main.cpp
  2. #include <iostream>
  3. #include "Bryla.h"
  4. #include "Stozek.h"
  5. #include "Szescian.h"
  6. #include "Kula.h"
  7. #include "Prostopadloscian.h"
  8. #include "CzworoscianForemny.h"
  9.  
  10. using namespace std;
  11.  
  12. int main()
  13. {
  14.     Bryla* wsk = new Prostopadloscian(2, 3, 7);
  15.     wsk->pobierz_dane();
  16.     cout << endl;
  17.     delete wsk;
  18.     wsk = new CzworoscianForemny(8.5);
  19.     wsk->pobierz_dane();
  20.     cout << endl;
  21.     delete wsk;
  22.     return 0;
  23. }
  24.  
  25. // Bryla.h
  26. #ifndef BRYLA_H
  27. #define BRYLA_H
  28.  
  29. class Bryla
  30. {
  31.     public:
  32.         virtual double objetosc() = 0;
  33.         virtual double pole_powierzchni_calkowitej() = 0;
  34.         virtual void pobierz_dane() = 0;
  35. };
  36.  
  37. #endif // BRYLA_H
  38.  
  39. // Stozek.h
  40. #ifndef STOZEK_H
  41. #define STOZEK_H
  42.  
  43. #include "Bryla.h"
  44.  
  45. class Stozek : public Bryla
  46. {
  47.     public:
  48.         Stozek(double, double);
  49.         double objetosc();
  50.         double pole_powierzchni_calkowitej();
  51.         void pobierz_dane();
  52.         double tworzaca();
  53.     private:
  54.         double r;
  55.         double h;
  56. };
  57.  
  58. #endif // STOZEK_H
  59.  
  60. // Stozek.cpp
  61. #include "Stozek.h"
  62. #include "../head.h"
  63. #include <cmath>
  64. #include <iostream>
  65.  
  66. using namespace std;
  67.  
  68. /*class Stozek : public Bryla
  69. {
  70.     public:
  71.         Stozek(double, double);
  72.         double objetosc();
  73.         double pole_powierzchni_calkowitej();
  74.         void pobierz_dane();
  75.         double tworzaca();
  76.     private:
  77.         double r;
  78.         double h;
  79. };*/
  80.  
  81. Stozek::Stozek(double promien, double wysokosc) : r(promien), h(wysokosc)
  82. {
  83. }
  84.  
  85. double Stozek::objetosc()
  86. {
  87.     return PI * r * r * h / 3;
  88. }
  89.  
  90. double Stozek::pole_powierzchni_calkowitej()
  91. {
  92.     return PI * r * (r + tworzaca());
  93. }
  94.  
  95. void Stozek::pobierz_dane()
  96. {
  97.     cout << "Stozek:\n";
  98.     cout << "\t* promien = " << r << endl;
  99.     cout << "\t* wysokosc = " << h << endl;
  100.     cout << "\t* tworzaca = " << tworzaca() << endl;
  101.     cout << "\t* objetosc = " << objetosc() << endl;
  102.     cout << "\t* pole powierzchni calkowitej = " << pole_powierzchni_calkowitej() << endl;
  103. }
  104.  
  105. double Stozek::tworzaca()
  106. {
  107.     return pow(r*r + h*h, 0.5);
  108. }
  109.  
  110. // Szescian.h
  111. #ifndef SZESCIAN_H
  112. #define SZESCIAN_H
  113.  
  114. #include "Bryla.h"
  115.  
  116. class Szescian : public Bryla
  117. {
  118.     public:
  119.         Szescian(double);
  120.         double objetosc();
  121.         double pole_powierzchni_calkowitej();
  122.         void pobierz_dane();
  123.     private:
  124.         double x;
  125. };
  126.  
  127. #endif // SZESCIAN_H
  128.  
  129. // Szescian.cpp
  130. #include "Szescian.h"
  131. #include <iostream>
  132.  
  133. using namespace std;
  134.  
  135. /*class Szescian : public Bryla
  136. {
  137.     public:
  138.         Szescian(double);
  139.         double objetosc();
  140.         double pole_powierzchni_calkowitej();
  141.         void pobierz_dane();
  142.     private:
  143.         double x;
  144. };*/
  145.  
  146. Szescian::Szescian(double bok) : x(bok)
  147. {
  148. }
  149.  
  150. double Szescian::objetosc()
  151. {
  152.     return x * x * x;
  153. }
  154.  
  155. double Szescian::pole_powierzchni_calkowitej()
  156. {
  157.     return 6 * x * x;
  158. }
  159.  
  160. void Szescian::pobierz_dane()
  161. {
  162.     cout << "Szescian:\n";
  163.     cout << "\t* dlugosc boku = " << x << endl;
  164.     cout << "\t* pole powierzchni calkowitej = " << pole_powierzchni_calkowitej() << endl;
  165.     cout << "\t* objetosc = " << objetosc() << endl;
  166. }
  167.  
  168. // head.h
  169. #ifndef HEAD_H
  170. #define HEAD_H
  171.  
  172. const double PI = 3.141592;
  173.  
  174. #endif // HEAD_H
  175.  
  176. // Kula.h
  177. #ifndef KULA_H
  178. #define KULA_H
  179.  
  180. #include "Bryla.h"
  181.  
  182. class Kula : public Bryla
  183. {
  184.     public:
  185.         Kula(double);
  186.         double objetosc();
  187.         double pole_powierzchni_calkowitej();
  188.         void pobierz_dane();
  189.     private:
  190.         double r;
  191. };
  192.  
  193. #endif // KULA_H
  194.  
  195. // Kula.cpp
  196. #include "Kula.h"
  197. #include "../head.h"
  198. #include <iostream>
  199.  
  200. using namespace std;
  201.  
  202. /*class Kula : public Bryla
  203. {
  204.     public:
  205.         Kula(double);
  206.         double objetosc();
  207.         double pole_powierzchni_calkowitej();
  208.         void pobierz_dane();
  209.     private:
  210.         double r;
  211. };*/
  212.  
  213. Kula::Kula(double x) : r(x)
  214. {
  215. }
  216.  
  217. double Kula::objetosc()
  218. {
  219.     return 4/3 * PI * r*r*r;
  220. }
  221.  
  222. double Kula::pole_powierzchni_calkowitej()
  223. {
  224.     return 4 * PI * r * r;
  225. }
  226.  
  227. void Kula::pobierz_dane()
  228. {
  229.     cout << "Kula:\n";
  230.     cout << "\t* promien = " << r << endl;
  231.     cout << "\t* objetosc = " << objetosc() << endl;
  232.     cout << "\t* pole powierzchni calkowitej = " << pole_powierzchni_calkowitej() << endl;
  233. }
  234.  
  235. // Prostopadloscian.h
  236. #ifndef PROSTOPADLOSCIAN_H
  237. #define PROSTOPADLOSCIAN_H
  238.  
  239. #include "Bryla.h"
  240.  
  241. class Prostopadloscian : public Bryla
  242. {
  243.     public:
  244.         Prostopadloscian(double, double, double);
  245.         double objetosc();
  246.         double pole_powierzchni_calkowitej();
  247.         void pobierz_dane();
  248.     private:
  249.         double a;
  250.         double b;
  251.         double c;
  252. };
  253.  
  254. #endif // PROSTOPADLOSCIAN_H
  255.  
  256. // Prostopadloscian.cpp
  257. #include "Prostopadloscian.h"
  258. #include <iostream>
  259.  
  260. using namespace std;
  261.  
  262. /*class Prostopadloscian : public Bryla
  263. {
  264.     public:
  265.         Prostopadloscian(double, double, double);
  266.         double objetosc();
  267.         double pole_powierzchni_calkowitej();
  268.         void pobierz_dane();
  269.     private:
  270.         double a;
  271.         double b;
  272.         double c;
  273. };*/
  274.  
  275. Prostopadloscian::Prostopadloscian(double x, double y, double z) : a(x), b(y), c(z)
  276. {
  277. }
  278.  
  279. double Prostopadloscian::objetosc()
  280. {
  281.     return a * b * c;
  282. }
  283.  
  284. double Prostopadloscian::pole_powierzchni_calkowitej()
  285. {
  286.     return 2 * (a * b + b * c + a * c);
  287. }
  288.  
  289. void Prostopadloscian::pobierz_dane()
  290. {
  291.     cout << "Prostopadloscian:\n";
  292.     cout << "\t* Dlugosci bokow:\n";
  293.     cout << "\t\ta = " << a << endl;
  294.     cout << "\t\tb = " << b << endl;
  295.     cout << "\t\tc = " << c << endl;
  296.     cout << "\t* Objetosc = " << objetosc() << endl;
  297.     cout << "\t* Pole powierzchni calkowitej = " << pole_powierzchni_calkowitej() << endl;
  298. }
  299.  
  300. // CzworoscianForemny.h
  301. #ifndef CZWOROSCIANFOREMNY_H
  302. #define CZWOROSCIANFOREMNY_H
  303.  
  304. #include "Bryla.h"
  305.  
  306. class CzworoscianForemny : public Bryla
  307. {
  308.     public:
  309.         CzworoscianForemny(double);
  310.         double objetosc();
  311.         double pole_powierzchni_calkowitej();
  312.         void pobierz_dane();
  313.     private:
  314.         double x;
  315. };
  316.  
  317. #endif // CZWOROSCIANFOREMNY_H
  318.  
  319. // CzworoscianForemny.cpp
  320. #include "CzworoscianForemny.h"
  321. #include <cmath>
  322. #include <iostream>
  323.  
  324. using namespace std;
  325.  
  326. /*class CzworoscianForemny : public Bryla
  327. {
  328.     public:
  329.         CzworoscianForemny(double);
  330.         double objetosc();
  331.         double pole_powierzchni_calkowitej();
  332.         void pobierz_dane();
  333.     private:
  334.         double x;
  335. };*/
  336.  
  337. CzworoscianForemny::CzworoscianForemny(double bok) : x(bok)
  338. {
  339. }
  340.  
  341. double CzworoscianForemny::objetosc()
  342. {
  343.     return x * x * x * pow(2,0.5) / 12;
  344. }
  345.  
  346. double CzworoscianForemny::pole_powierzchni_calkowitej()
  347. {
  348.     return x * x * pow(3, 0.5);
  349. }
  350.  
  351. void CzworoscianForemny::pobierz_dane()
  352. {
  353.     cout << "Czworoscian foremny:\n";
  354.     cout << "\t* Dlugosc boku = " << x << endl;
  355.     cout << "\t* Objetosc = " << objetosc() << endl;
  356.     cout << "\t* Pole powierzchni calkowitej = " << pole_powierzchni_calkowitej() << endl;
  357. }
Advertisement
Add Comment
Please, Sign In to add comment