我运行以下程序,没有错误,但是没有结果

[复制链接]
查看11 | 回复1 | 2011-5-9 16:01:14 | 显示全部楼层 |阅读模式
#include
class CShape
{
public:
virtual float Area()=0;
virtual void SetData(float f1,float f2)=0;
};
class CTriangle:public CShape
{
public:

CTriangle(float h=0,float w=0)
        {H=h;W=w;}

float Area()
        {return(float)(H*W*0.5); }
        void SetData(float f1, float f2)
        { H=f1;W=f2; }
         private:
       
float H,W;
};
class CRect:public CShape
{

public:
       
CRect(float h=0,float w=0)
                {H=h;W=w; }
                float Area()
                { return(float)(H*W);}
                void SetData(float f1,float f2)
                { H=f1;W=f2; }
         private:
                 float H,W;
};
class CCircle:public CShape
{

public:
       
CCircle(float r=0)
                {R=r; }
                float Area()
                {return(float)(3.14159265*R*R);}
                void SetData(float r,float)
                { R=r;}
                private:
                 float R;

};
                class CArea
                {
                public:
               
CArea(float triWidth,float triHeight,float rcWidth,float rcHeight,float r)
                        {
                       
ppShape=new CShape*[3];
                                 ppShape[0]=new CTriangle(triWidth,triHeight);
                                 ppShape[1]=new CRect(rcWidth,rcHeight);
                                 ppShape[2]=new CCircle(r);
                        }
                        ~CArea()
                        {
                       
for(int i=0;i2)||(nSetData(f1,f2);
                         }
                         void CalAndPrint(void)
                         {
                       
float fSum=0.0;
                                         char* str[3]={"三角","矩", "圆"};
                                         for(int i=0;iArea();
                                                 cout<<str<<"形面积是:"<<area<<endl;
                                                 fSum+=area;
                                         }
                                         cout<<"总面积是:"<<fSum<<endl;
                                }
                                private:
                                 CShape **ppShape;
                        };
                                        
        void mian()
                        {
                       
CArea a(10,20,6,8,6.5);
                                a.CalAndPrint();
                                a.SetShapeData(0,20,30);
                                a.CalAndPrint();
                                a.SetShapeData(2,11);
                                a.CalAndPrint();
                                a.SetShapeData(1,2,5);
                                a.CalAndPrint();
                        }
是不是还有错误,还是保存有误呢?请上传运行结果,谢谢!

回复

使用道具 举报

千问 | 2011-5-9 16:01:14 | 显示全部楼层
我在vs2010上试了下,修改了第一行为:#include using namespace std;第二个明显的错误是主函数名写错了,应该是main(),而不是mian(),运行结果:三角形面积是:100矩形面积是:48圆形面积是:132.732总面积是:280.732三角形面积是:300矩形面积是:48圆形面积是:132.732总面积是:480.732三角形面积是:300矩形面积是:48圆形面积是:380.133总面积是:728.133三角形面积是:300矩形面积是:10圆形面积是:380.133总面积是:690.133请按任意键继续. . .
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行