1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
#include <iostream>
using namespace std;
class figure {
protected:
double x, y;
public:
void set_dim(double i, double j=0) {
x = i;
y = j;
}
virtual void show_area() {
cout << "No area computation defined ";
cout << "for this class.\n";
}
} ;
class tri : public figure {
public:
void show_area() {
cout << "Triangle with height ";
cout << x << " and base " << y;
cout << " has an area of ";
cout << x * 0.5 * y << ".\n";
}
};
class rec : public figure {
public:
void show_area() {
cout << "Square with dimensions ";
cout << x << "x" << y;
cout << " has an area of ";
cout << x * y << ".\n";
}
};
class circ : public figure {
public:
void show_area() {
cout << "Circle with radius ";
cout << x;
cout << " has an area of ";
cout << 3.14 * x * x << ".\n";
}
} ;
int main()
{
string triangle;
string rectangle;
string circle;
string shape;
int height, base, height1, width, radius;
figure *p; // create a pointer to base type
cout << "Hi, i'm Jarvis. ";
cout << "I'm a computer generated program that finds areas of basic figures. ";
cout << "To start, first, give me a shape (it can be a triangle, rectangle, or circle):";
cin >> shape;
if (shape =="triangle") {
tri t; // create objects of derived types;
cout << "What is the base of the triangle?: ";
cin >> base;
cout << "What is the height of the triangle? (top to bottom): ";
cin >> height;
p = &t;
p->set_dim(height, base);
p->show_area();
}
else
if (shape =="rectangle") {
rec s;
cout << "What is the width of the rectangle?: ";
cin >> width;
cout << "What is the height of the rectangle?: ";
cin >> height1;
p = &s;
p->set_dim(height1, width);
p->show_area();
}
else
if (shape =="circle") {
circ c;
cout << "What is the radius of the circle?: ";
cin >> radius;
p = &c;
p->set_dim(radius);
p->show_area();
}
else
cout << "Sorry, that's not one of the options. Please re-enter and try again.";
return 0;
}
|