首页 新闻 会员 周边 捐助

帮我看看这个C++代码怎么修改

0
悬赏园豆:50 [待解决问题]

#include <iostream> using namespace std; class Figure { public:     void erease()   //定义擦除函数     {       cout<<"Figure's erase is being called"<<endl;  //提示基类的擦除函数正在被调用       system("CLS");        //清除矩形画三角形     }     void draw()    //定义绘制函数     {       cout<<"Figure's draw is being called"<<endl;   //提示基类的绘制函数正在被调用     } };

class rectangle:public Figure  //以public的方式声明派生类rectangle {public:  void show();  void draw()  {    cout<<"Make a rectangular"<<endl;  //提示绘制了一个矩形

     for(int i=0;i<length;i++)    cout<<"*";   cout<<endl;    for(int i=0;i<width;i++)   { cout<<"*";        for(int j=0;j<length-2;j++)      cout<<" ";     cout<<"*"<<endl;    }     for(int i=0;i<length;i++)    cout<<"*";   cout<<endl;

 }  void center()      //成员函数调用erase和draw  {     erease();     cout<<"rectangle's erase is been called"<<endl;     draw();     cout<<"rectangle's draw is been called"<<endl;     }   private:     int width;     int length;

    };

void rectangle::show() {   cin>>width;     cin>>length;

}

class triangle:public Figure              //以public的方式声明派生类treangle {   public:  void display();  void draw();       {  cout<<"Make a treangle" <<endl;       //提示绘制一个三角形            for(n=1;n<=r;n++)          {                 for(k=0; k <r-n;k++)                   {                     cout<<" ";                   }                     cout<<"*";                 for(k=1;k <=2*n-2;k++)                   {                     if(n != r)               {                           cout<<" ";                        }                     else                 {                           cout<<"*";                        }           }                 if(n != 1)               {                    cout<<"*";                  }                cout<<endl;          }

      cout<<endl;

     }     void center()  {    erease();    cout<<"triangle's erase is been called."<<endl;    draw();       cout<<"triangle's draw is been called."<<endl;  }   private:       int n;       int j;       int k;       int c;       int r;

};

void triangle::display() {    cin>>n;      cin>>j;      cin>>k;      cin>>c;      cin>>r; }

int main()                                  //定义主函数 {  rectangle r;  triangle t;  cout<<"Please input twice the rectangle's width ang lenth:"<<endl;  r.show();  r.center ();

 cout<<"Now striking the any key erase to drawing"<<endl;  cout<<endl;  cout<<endl;  system("PAUSE");  cout<<"Please input the n and c:"<<endl;  t.display();  t.center ();

 return 0;

Playboy88的主页 Playboy88 | 初学一级 | 园豆:64
提问于:2012-06-02 11:22
< >
分享
所有回答(2)
0

你要什么样的绘图?想“画图软件”那样?那就不是这里能帮你解决的了。

类库的OOP思想已经基本都完成了,你要实现的就是派生后的类,根据不同的图形(类)定义好需要的参数(比如正方形是边长、长方形是长和宽、圆是半径等等),然后在draw里实现就好。

你给出的类里已经有基于文本输出形式的图形绘制功能了。你还有需求。。。这个就不是C++刚刚起步的问题了。

无之无 | 园豆:5095 (大侠五级) | 2012-06-02 11:38

简单的绘制矩形和三角行怎么改啊!

支持(0) 反对(0) Playboy88 | 园豆:64 (初学一级) | 2012-06-03 16:06
0

哈哈,怎么又是你?上次赚了你60积分很不好意思。本来想帮你彻底解决下的,但是绘图的问题不太好解决。我感觉这道题的主要意图就是让你明白虚函数。图形的输出感觉你写的差不多了;把重点放在虚函数那块吧。

kunkka_ | 园豆:273 (菜鸟二级) | 2012-06-03 14:52

嗯!上次看你的还有宏什么的有点晕。

于是就自己参考者写写了

现在又不知如何去真正实现画圆功能了

求解!

支持(0) 反对(0) Playboy88 | 园豆:64 (初学一级) | 2012-06-03 16:07

@Playboy88: 

#include "stdafx.h"
#include <graphics.h>
#include <conio.h>
void main()
{
  initgraph(640,480);

  setcolor(YELLOW);
  setfillstyle(GREEN);
  fillcircle(100,100,50);
  fillcircle(200,200,50);
  getch();
}

支持(0) 反对(0) kunkka_ | 园豆:273 (菜鸟二级) | 2012-06-03 21:25

@Playboy88: 嘿嘿,你随便百度下载一个EasyX。将其解压后将.h文件放到你的vc6.0(vs2008)的Include目录下,lib文件放到lib文件下(不建议这样做)。建议你将下载到的.lib和.h文件放到你建的工程目录下。遇到问题可以百度,这本身也是一项本领。有了这个开源库之后就可以如下编写程序:
 我是把下载到的.h文件和.lib文件放到工程目录下的:
 #include "stdafx.h"
#include "include\graphics.h"
#include "conio.h"
void main()
{
  initgraph(640,480);
   setcolor(YELLOW);
  setfillstyle(GREEN);
  fillcircle(100,100,50);
  fillcircle(200,200,50);
  getch();
}
 这个也是我根据网上的程序,自己试着琢磨出来的,fillcircle的三个参数前两个是圆心,第三个是半径。
 我也是接到你的问题后才学会的。这里有一篇文章的连接,关于EasyX的用法,感兴趣的话你可以尝试下。http://wenku.baidu.com/view/4eda60bffd0a79563c1e721b.html
 其实这种开源软件多的是。但是正规项目里一般是不让用的,一是因为使用开源软件的项目理论上本身也需要开源;二是万一出现了bug难定位。
 我们私下里出于兴趣学习是可以的。
 希望能帮到你。
 加油!

支持(0) 反对(0) kunkka_ | 园豆:273 (菜鸟二级) | 2012-06-03 22:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册