Aim: To implement a program to display a rectangle, circle and triangle.
Code:
class shape
{
public:
virtual void dim()=0;
virtual void draw()=0;
};
class rect:public shape
{
int top,bottom,left,right;
public:
void dim()
{
cout<<"Enter the dimensions of the rectangle\n";
cout<<"Enter the left and top co-ordinate\n";
cin>>left>>top;
cout<<"Enter the right and bottom co-ordinate\n";
cin>>right>>bottom;
}
void draw()
{
rectangle(left,top,right,bottom);
}
};
class triangle:public shape
{
int x1,x2,x3,y1,y2,y3;
public:
void dim()
{
cout<<"Enter the co-ordinates of the triangle\n";
cout<<"Enter first co-ordinate\n";
cin>>x1>>y1;
cout<<"Enter second co-ordinate\n";
cin>>x2>>y2;
cout<<"Enter third co-ordinate\n";
cin>>x3>>y3;
}
void draw()
{
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x1,y1);
}
};
class circ:public shape
{
int x,y,r;
public:
void dim()
{
cout<<"Enter the centre of the circle\n";
cin>>x>>y;
cout<<"Enter the radius of the circle\n";
cin>>r;
}
void draw()
{
circle(x,y,r);
}
};
void main()
{
int choice;
int gd=DETECT,gm;
shape *ptr;
circ c;
rect r;
triangle t;
clrscr();
while(1)
{
cout<<"Enter your choice\n";
cout<<"1. Draw rectangle\n2. Draw Circle\n3. Triangle\n4. Exit\n";
cin>>choice;
switch(choice)
{
case 1:
ptr=&r;
ptr->dim();
initgraph(&gd,&gm,"c:\\tc\\bgi");
ptr->draw();
getch();
closegraph();
break;
case 2:
ptr=&c;
ptr->dim();
initgraph(&gd,&gm,"c:\\tc\\bgi");
ptr->draw();
getch();
closegraph();
break;
case 3:
ptr=&t;
ptr->dim();
initgraph(&gd,&gm,"c:\\tc\\bgi");
ptr->draw();
getch();
closegraph();
break;
case 4:
exit(0);
default:
cout<<"You entered a wrong choice\n";
}
}
}