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.
95 lines
1.7 KiB
95 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; |
|
}
|
|
|