为了账号安全,请及时绑定邮箱和手机立即绑定

c++应用两到三个类实现选择图形和尺寸输出图形

c++应用两到三个类实现选择图形和尺寸输出图形

C++
临摹微笑 2018-11-27 01:01:12
c++应用两到三个类实现选择图形和尺寸输出图形。或选择0退出。实现输出结果如下:
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

#include<iostream>

using namespace std;

class Shape
{
public:
virtual ~Shape();
virtual void draw() const =0;
};
Shape::~Shape()
{

}
class Star : public Shape
{
public:
virtual void draw() const;
};
void Star::draw() const
{
int t,i,j,sp,s;

cout<<"请输入尺寸:";
cin>>s;
cout<<"绘制自选图形:"<<endl;
sp=(2*s-1)/2;
for(i=sp;i>=-sp;i--)
{
t=i>0 ? i : -i;
for(j=0;j<t;j++)
{
cout<<" ";
}
for(j=0;j<2*s-1-2*t;j++)
{
cout<<"*";
}
cout<<endl;
}
}
class Rectangle : public Shape
{
public:
virtual void draw() const;
};
void Rectangle::draw() const
{
int i,j,w,h;

cout<<"请输入 宽 高:";
cin>>w>>h;
cout<<w<<" "<<h<<endl;
cout<<"绘制自选图形:"<<endl;
for(i=h;i>0;i--)
{
for(j=w;j>0;j--)
{
cout<<"*";
}
cout<<endl;
}
}
int main(int argc,char* argv[])
{
int m;
Shape *pt[]={new Star(),new Rectangle()};
while(true)
{
cout<<"1- 星"<<endl<<"2- 矩形"<<endl;
cout<<"选择一种图形或者选0退出:";
cin>>m;
if(0==m)
{
break;
}
else if(1==m || 2==m)
{
pt[m-1]->draw();
}
else
{
cout<<"无法处理的命令!"<<endl;
}
}
delete pt[0];
delete pt[1];
return 0;
}



查看完整回答
反对 回复 2018-12-21
  • 1 回答
  • 0 关注
  • 685 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信