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

c++应用两到三个类实现选择图形和尺寸输出图形。或选择0退出。实现输出结果如下:




临摹微笑
浏览 690回答 1
1回答

Cats萌萌

#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;}
打开App,查看更多内容
随时随地看视频慕课网APP