Homeworks for Cloud Computing and IoT lecture in year 3, semester 2
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
1.7 KiB

#include <iostream>
#include <math.h>
#ifndef M_PI
#define M_PI (3.14159265358979323846)
#endif
using namespace std;
enum BOOL { FALSE, TRUE };
class GeneralShape
{
public:
GeneralShape(){};
~GeneralShape(){};
virtual long GetArea() = 0;
virtual long GetPerim()= 0;
virtual void Draw() = 0;
};
void GeneralShape::Draw()
{
cout << "drawing mechanism!" << endl;
}
class Circle : public GeneralShape
{
public:
Circle(int radius):itsRadius(radius){}
~Circle(){}
private:
int itsRadius;
int itsCircumference;
};
class Rectangle : public GeneralShape
{
public:
Rectangle(int len, int width):
itsLength(len), itsWidth(width){}
~Rectangle(){}
virtual int GetLength() { return itsLength; }
virtual int GetWidth() { return itsWidth; }
private:
int itsWidth;
int itsLength;
};
class Square : public Rectangle
{
public:
Square(int len);
Square(int len, int width);
~Square(){}
long GetPerim() {return 4 * GetLength();}
};
Square::Square(int len):
Rectangle(len,len)
{}
Square::Square(int len, int width):
Rectangle(len,width)
{
if (GetLength() != GetWidth())
cout << "Error, not a square... a Rectangle??\n";
}
int main()
{
int choice;
BOOL quit = FALSE;
GeneralShape *sp;
while (1)
{
cout << "(1)Circle (2)Rectangle (3)Square (0)Quit: ";
cin >> choice;
switch (choice)
{
default: quit = TRUE;
break;
}
if (quit) break;
cout << endl;
}
return 0;
}