Advertisement
Cieslin

SejuKOLOS

Jun 29th, 2018
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. // ObiektowkaOceniane_1.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <conio.h>
  6. #include <iostream>
  7. #include <Windows.h>
  8. #include <string.h>
  9. #include <math.h>
  10. #include <fstream>
  11. #include <sstream>
  12.  
  13.  
  14. using namespace std;
  15.  
  16. class Figura {
  17. public:
  18.     virtual string getNazwa() = 0;
  19.     virtual double getObwod() = 0;
  20.     virtual double getPolePowierzchni() = 0;
  21. };
  22.  
  23. class Prostokat : Figura{
  24. private:
  25.     double a;
  26.     double b;
  27. public:
  28.  
  29.     Prostokat(double aVal, double bVal)
  30.     {
  31.         a = aVal;
  32.         b = bVal;
  33.     }
  34.  
  35.     ~Prostokat() {};
  36.  
  37.     string getNazwa()
  38.     {
  39.         return "Prostokat";
  40.     }
  41.  
  42.     double getObwod()
  43.     {
  44.         return (2 * a) + (2 * b);
  45.     }
  46.  
  47.     double getPolePowierzchni()
  48.     {
  49.         return a * b;
  50.     }
  51. };
  52.  
  53. class Kwadrat : Figura {
  54. private:
  55.     double a;
  56. public:
  57.  
  58.     Kwadrat(double aVal)
  59.     {
  60.         a = aVal;
  61.     }
  62.  
  63.     ~Kwadrat() {};
  64.  
  65.     string getNazwa()
  66.     {
  67.         return "Kwadrat";
  68.     }
  69.  
  70.     double getObwod()
  71.     {
  72.         return (4 * a);
  73.     }
  74.  
  75.     double getPolePowierzchni()
  76.     {
  77.         return (a * a);
  78.     }
  79. };
  80.  
  81. class Kolo : Figura {
  82. private:
  83.     double r;
  84. public:
  85.  
  86.     Kolo(double rVal)
  87.     {
  88.         r = rVal;
  89.     }
  90.  
  91.     ~Kolo() {};
  92.  
  93.     string getNazwa()
  94.     {
  95.         return "Kolo";
  96.     }
  97.  
  98.     double getObwod()
  99.     {
  100.         return (2 * 3.14) * r;
  101.     }
  102.  
  103.     double getPolePowierzchni()
  104.     {
  105.         return (2 * 3.14) * (r * r);
  106.     }
  107. };
  108.  
  109. class Elipsa : Figura {
  110. private:
  111.     double r1;
  112.     double r2;
  113. public:
  114.  
  115.     Elipsa(double r1Val, double r2Val)
  116.     {
  117.         r1 = r1Val;
  118.         r2 = r2Val;
  119.     }
  120.  
  121.     ~Elipsa() {};
  122.  
  123.     string getNazwa()
  124.     {
  125.         return "Elipsa";
  126.     }
  127.  
  128.     double getObwod()
  129.     {
  130.         return (3.14 * ((3/2) * (r1 + r2) - sqrt(r1 * r2)));
  131.     }
  132.  
  133.     double getPolePowierzchni()
  134.     {
  135.         return (3.14 * r1 * r2);
  136.     }
  137. };
  138.  
  139.  
  140. /////// Uzytkownik!!
  141. int main()
  142. {
  143.     string nazwaFigury;
  144.     int tmp1;
  145.     int tmp2;
  146.     fstream plik;
  147.     plik.open("NAZWAPLIKU", ios::in);
  148.     if (plik.good())
  149.     {
  150.         while (!plik.eof()) {
  151.             plik >> nazwaFigury;
  152.             if (nazwaFigury == "Kwadrat")
  153.             {
  154.                 plik >> tmp1;
  155.                 Kwadrat k1(tmp1);
  156.                 k1.getNazwa();
  157.                 k1.getObwod();
  158.                 k1.getPolePowierzchni();
  159.             }
  160.  
  161.             if (nazwaFigury == "Prostokat")
  162.             {
  163.                 plik >> tmp1 >> tmp2;
  164.                 Prostokat p1(tmp1, tmp2);
  165.                 p1.getNazwa();
  166.                 p1.getObwod();
  167.                 p1.getPolePowierzchni();
  168.             }
  169.         }
  170.     }
  171.     _getch();
  172.     return 0;
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement