jezvgg 11 miesięcy temu
rodzic
commit
82d3536a6c
4 zmienionych plików z 71 dodań i 0 usunięć
  1. 17 0
      Ellips.cpp
  2. 33 0
      Ellips.h
  3. 12 0
      ellips_main.cpp
  4. 9 0
      makefile

+ 17 - 0
Ellips.cpp

@@ -0,0 +1,17 @@
+#include "Ellips.h"
+#include <iostream>
+
+double Ellips::calc_area()
+{
+    return 3.14 * axisA * axisB;
+}
+
+double Ellips::calc_perimiter()
+{
+    return 2.0*3.14*sqrt((axisA*axisA+axisB*axisB)/2.0);
+}
+
+void Ellips::name()
+{
+    std::cout << "Ellips" << std::endl;
+}

+ 33 - 0
Ellips.h

@@ -0,0 +1,33 @@
+#include "Figure.h"
+
+class Ellips: public Figure
+{
+    private:
+    double centerX, centerY, axisA, axisB;
+
+    template <typename T>
+    void init(T center_x, T center_y, T axis_a, T axis_b)
+    {
+        centerX = double(center_x);
+        centerY = double(center_y);
+        axisA = double(axis_a);
+        axisB = double(axis_b);
+    }
+
+    public:
+    template <typename T>
+    Ellips(T center_x, T center_y, T axis_a, T axis_b)
+    {
+        init(center_x, center_y, axis_a, axis_b);
+    }
+
+    template <typename T>
+    Ellips(struct Point center, T axis_a, T axis_b)
+    {
+        init(center.x, center.y, axis_a, axis_b);
+    }
+
+    double calc_area();
+    double calc_perimiter();
+    void name();
+};

+ 12 - 0
ellips_main.cpp

@@ -0,0 +1,12 @@
+#include "Ellips.h"
+#include <iostream>
+
+using namespace std;
+
+int main() {
+    Ellips e(10, 15, 10, 15);
+    cout << e.calc_area() << endl;
+    cout << e.calc_perimiter() << endl;
+    e.name();
+    return 0;
+}

+ 9 - 0
makefile

@@ -25,5 +25,14 @@ rectangle_main.o: rectangle_main.cpp
 Rectangle.o: Rectangle.cpp
 	g++ -c Rectangle.cpp
 
+ellips: Ellips.o ellips_main.o
+	g++ Ellips.o ellips_main.o
+
+ellips_main.o: ellips_main.cpp
+	g++ -c ellips_main.cpp
+
+Ellips.o: Ellips.cpp
+	g++ -c Ellips.cpp
+
 clean:
 	rm -rf *.o all