diff options
clean up
12 files changed, 0 insertions, 290 deletions
| -rw-r--r-- | Sem. 14/Shapes/Circle.cpp | 22 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Circle.h | 15 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Rectangle.cpp | 32 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Rectangle.h | 13 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Rhombus.cpp | 25 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Rhombus.h | 12 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Shape.cpp | 52 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Shape.h | 43 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Square.cpp | 19 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Square.h | 13 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Triangle.cpp | 30 | ||||
| -rw-r--r-- | Sem. 14/Shapes/Triangle.h | 14 |
diff --git a/Sem. 14/Shapes/Circle.cpp b/Sem. 14/Shapes/Circle.cpp deleted file mode 100644 index 3f4ac98..0000000 --- a/Sem. 14/Shapes/Circle.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "Circle.h" - -const double PI = 3.1415; -Circle::Circle(double x, double y, double radius) : Shape(1), radius(radius) -{ - setPoint(0, x, y); -} - -double Circle::getArea() const -{ - return PI * radius * radius; -} -double Circle::getPer() const -{ - return 2 * PI * radius; -} - -Shape* Circle::clone() const -{ - Circle* copy = new Circle(*this); - return copy; -}
\ No newline at end of file diff --git a/Sem. 14/Shapes/Circle.h b/Sem. 14/Shapes/Circle.h deleted file mode 100644 index 84380fa..0000000 --- a/Sem. 14/Shapes/Circle.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once -#include "Shape.h" - -class Circle : public Shape -{ - double radius; - -public: - Circle(double x, double y, double radius); - - double getArea() const override; - double getPer() const override; - - Shape* clone() const override; -};
\ No newline at end of file diff --git a/Sem. 14/Shapes/Rectangle.cpp b/Sem. 14/Shapes/Rectangle.cpp deleted file mode 100644 index 9e16b01..0000000 --- a/Sem. 14/Shapes/Rectangle.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "Rectangle.h" - -Rectangle::Rectangle(double x1, double y1, double x3, double y3) : Shape(4) -{ - setPoint(0, x1, y1); - setPoint(1, x1, y3); - setPoint(2, x3, y3); - setPoint(3, x3, y1); -} -double Rectangle::getArea() const -{ - Shape::point p0 = getPointAtIndex(0); - Shape::point p1 = getPointAtIndex(1); - Shape::point p3 = getPointAtIndex(3); - - return p0.getDist(p1) * p0.getDist(p3); - -} -double Rectangle::getPer() const -{ - Shape::point p0 = getPointAtIndex(0); - Shape::point p1 = getPointAtIndex(1); - Shape::point p3 = getPointAtIndex(3); - - return 2*(p0.getDist(p1) + p0.getDist(p3)); -} - -Shape* Rectangle::clone() const -{ - Rectangle* copy = new Rectangle(*this); - return copy; -}
\ No newline at end of file diff --git a/Sem. 14/Shapes/Rectangle.h b/Sem. 14/Shapes/Rectangle.h deleted file mode 100644 index baa4cb5..0000000 --- a/Sem. 14/Shapes/Rectangle.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once -#include "Shape.h" - -class Rectangle : virtual public Shape -{ - -public: - Rectangle(double x1, double y1, double x3, double y3); - double getArea() const override; - double getPer() const override; - - Shape* clone() const override; -};
\ No newline at end of file diff --git a/Sem. 14/Shapes/Rhombus.cpp b/Sem. 14/Shapes/Rhombus.cpp deleted file mode 100644 index 62a3e8c..0000000 --- a/Sem. 14/Shapes/Rhombus.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include "Rhombus.h" - -Rhombus::Rhombus(double x1, double y1, double x2, double y2) : Shape(4) -{ - setPoint(0, x1, y1); - setPoint(1, x2, y2); - double sideLength = getPointAtIndex(0).getDist(getPointAtIndex(1)); - - setPoint(2, x2 + sideLength, y2); - setPoint(3, x1 + sideLength, y1); -} - -double Rhombus::getArea() const -{ - return 0.5 * getPointAtIndex(0).getDist(getPointAtIndex(2)) * getPointAtIndex(1).getDist(getPointAtIndex(3)); -} -double Rhombus::getPer() const -{ - return 4 * getPointAtIndex(0).getDist(getPointAtIndex(1)); -} -Shape* Rhombus::clone() const -{ - Rhombus* copy = new Rhombus(*this); - return copy; -}
\ No newline at end of file diff --git a/Sem. 14/Shapes/Rhombus.h b/Sem. 14/Shapes/Rhombus.h deleted file mode 100644 index 24e5a5b..0000000 --- a/Sem. 14/Shapes/Rhombus.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once -#include "Shape.h" - -class Rhombus : virtual public Shape -{ -public: - Rhombus(double x1, double y1, double x2, double y2); - - double getArea() const override; - double getPer() const override; - Shape* clone() const override; -};
\ No newline at end of file diff --git a/Sem. 14/Shapes/Shape.cpp b/Sem. 14/Shapes/Shape.cpp deleted file mode 100644 index 7bc24ef..0000000 --- a/Sem. 14/Shapes/Shape.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "Shape.h" - -Shape::Shape(size_t pointsCount) : pointsCount(pointsCount) -{ - points = new point[pointsCount]; // [0,0], [0,0].... -} - -void Shape::copyFrom(const Shape& other) -{ - points = new point[other.pointsCount]; - - for (int i = 0; i < other.pointsCount; i++) - points[i] = other.points[i]; -} -void Shape::free() -{ - delete[] points; -} - -Shape::Shape(const Shape& other) -{ - copyFrom(other); -} -Shape& Shape::operator= (const Shape& other) -{ - if (this != &other) - { - free(); - copyFrom(other); - } - return *this; -} -Shape::~Shape() -{ - free(); -} - -const Shape::point& Shape::getPointAtIndex(size_t index) const -{ - if (index >= pointsCount) - throw std::exception("Invalid point index!"); - - return points[index]; -} - -void Shape::setPoint(size_t pointIndex, double x, double y) -{ - if (pointIndex >= pointsCount) - throw std::exception("Invalid point index!"); - - points[pointIndex] = point(x, y); -} diff --git a/Sem. 14/Shapes/Shape.h b/Sem. 14/Shapes/Shape.h deleted file mode 100644 index caf7919..0000000 --- a/Sem. 14/Shapes/Shape.h +++ /dev/null @@ -1,43 +0,0 @@ -#pragma once -#include <iostream> - -class Shape // Abstract class - no instances of Shape are allowed! -{ -protected: - struct point - { - point() :x(0), y(0){} - point(double x, double y) :x(x), y(y){} - double x; - double y; - double getDist(const point& other) const - { - int dx = x - other.x; - int dy = y - other.y; - - return sqrt(dx*dx + dy*dy); - } - }; - const point& getPointAtIndex(size_t index) const; -private: - point* points; - size_t pointsCount; - - void copyFrom(const Shape& other); - void free(); - - -public: - Shape(size_t pointsCount); - - Shape(const Shape& other); - Shape& operator=(const Shape& other); - virtual ~Shape(); //!!!!!! - - void setPoint(size_t pointIndex, double x, double y); - - virtual double getArea() const = 0; //pure virtual - virtual double getPer() const = 0; // pure virtual - - virtual Shape* clone() const = 0; // -};
\ No newline at end of file diff --git a/Sem. 14/Shapes/Square.cpp b/Sem. 14/Shapes/Square.cpp deleted file mode 100644 index 555c340..0000000 --- a/Sem. 14/Shapes/Square.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "Square.h" - -Square::Square(double x, double y, double sideLength) : Rectangle(x, y, x + sideLength, y - sideLength), Rhombus(x, y, x, y - sideLength), Shape(4) -{} - -double Square::getArea() const -{ - return Rhombus::getArea(); -} -double Square::getPer() const -{ - return Rectangle::getPer(); -}; - -Shape* Square::clone() const -{ - Square* copy = new Square(*this); - return copy; -}
\ No newline at end of file diff --git a/Sem. 14/Shapes/Square.h b/Sem. 14/Shapes/Square.h deleted file mode 100644 index fd78bd8..0000000 --- a/Sem. 14/Shapes/Square.h +++ /dev/null @@ -1,13 +0,0 @@ -#include "Rhombus.h" -#include "Rectangle.h" - -class Square : public Rhombus, public Rectangle -{ -public: - Square(double x, double y, double sideLength); - - double getArea() const override; - double getPer() const override; - - Shape* clone() const override; -};
\ No newline at end of file diff --git a/Sem. 14/Shapes/Triangle.cpp b/Sem. 14/Shapes/Triangle.cpp deleted file mode 100644 index e13d685..0000000 --- a/Sem. 14/Shapes/Triangle.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "Triangle.h" - -Triangle::Triangle(double x1, double y1, double x2, double y2, double x3, double y3) : Shape(3) -{ - setPoint(0, x1, y1); - setPoint(1, x2, y2); - setPoint(2, x3, y3); -} -double Triangle::getArea() const -{ - Shape::point p1 = getPointAtIndex(0); - Shape::point p2 = getPointAtIndex(1); - Shape::point p3 = getPointAtIndex(2); - - return abs(p1.x*p2.y + p2.x*p3.y + p3.x*p1.y - p1.y * p2.x - p2.y*p3.x - p3.y*p1.x) / 2.00; -} -double Triangle::getPer() const -{ - Shape::point p1 = getPointAtIndex(0); - Shape::point p2 = getPointAtIndex(1); - Shape::point p3 = getPointAtIndex(2); - - return p1.getDist(p2) + p2.getDist(p3) + p3.getDist(p1); -} - -Shape* Triangle::clone() const -{ - Triangle* copy = new Triangle(*this); - return copy; -}
\ No newline at end of file diff --git a/Sem. 14/Shapes/Triangle.h b/Sem. 14/Shapes/Triangle.h deleted file mode 100644 index 3a53901..0000000 --- a/Sem. 14/Shapes/Triangle.h +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#include "Shape.h" - -class Triangle : public Shape -{ - -public: - Triangle(double x1, double y1, double x2, double y2, double x3, double y3); - double getArea() const override; - double getPer() const override; - - Shape* clone() const override; -};
\ No newline at end of file |
